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段階認証を有効にする
Web 保管庫で、認証アプリまたはハードウェアキーによる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*
復元は少なくとも一度はテストしてください。テストしていないバックアップは、願望にすぎません。