Vaultwarden 是兼容 Bitwarden 客户端的轻量密码库服务。本项目在 NAS(.164)上用 Docker 部署 vaultwarden/server:latest(1.37.4),将宿主机 8091 映射到容器 80,数据保存在 /opt/web/vaultwarden-data,并接入 sync.sh 每日备份。对外通过 Cloudflare 灰云 A 记录、frpc 的 web-https/web-http 代理和 NPM 反向代理提供 https://vault.xiejun-server.top 访问,复用 Let's Encrypt 多域名证书,支持 WebSocket,上传体积上限 525M。这样可把 NPM、Gitea、Memos、PhotoPrism、Open WebUI、博客后台、Windows 主机和路由器等重复/弱密码集中改为随机强密码,并逐步启用 TOTP。当前站点与 API 已验证正常,首个账号已注册,SIGNUPS_ALLOWED 已关闭,仅保留邀请注册;主密码更换和服务密码迁移仍在待办。
功能
- 自建 Bitwarden 兼容密码库,Web Vault 与 API 已验证正常
- Docker 部署,数据目录持久化并纳入每日备份
- Cloudflare、frpc、NPM 全链路 HTTPS 访问
- NPM 反代支持 WebSocket,上传体积上限 525M
- 管理面板通过 ADMIN_TOKEN 登录
- 注册关闭后保留邀请注册能力
技术栈
使用 / 部署教程
部署与使用步骤
- DNS:在 Cloudflare 为
vault添加 A 记录指向38.76.200.139,保持 DNS only(灰云)。 - 容器:在 NAS
.164准备数据目录/opt/web/vaultwarden-data,使用镜像vaultwarden/server:latest,端口映射8091:80。环境变量设置DOMAIN=https://vault.xiejun-server.top、SIGNUPS_ALLOWED=true(首次注册用)、INVITATIONS_ALLOWED=true、TZ=Asia/Shanghai,并将ADMIN_TOKEN放入/root/.vaultwarden-admin-token(权限 600)。具体启动命令按现有 Docker 配置执行。 - 反向代理:在 NPM 新建代理,80 端口走 ACME,443 反代到
127.0.0.1:8091,开启 WebSocket,设置client_max_body_size 525M;配置文件位于/opt/web/npm-data/nginx/proxy_host/23-vault.conf。 - 内网穿透:在
.164的frpc.toml中为web-https/web-http加入vault.xiejun-server.top。 - 证书:复用
xiejun-server.top的 Let's Encrypt 多域名证书,配置renew_hook执行docker exec npm nginx -s reload。 - 验证与初始化:访问
https://vault.xiejun-server.top/应返回 200,检查/api/config的 domain;注册首个账号后,将SIGNUPS_ALLOWED改为false并重启容器。管理面板访问/admin,用ADMIN_TOKEN登录。 - 使用:把现有服务密码逐个改为随机强密码并存入 Vaultwarden,重要服务开启 TOTP;每周确认备份包含
vaultwarden-data。
常见问题
如何登录 Vaultwarden 管理面板?
访问 https://vault.xiejun-server.top/admin,使用 /root/.vaultwarden-admin-token 中的 ADMIN_TOKEN 登录。
现在还能公开注册新账号吗?
不能。首个账号注册后 SIGNUPS_ALLOWED=false 已生效,当前仅保留 INVITATIONS_ALLOWED=true 的邀请注册。
密码库数据如何备份?
数据目录为 /opt/web/vaultwarden-data,已加入 sync.sh 每日备份;建议每周确认备份包含该目录。
主密码暴露后应该怎么处理?
尽快在 Web Vault 的「安全设置 → 修改主密码」更换,之后不再外发;同时继续完成各服务密码迁移与 TOTP 2FA。
注意
- 资料显示主密码曾在聊天中暴露,应尽快在 Web Vault「安全设置 → 修改主密码」更换,之后不再外发。
- 注册完成后必须将
SIGNUPS_ALLOWED改为false并重启容器,保留INVITATIONS_ALLOWED=true以便邀请注册。 - 备份依赖
sync.sh每日同步,需每周确认vaultwarden-data在备份范围内;证书续期后依赖renew_hookreload NPM。

评论
加载中…