Vaultwarden 是一个轻量级、兼容 Bitwarden 的密码服务器。你可以使用常规的 Bitwarden 应用和浏览器扩展,但密码库存放在你自己掌控的服务器上。它占用的内存很少,所以一台小型 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 步:开启两步验证登录
在网页版密码库中,使用验证器应用或硬件密钥启用两步验证登录。请将恢复码离线保存。
备份密码库
所有数据都在 ./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*
请至少测试一次恢复。从未测试过的备份只是一种希望。