Docker宝库:密码管理器Vaultwarden
Contents
Vaultwarden是一个密码管理器,包括个人保险库、TOTP/硬件密钥 2FA、密码生成与自动填充、附件与发送(安全一次性分享)、组织共享、目录遍历自动填表等,且全部免费。
运行docker命令:
docker run -d \
--name vaultwarden \
--restart unless-stopped \
-e DOMAIN=https://pw.example.com \
-e SIGNUPS_ALLOWED=true \
-e ADMIN_TOKEN="your-admin-token" \
-v /opt/vaultwarden:/data \
-p 127.0.0.1:2729:80 \
vaultwarden/server:latest
- 把宿主机
/opt/vaultwarden
挂进容器做持久化 - 只监听 127.0.0.1:2729,不直接暴露给外网,后续由 Caddy 反代
- -e ADMIN_TOKEN=“your-admin-token"是随机生成一个管理员密码,双引号内的内容可以直接改为字符串密码。
- -e DOMAIN=https://pw.example.com 用于指定实际访问密码管理器的网址。
- -e SIGNUPS_ALLOWED=true 允许用户注册(这个稍后需要关闭)
之后在caddy的caddyfile中设置反代密码管理器的网址:
pw.example.com {
# 普通 Web 与 API
reverse_proxy 127.0.0.1:2729
# WebSocket 推送通知(可选)
@websockets {
header Connection *Upgrade*
header Upgrade websocket
path /notifications/hub
}
reverse_proxy @websockets 127.0.0.1:2729
}
浏览器访问 https://pw.example.com
→ 注册第一个账号。
注册完成后,把第 1 步容器的环境变量 SIGNUPS_ALLOWED
改成 false
再重启容器,防止他人随意注册:
docker stop vaultwarden
docker rm vaultwarden
重新创建容器,关闭注册功能:
docker run -d \
--name vaultwarden \
--restart unless-stopped \
-e DOMAIN=https://pw.example.com \
-e SIGNUPS_ALLOWED=false \
-e ADMIN_TOKEN="your-admin-token" \
-v /opt/vaultwarden:/data \
-p 127.0.0.1:2729:80 \
vaultwarden/server:latest