비밀번호 매니저 셀프 호스팅: Vaultwarden 20분 컷
라즈베리파이 $35 또는 리눅스 박스에 Bitwarden 경험을 셀프 호스팅. Docker + HTTPS + 자동 백업까지. 단계별 플레이북.
Vaultwarden은 Bitwarden 서버의 비공식 Rust 재구현. 같은 클라이언트 호환, RAM 1/10, 라즈베리파이 4에서 편하게 동작. bitwarden.com에 vault 안 맡기면서 Bitwarden UX 원하면 이 길.
필요한 것
- 항상 켜진 작은 머신: 라즈베리파이 4 2GB RAM이면 충분. 월 $5 VPS도 OK.
- 본인이 관리하는 도메인, DNS가 그 머신 가리킴.
- 20분.
1단계: Docker
라즈베리파이 OS 또는 Debian 계열 리눅스:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker --version으로 확인. 필요시 재부팅.
2단계: Caddy + Vaultwarden
Caddy가 Let's Encrypt로 HTTPS 자동 처리. 깔끔한 단일 파일 세팅은 둘 다 돌리는 docker-compose.yml:
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- ./vw-data:/data
environment:
DOMAIN: https://vault.example.com
SIGNUPS_ALLOWED: "true"
caddy:
image: caddy:2
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-data:/data
volumes:
caddy-data:
같은 디렉토리에 Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80
}
vault.example.com을 본인 도메인으로 변경. docker compose up -d 하면 라이브.
3단계: 계정 생성, 그 다음 가입 차단
https://vault.example.com 접속, Create Account 클릭, 강한 마스터 비번 설정. 계정 생긴 후 docker-compose.yml 편집 + SIGNUPS_ALLOWED: "false" 설정 + docker compose up -d 다시. URL 발견한 누군가의 가입 차단.
4단계: 마스터 계정 2FA
Web Vault → Account → Two-step Login. 기본은 TOTP — Aegis 또는 Ente Auth와 페어. 최대 보안엔 Security Keys 아래 YubiKey 추가.
5단계: 클라이언트 설치
Bitwarden 공식 브라우저 확장 + 모바일 앱 + 데스크탑 앱 모두 Vaultwarden과 동작 — 로그인 시 URL을 본인 것으로. 클라이언트 경험은 안 바뀜.
6단계: 백업 (생략 = vault 분실)
vw-data 폴더에 다 있음. 다른 위치로 단순 cron이면 충분:
0 2 * * * tar czf /backup/vw-$(date +\%Y\%m\%d).tar.gz /home/pi/vaultwarden/vw-data
Cryptomator 또는 rclone-crypt와 페어해서 암호화된 아카이브를 클라우드 버킷에 싱크. 복원 절차는 연 1회 테스트 — 테스트 안 한 백업은 백업 아님.
흔한 함정
- Caddy 인증서 발급 실패: Let's Encrypt 검증 위해 80·443 포트 공개 인터넷에 열려야 함. 가정용 라우터 뒤면 포트 포워딩 필요.
- Pi 3에서 vault 느림: bcrypt 라운드가 CPU 잡아먹음. Pi 4 이상이 최저선.
- 마스터 비번 분실: 복구 없음. Vaultwarden이 리셋 못 함. 클라우드 Bitwarden과 같은 트레이드오프, 올바른 선택 — 잊기 전에 비번 적어서 물리적 보관.
셀프 호스팅 vs 클라우드 Bitwarden
셀프 호스팅: 이미 홈 서버 있을 때, 원칙적으로 bitwarden.com 신뢰 거부 시, 또는 그쪽 사업 안 하는 관할 거주.
클라우드 유지: 새 기기에서 열자마자 동작 + 유지보수 0 원할 때. 클라우드 무료 티어 우수. 셀프 호스팅 트레이드오프는 실재, 모두 위한 건 아님.