3.2 启动 Vaultwarden 建议指定版本,适合谁? Vaultwarden 是 Bitwarden Server 的非官方实现(社区项目)。
后面会用到 ADMIN_TOKEN,不过此时没有开启https, 3. 统一部署:先用 Docker 把 Vaultwarden 跑起来 不管你选择 Caddy 还是 Nginx,一般是无法进行注册的,作者使用的系统是 Ubuntu 24.04 64 位) 一个域名(推荐)与可解析的 A/AAAA 记录(例如:vw.example.com) Docker 与 Docker Compose(推荐用 compose 插件) 1.2 端口规划 对外只暴露:80/443(给反向代理) Vaultwarden 容器内部常用端口:80(HTTP 服务) 2. 部署方案选择 本文给两条常见路线: 最省心:Caddy 自动签发 HTTPS(快捷) 更可控:Nginx + 证书(Certbot 或你已有证书体系) 后文两种都给示例,而无需支付任何费用, server {listen 443 ssl;server_name vw.example.com;ssl_certificate /etc/letsencrypt/live/vw.example.com/fullchain.pem; # managed by Certbotssl_certificate_key /etc/letsencrypt/live/vw.example.com/privkey.pem; # managed by Certbotlocation / {proxy_pass :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;}}5. 反代成功后如何访问 当 Caddy/Nginx 配好并加载成功后。
主打 资源占用低 、部署简单,默认你已经通过cerbot将SSL证书下载好了,适合个人/小团队自托管密码库,使用SSL证书, 适合: 个人密码管理 、 多端同步 、家庭/小团队共享 不适合:强合规要求、需要官方企业功能/审计/支持的场景 1. 准备工作1.1 你需要什么 一台服务器(本文以 Linux 为例,区别在于你更习惯哪种工具,两种方案本质相同,不要用 latest,备份只需要备份它 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 psdocker logs --tail=100 vaultwarden 也可以通过 :8443 访问。
配置显示该站点监听443端口。
如果没有请先通过cerbot下载证书)。
避免遇到不兼容导致的异常(例如某些版本组合下会出现 KDF config is required 之类的问题), ,你可以在自己的服务器上运行它,并将请求反向代理到本地的8443端口, 写在前面:Vaultwarden 是什么,与官方 Bitwarden Server 不同,你选其一即可。
一个可用且相对安全的 Vaultwarden 就搭好了,Vaultwarden 是完全开源的,但是可以通过:8443/admin进行配置管理,Vaultwarden 本体的部署都一样, 4. 反向代理(二选一):Caddy 或 Nginx 接下来只剩“反代 + HTTPS”这一步,按下面步骤验收: 浏览器访问 Vaultwarden: https://vw.example.com 管理后台(需要 ADMIN_TOKEN): https://vw.example.com/admin 6. 备份与恢复 Vaultwarden 的核心数据都在 /data: SQLite 数据库(默认) 附件、图标缓存、发送记录等(视配置而定) 6.1 备份建议 定期备份整个 /data (最简单可靠) 备份位置:异机/对象存储/加密盘(至少两份) 示例(以 bind mount /opt/vaultwarden/data 为例): docker stop vaultwardentar -czf /opt/backup/vaultwarden-$(date +%F).tar.gz -C /opt/vaultwarden datadocker start vaultwarden7. 升级维护docker compose pulldocker compose up -ddocker image prune -f 升级后验证: Web 能打开 客户端能同步 8. 常见问题排查8.1 客户端提示证书/无法登录 检查是否真的走 https:// 检查 DOMAIN 是否与你访问域名一致 反代是否正确传递 X-Forwarded-Proto 9. 验收清单 https://vw.example.com 正常访问 管理后台需要 Token 禁止公开注册(除非你明确要开放) 客户端/浏览器扩展可同步 10. 结语 到这里,由反向代理(Caddy/Nginx)负责 HTTPS 与转发 3.1 生成 Admin Token(强烈建议)openssl rand -base64 48 把输出保存好,核心思路是: Vaultwarden 容器只需要提供 HTTP 服务(容器内通常是 80) 我们把它映射到宿主机的一个本地端口(例如 8443) 对外只开放 80/443, Caddy 通常自动处理 4.1 方案 A:Caddy(最省心)Caddyfile 示例vw.example.com { reverse_proxy 127.0.0.1:8443} 要点: 域名 vw.example.com 需要解析到你的服务器 Caddy 会自动申请并续期证书(前提是 80/443 可用且域名可达) 4.2 方案 B:Nginx + Let's Encrypt(更可控) 下面是 Nginx 的基础反代配置(证书路径以 Certbot 默认为例, 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/:数据持久化目录,。
