前言

密码管理器对于经常上网的人来说必不可少,常用的就是谷歌浏览器自带的了,但安全性极低。密码管理一般使用1password、keypass和lastpass(据说有过数据泄露)、Bitwarden等。

今天推荐的是Vaultwarden,它是Bitwarden的开源版本,支持多端同步,并且有浏览器插件,自部署可以免费使用Bitwarden的所有高级付费功能!

对于新手来说,搭建一个项目/网站,最麻烦的地方就在于:域名、证书、反代

现在借助 Claw devbox,只要安装好容器,就能自动生成https网站公网访问,简直太简单了!

首先注册Claw devbox,Google和GitHub注册都行,但如果你有180天以上的GitHub老账号,恭喜,你可以每月白嫖5$额度,无需花费1分钱。(人话:永久白嫖的前提是有个GitHub老账号)

地区选择近点的,JP和SG都行

创建镜像

进入App Luanchpad,点右上角,Create APP

应用名称随便取一个,就叫 vaultwarden

Image Name要填vaultwarden的docker地址:vaultwarden/server:latest

配置选择

选个差不多的比如:0.5c 0.5g0.5c1g1c0.5g等等,尽量不要逼近0.16,留点冗余。

这里要注意的是:我们每月只有5$的额度,平均分到30天,每天消耗不能超过0.16$

网络设置

开启网络访问,80端口不变

环境设置

Environment Variables 加上以下内容:

ADMIN_TOKEN=nDvPmc5fd$m#4^@L$otpw6EsGREgVs@UmSmZ3$^
SENDS_ALLOWED=true
WEB_VAULT_ENABLED=true
EMERGENCY_ACCESS_ALLOWED=true
SIGNUPS_ALLOWED=true

解释:

ADMIN_TOKEN=nDvPmc5fd$m#4^@L$otpw6EsGREgVs@UmSmZ3$^ #此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全

SENDS_ALLOWED=true # 此设置决定是否允许用户创建Bitwarden发送 - 一种凭证共享形式。

EMERGENCY_ACCESS_ALLOWED=true #此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。

WEB_VAULT_ENABLED=true #此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。

SIGNUPS_ALLOWED=true #此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。

Local Storage 加点存储空间用于备份 5-10G即可 (手动备份密码到本地则不用太多储存空间)

Capacity:5

Mount Path:/vw-data/

开始部署,点击右上角的 Deploy Application

部署成功

复制 Public Address,到浏览器访问

网站部署成功

到这里,如果你能看到网站正常打开

那么恭喜你

你成功搭建了自己的网站,虽然没有自己的域名、没有申请证书、没有安装证书、也没有反代(Claw devbox替你做了)

但你已经有了一个https加密访问的公开网站!

注册账号并完善设置

接下来注册你自己的账号

输入你的邮箱、主密码(非常重要!你的所有数据都通过主密码加密!),创建自己的账户

完善设置,你仔细想想,你的网站,你能注册,别人能不能注册?好像没有限制?

接下来,关闭注册!只有你一个用户。

访问管理员页面:在你的网址后,加上/admin,即:https://xxxx.com/admin

token就是上面输入的环境值:ADMIN_TOKEN=nDvPmc5fd$m#4^@L$otpw6EsGREgVs@UmSmZ3$^

Allow new signups,取消勾选,就不能注册账户了。

如果你忘记了ADMIN_TOKEN,回到配置的位置,[Update],重新去看即可。

浏览器插件和APP

Vaultwarden(Bitwarden) Chrome插件 APP可在谷歌商店下载

插件或者app登录的时候,服务器选择自托管,并填入你自建的网址

备份

方法1:手动导出密码库,加密的json文件

方法2:打包备份data文件夹

  • db.sqlite3 (SQLite 数据库)

  • db.dump (PostgreSQL 数据库)

  • db.sql (MySQL / MariaDB 数据库)

  • config.json

  • rsa_key* (多个文件)

  • attachments (目录)

  • sends (目录)

至此,关于自建密码管理器基本就完结了。

希望大家都能用上好用的密码管理器!