AI摘要

文章详述在Ubuntu+宝塔面板用Docker部署轻量Vaultwarden,配SSL反向代理,注册后关闭SIGNUPS,实现低资源、全私有Bitwarden自托管密码库。

写在前面

在数字化时代,密码管理已成为每个人必须面对的问题。虽然市面上有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文件夹,这个后面用于挂载容器的目录

  1. 设置容器名称
  2. 设置端口,本地端口5056(这个端口随便你填,最好选择冷门不常用的,防止你以后装什么mysql,redis啥的端口冲突了),容器端口80
  3. 选择更多设置->添加挂载/映射

    1. 选择本机目录
    2. 设置挂载目录/www/wwwroot/bitwarden_data
    3. 选择权限读写
    4. 设置容器目录/data/

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

这样服务就启动好了,但是为了安全和功能完整性,我们要给这个服务设置反向代理到指定的域名,而且这个域名要配置ssl证书(后面我会讲),之前我就试验过,如果不配置的话,虽然能查看密码,但是新增,修改和删除密码都会不起效,具体的原因我也不知道为啥。如图所示创建php站点。输入域名,这个域名的解析要解析到你这台服务器的ip地址。
可能也有的小伙伴发现了,这个上面不是也有反向代理的菜单么,为啥不选择这个啊。确实是,之前我试过这个,也是新增,修改和删除不生效。如果有小伙伴用这个成功了,可以在评论区分享一下你是怎么做的。

创建完站点之后,点击设置,选择反向代理,添加反向代理,参考图示填写。

设置好之后,点击SSL,参考如图所示申请证书

证书申请好之后,强制开启https,最好设置一下到期提醒,避免证书失效。现在免费域名的证书有效期挺短的。

至此,我们在服务器上的配置就已经完成了。现在我们就可以下载bitwarden进行配置了。点击跳转到官网进行下载

我这里以windows的客户端为例,首先配置自托管,就是刚刚配置的域名,然后再创建账户,成功了之后就可以进行登录了。

重点来了。这个域名地址,如果别人都知道了也是可以拿这个域名作为他们的托管地址的,而且我们没有配置什么邮件通知啥的,所以别人注册了,我们是第一时间发现不了的,可以说神不知鬼不觉,除非你查询sqllite才能发现多了你不认识的账户。那为此,我们自己在创建好账号之后,关闭掉注册功能和邀请注册功能。

  1. 到宝塔面板,Docker->容器,选择你创建的bitwarden容器,选择停止,然后删除,这个删除不会丢失数据,因为数据文件夹是服务器上的目录挂载的,删除容器不会删除这个目录,当然你不放心也可以先在bitwarden上导出密码,这个我就不说了。
  2. 删除之后,我们这次就不要在面板上创建容器了,我们通过命令的方式创建,这样我们就可以关闭掉注册功能和邀请注册功能。
    命令格式:
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上运行

后续建议

  1. 定期备份:设置自动备份脚本(宝塔面板上有计划任务菜单,可以定时备份目录啥的,大家可以自行研究配置)
  2. 监控告警:配置日志监控和异常告警
  3. 版本更新:关注安全更新,及时升级

自建密码管理器不仅是一项技术实践,更是对个人数据主权的宣告。在这个数据即资产的时代,掌握自己的数据,就是掌握自己的数字命运。


部署过程中如遇到问题,欢迎在评论区交流讨论。技术之路,我们共同前行。

版权声明 ▶ 本网站名称:黄磊的博客
▶ 本文标题:使用Docker部署Bitwarden密码管理器:完全自掌控的数据安全方案
▶ 本文链接:https://www.huangleicole.com/linux/120.html
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

如果觉得我的文章对你有用,请随意赞赏