Vaultwarden 自建密码库:Docker 一键部署 + 多端同步实测

密码这东西,越攒越多:网站账号、服务器 SSH、路由器后台、摄像头 NVR、各种 App……浏览器自带的密码管理器换台电脑就抓瞎,1Password、Bitwarden 官方云要么收费、要么数据在别人手里。我的解法是:在群晖 NAS 上用 Docker 跑 Vaultwarden——Bitwarden 服务器的轻量开源实现,几十 MB 内存就能跑,手机 App、浏览器插件、桌面客户端全兼容官方 Bitwarden 协议,数据完完全全在自己手里。
一、Vaultwarden 是干什么用的
一句话:自建的 Bitwarden 服务器。Bitwarden 是开源密码管理器,官方提供云服务;Vaultwarden 用 Rust 重写了服务端 API,功能对齐官方(密码库、TOTP、组织共享、附件、应急访问),但资源占用极低,树莓派、群晖这种小机器都能轻松跑。
为什么值得折腾:
- 数据自主:密码库存在自家 NAS 的硬盘上,不经过第三方服务器。
- 全端同步:官方 Bitwarden 客户端(iOS / Android / Windows / macOS / 浏览器插件)直接连自建地址登录,自动同步。
- 离线可用:客户端有本地加密缓存,断网也能查密码。
- 免费:核心功能全开,不用订阅。
二、Docker 一键部署(群晖 DSM 7.2)
群晖 Container Manager 里用「项目」(docker compose)部署最省事。先在 docker 共享文件夹下建好目录,比如 /volume1/docker/vaultwarden。
compose 文件如下:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
- DOMAIN=https://vw.example.com # 改成你自己的域名
- SIGNUPS_ALLOWED=true # 先允许注册,建好账号后改成 false
- ADMIN_TOKEN=换成一串强随机口令 # 后台管理 /admin 用
volumes:
- /volume1/docker/vaultwarden:/data
ports:
- "127.0.0.1:8080:80"部署步骤:
- Container Manager → 项目 → 新增 → 项目名称填
vaultwarden,路径选docker/vaultwarden,把上面 compose 内容粘进去,点「下一步」建好并启动。 - 容器跑起来后先别急着暴露公网——Bitwarden 客户端强制要求 HTTPS,纯 http 直连会报安全错误。去 DSM「登录门户 → 高级 → 反向代理服务器」加一条规则:来源
https://vw.example.com,目的地http://localhost:8080,并配好 Let's Encrypt 证书。 - 浏览器打开
https://vw.example.com,注册你的管理员账号,然后立刻把SIGNUPS_ALLOWED改成false并重建容器——公开注册的密码库等于给全网开了个保险柜门,这一步不能忘。 - 访问
https://vw.example.com/admin,用ADMIN_TOKEN进后台,可以看到用户、组织与配置一览。

到这一步服务端就绪。整个链路是:群晖 Docker 跑 Vaultwarden 容器 → DSM 反向代理做 HTTPS 统一入口 → 手机、电脑、浏览器各端连同一个域名同步。
三、多端同步实测
- 网页端:浏览器直接打开域名登录,就是完整的密码库管理界面,新增、编辑、搜索、生成强密码都在这。
- 手机端:装官方 Bitwarden App,登录时点齿轮把「自托管」服务器地址填成你的域名,登录后密码库秒同步。实测:手机上新增一条 NAS 登录,电脑端刷新即出现。
- 浏览器插件:Chrome / Edge 装 Bitwarden 插件,同样填自托管地址,登录表单自动填充,体验和官方云无差别。
- 离线:手机开飞行模式,已同步过的密码照样能查——客户端本地有加密缓存。
另外 TOTP(一次性验证码)也能直接存在条目里,扫码登录网站时自动填充验证码,手机上可以少装一个验证器 App。
四、避坑指南
- 必须 HTTPS:客户端依赖 Web Crypto,纯 http 下网页版直接报错,这是新手翻车最多的地方。
- 注册完立刻关闭公开注册:
SIGNUPS_ALLOWED=false,否则任何人都能在你的服务器上注册账号。 ADMIN_TOKEN用强口令:/admin后台能管理所有用户,别用弱口令。- 备份
/data目录:密码库本质是个 SQLite 文件,用 Hyper Backup 把docker/vaultwarden目录定时备份一份。丢了就是真丢了——没有官方客服能帮你找回。 - 端口别直接映射公网:上面 compose 绑的是
127.0.0.1:8080,只走 DSM 反向代理;需要外网访问就走你已有的内网穿透方案。 - 升级:Container Manager 里拉取最新的
vaultwarden/server镜像后重建容器即可,数据都在映射卷里,不会丢。
五、怎么卸载
不想要了也很干净:Container Manager 里停止并删除 vaultwarden 项目和容器,删除 vaultwarden/server 镜像,最后删掉 /volume1/docker/vaultwarden 数据目录——密码数据彻底清除。各客户端退出登录并清除本地缓存即可。删数据目录前先确认已导出备份(网页端 → 工具 → 导出密码库,建议选加密 json),别手滑。
自建密码库这件事,门槛就是一台 NAS 加十分钟。数据回到自己手里之后,换设备、重装系统再也不用为密码发愁了。
相关旧文
- Lucky / FRP / ECH 三种内网穿透实测对比:延迟、成本、稳定性怎么选 —— 自建服务要从外网访问,穿透方案看这篇选型
- 群晖 Docker 容器升级失败怎么办:备份、回滚与日志排查完整指南 —— 容器升级翻车时的标准处理流程


评论 (0)