时间:2026-01-27 15:06
人气:
作者:admin
Vaultwarden 是 Bitwarden Server 的非官方实现(社区项目),主打资源占用低、部署简单,适合个人/小团队自托管密码库。与官方 Bitwarden Server 不同,Vaultwarden 是完全开源的,你可以在自己的服务器上运行它,而无需支付任何费用。
vw.example.com)80/443(给反向代理)80(HTTP 服务)本文给两条常见路线:
后文两种都给示例,你选其一即可。
不管你选择 Caddy 还是 Nginx,Vaultwarden 本体的部署都一样。核心思路是:
80)8443)80/443,由反向代理(Caddy/Nginx)负责 HTTPS 与转发openssl rand -base64 48
把输出保存好,后面会用到 ADMIN_TOKEN。
建议指定版本,不要用 latest,避免遇到不兼容导致的异常(例如某些版本组合下会出现 KDF config is required 之类的问题)。
docker run -d --restart always --name vaultwarden \
-e TZ=Asia/Shanghai \
-e LOG_FILE=/data/log/vaultwarden.log \
-e ADMIN_TOKEN=some_random_token \
-v /vaultwarden-data/:/data/ \
-p 8443:80 \
vaultwarden/server:1.35.2
或者
docker run -d --restart always --name vaultwarden -e TZ=Asia/Shanghai -e LOG_FILE=/data/log/vaultwarden.log -e ADMIN_TOKEN=some_random_token -v /vaultwarden-data/:/data/ -p 8443:80 vaultwarden/server:1.3.25
说明:
-v /vaultwarden-data/:/data/:数据持久化目录,备份只需要备份它
ADMIN_TOKEN:启用 /admin 管理后台的访问控制
-d:指定容器运行于前台或者后台(默认为 false 表示运行于后台)
--restart always:自动启动(在宿主机重启后或者 Docker 服务重启后)
--name vaultwarden:指定容器名称为 vaultwarden
-e TZ=Asia/Shanghai:设置时区
-e LOG_FILE=/data/log/vaultwarden.log:设置日志文件路径
-e ADMIN_TOKEN=some_random_token:设置 ADMIN_TOKEN 环境变量以启用管理页面
-v /vaultwarden-data/:/data/:挂载容器的 data 目录到宿主机的 vaultwarden-data 目录上
-p 8443:80:指定容器的 80 端口暴露在宿主机的 8443 端口上
启动后可以用下面命令确认容器状态:
docker ps
docker logs --tail=100 vaultwarden
也可以通过 http://127.0.0.1:8443 访问。不过此时没有开启https,一般是无法进行注册的,但是可以通过http://127.0.0.1:8443/admin进行配置管理。
接下来只剩“反代 + HTTPS”这一步。两种方案本质相同,区别在于你更习惯哪种工具。
- Caddy 通常自动处理
vw.example.com {
reverse_proxy 127.0.0.1:8443
}
要点:
vw.example.com 需要解析到你的服务器下面是 Nginx 的基础反代配置(证书路径以 Certbot 默认为例,默认你已经通过cerbot将SSL证书下载好了,如果没有请先通过cerbot下载证书)。配置显示该站点监听443端口,使用SSL证书,并将请求反向代理到本地的8443端口。
server {
listen 443 ssl;
server_name vw.example.com;
ssl_certificate /etc/letsencrypt/live/vw.example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/vw.example.com/privkey.pem; # managed by Certbot
location / {
proxy_pass http://127.0.0.1:8443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
当 Caddy/Nginx 配好并加载成功后,按下面步骤验收:
浏览器访问 Vaultwarden:
https://vw.example.com管理后台(需要 ADMIN_TOKEN):
https://vw.example.com/adminVaultwarden 的核心数据都在 /data:
/data(最简单可靠)示例(以 bind mount /opt/vaultwarden/data 为例):
docker stop vaultwarden
tar -czf /opt/backup/vaultwarden-$(date +%F).tar.gz -C /opt/vaultwarden data
docker start vaultwarden
docker compose pull
docker compose up -d
docker image prune -f
升级后验证:
https://DOMAIN 是否与你访问域名一致X-Forwarded-Protohttps://vw.example.com 正常访问到这里,一个可用且相对安全的 Vaultwarden 就搭好了。