Vaultwarden은 Bitwarden과 호환되는 가벼운 비밀번호 서버입니다. 일반 Bitwarden 앱과 브라우저 확장 프로그램을 그대로 사용하지만, 보관함은 직접 관리하는 서버에 있습니다. 메모리를 아주 적게 사용하므로 작은 VPS면 충분합니다. 비밀번호를 보관하는 서버이니 신중하게 설정하세요.
시작하기 전에
- Docker가 설치된 VPS. Docker 설치하기를 참고하세요.
- 서버를 가리키는 도메인. DNS 레코드 설명을 참고하세요.
- 데이터를 백업할 계획. VPS 백업을 참고하세요.
더 자세한 배경은 셀프 호스팅 Vaultwarden 페이지에서 확인할 수 있습니다.
1단계: Docker Compose 파일
mkdir -p ~/vaultwarden && cd ~/vaultwarden
cat > compose.yaml <<'EOF'
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true" # switch to false after you create your account
ADMIN_TOKEN: "${ADMIN_TOKEN}"
volumes:
- ./data:/data
ports:
- "127.0.0.1:8081:80"
EOF
2단계: 관리자 토큰 생성
관리자 페이지에서는 사용자를 관리할 수 있습니다. 토큰은 일반 텍스트가 아니라 해시된 값으로 저장하세요. Vaultwarden 이미지에는 도우미 명령이 포함되어 있습니다.
docker run --rm -it vaultwarden/server /vaultwarden hash
# paste the result into a .env file as ADMIN_TOKEN='$argon2id$...'
3단계: 시작하기
docker compose up -d
docker compose logs -f
4단계: Caddy로 HTTPS 설정
Bitwarden 클라이언트는 HTTPS가 필요합니다.
vault.example.com {
reverse_proxy 127.0.0.1:8081
}
Caddy를 다시 불러온 뒤 사이트를 여세요. 계정을 만든 다음 SIGNUPS_ALLOWED를 false로 설정하고 docker compose up -d를 다시 실행하면 낯선 사람이 가입할 수 없습니다.
5단계: 2단계 로그인 켜기
웹 보관함에서 인증 앱이나 하드웨어 키로 2단계 로그인을 활성화하세요. 복구 코드는 오프라인에 저장하세요.
보관함 백업
모든 데이터는 ./data에 있으며, 주로 SQLite 데이터베이스와 첨부 파일입니다. 일정에 따라 일관된 복사본을 만들고 서버 밖에 보관하세요.
sqlite3 data/db.sqlite3 ".backup '/backup/vaultwarden-$(date +%F).sqlite3'"
tar czf /backup/vw-files-$(date +%F).tgz data/attachments data/rsa_key*
복원을 최소 한 번은 테스트하세요. 테스트하지 않은 백업은 바람일 뿐입니다.