AI摘要
写在前面
在数字化时代,密码管理已成为每个人必须面对的问题。虽然市面上有LastPass、1Password等优秀产品,但将敏感的密码数据完全托管给第三方服务商,总让许多技术人心存顾虑。今天,我将分享如何通过Docker自主部署Bitwarden——这款开源且功能强大的密码管理器,让你在享受便捷的同时,完全掌控自己的数据。
技术栈选择与规划
为什么选择Bitwarden?
- 完全开源:代码透明,可自行审查安全性
- 多平台支持:Web、桌面端、浏览器扩展、移动App全覆盖
- 自托管能力:数据完全私有,避免第三方风险
- Docker友好:官方提供完整的容器化部署方案
环境准备
在开始前,请确保你的服务器满足以下条件:
- Linux系统(本文以Ubuntu 22.04为例)
- 至少2GB内存,20GB存储空间
为了简化安装步骤,同时也为了让更多的新手小白能够快速的部署自己的密码服务器,这里搭配使用宝塔面板进行安装
宝塔面板安装地址:https://www.bt.cn/new/download.html
选择通用安装脚本就行,然后就让他安装,我们等就行了。
安装好之后就会出现登录的地址,以及用户名密码,这里要先放开端口。
进入到面板之后,我们选择Docker菜单,安装Docker
安装好之后,我们选择线上镜像,然后在输入框输入vaultwarden搜索镜像,选择第一个进行拉取。这里说明一下为啥要输入这个。因为bitwarden的docker镜像有两种,
一个是bitwarden/server,这是官方的镜像,功能最全,但资源消耗较大(需要 2GB+ 内存),适合企业或高配置服务器。
还有一个就是vaultwarden/server,这个是社区版本的,这个很轻量,而且占用大概10MB+内存,且完全兼容官方客户端,是个人或家庭自托管的首选。
在拉取界面选择latest
如果拉取异常,比如超时,可以在设置里设置加速url
拉取好之后,我们转到本地镜像页面去创建容器
在进行接下来的步骤之前,先在/www/wwwroot/下面创建bitwarden_data文件夹,这个后面用于挂载容器的目录
- 设置容器名称
- 设置端口,本地端口5056(这个端口随便你填,最好选择冷门不常用的,防止你以后装什么mysql,redis啥的端口冲突了),容器端口80
选择更多设置->添加挂载/映射
- 选择本机目录
- 设置挂载目录/www/wwwroot/bitwarden_data
- 选择权限读写
- 设置容器目录/data/

点击容器查看日志是否启动成功

这样服务就启动好了,但是为了安全和功能完整性,我们要给这个服务设置反向代理到指定的域名,而且这个域名要配置ssl证书(后面我会讲),之前我就试验过,如果不配置的话,虽然能查看密码,但是新增,修改和删除密码都会不起效,具体的原因我也不知道为啥。如图所示创建php站点。输入域名,这个域名的解析要解析到你这台服务器的ip地址。
可能也有的小伙伴发现了,这个上面不是也有反向代理的菜单么,为啥不选择这个啊。确实是,之前我试过这个,也是新增,修改和删除不生效。如果有小伙伴用这个成功了,可以在评论区分享一下你是怎么做的。
创建完站点之后,点击设置,选择反向代理,添加反向代理,参考图示填写。
设置好之后,点击SSL,参考如图所示申请证书
证书申请好之后,强制开启https,最好设置一下到期提醒,避免证书失效。现在免费域名的证书有效期挺短的。
至此,我们在服务器上的配置就已经完成了。现在我们就可以下载bitwarden进行配置了。点击跳转到官网进行下载
我这里以windows的客户端为例,首先配置自托管,就是刚刚配置的域名,然后再创建账户,成功了之后就可以进行登录了。
重点来了。这个域名地址,如果别人都知道了也是可以拿这个域名作为他们的托管地址的,而且我们没有配置什么邮件通知啥的,所以别人注册了,我们是第一时间发现不了的,可以说神不知鬼不觉,除非你查询sqllite才能发现多了你不认识的账户。那为此,我们自己在创建好账号之后,关闭掉注册功能和邀请注册功能。
- 到宝塔面板,Docker->容器,选择你创建的bitwarden容器,选择停止,然后删除,这个删除不会丢失数据,因为数据文件夹是服务器上的目录挂载的,删除容器不会删除这个目录,当然你不放心也可以先在bitwarden上导出密码,这个我就不说了。
- 删除之后,我们这次就不要在面板上创建容器了,我们通过命令的方式创建,这样我们就可以关闭掉注册功能和邀请注册功能。
命令格式:
docker run -d \
--name 容器名称 \
--restart unless-stopped \
-v 本机目录:容器目录 \
-p 127.0.0.1:你的端口:80 \
-e SIGNUPS_ALLOWED=false \
-e INVITATIONS_ALLOWED=false \
vaultwarden/server:latest示例:
docker run -d \
--name bitwarden \
--restart unless-stopped \
-v /www/wwwroot/bitwarden_data:/data \
-p 127.0.0.1:5056:80 \
-e SIGNUPS_ALLOWED=false \
-e INVITATIONS_ALLOWED=false \
vaultwarden/server:latest通过命令方式创建的容器在宝塔面板也会显示,这样我们就完成了对用户注册功能的屏蔽,虽然软件上有创建账户的功能,但是提交的时候就会提示说不允许用户注册。
总结
通过以上步骤,你已经成功部署了一个完全自掌控的Bitwarden密码管理服务器。相比云服务,自托管方案虽然需要一定的维护成本,但带来的数据自主权和安全性提升是值得的。
关键优势回顾:
- ✅ 数据100%私有,无需信任第三方
- ✅ 功能完整,与官方版本基本一致
- ✅ 部署简单,Docker封装了所有依赖
- ✅ 成本可控,可在低配VPS上运行
后续建议
- 定期备份:设置自动备份脚本(宝塔面板上有计划任务菜单,可以定时备份目录啥的,大家可以自行研究配置)
- 监控告警:配置日志监控和异常告警
- 版本更新:关注安全更新,及时升级
自建密码管理器不仅是一项技术实践,更是对个人数据主权的宣告。在这个数据即资产的时代,掌握自己的数据,就是掌握自己的数字命运。
部署过程中如遇到问题,欢迎在评论区交流讨论。技术之路,我们共同前行。