bitwarden_rs 项目已经换名字了 现在叫 vaultwarden
开篇废话 && 比较
市面上已经有很多密码管理工具了,比如我之前用的 1password keepass lastpass enpass 等,全开源能自建服务端体验还正常点的的好像就只有 bitwarden 了
目前市面上 bitwarden 服务端有两种,一种是官方的,一种是民间版本,这里我简单地做下比较
类型 | bitwarden | vaultwarden |
---|---|---|
编写语言 | dotnet | Rust |
数据库 | MSSQL | Mysql/Sqlite/PostgreSQL |
很明显,官方的版本在运行时的体积要比rust版更大,所以我选择了 vaultwarden
当然 两者都有 docker image 可以快速部署(不过我没有采用这个)
安装
这里我使用的是 ArchLinux
pacman -S vaultwarden vaultwarden-web
即可
默认配置地址在 /etc/vaultwarden.env 里面,我们随便来配置一下,主要要配置的项目如下表所示
项目 | 值 | 描述 |
---|---|---|
ROCKET_ADDRESS | 127.0.0.1 | 绑定地址 |
ROCKET_PORT | 8000 | 绑定端口 |
WEBSOCKET_ENABLED | true | 启用 websocket(启用后密码同步会更即时) |
WEBSOCKET_ADDRESS | 127.0.0.1 | websocket 绑定地址 |
WEBSOCKET_PORT | 3012 | websocket 端口 |
SIGNUPS_ALLOWED | true | 允许注册,在自己注册完后可以关掉 |
WEB_VAULT_ENABLED | true | 开启网页版(实际上我的nginx下这个配置是无效的) |
IP_HEADER | CF-Connecting-IP | 真实ip的header 这里我用cf 所以是这个 其它cdn什么的可以用 X-Forwarded-For |
DATABASE_URL | data/db.sqlite3 | 这里我懒得用mysql之类的了 直接sqlite就好了 要其它的可以按照注释改 |
基本上配置上面的那些就够了
配置文件的格式是 项目=值 这里照着文件改改就好了(要把#注释干了)
这是我的配置参考 链接
这些改完后 我们直接启动服务就好了~(顺便开机自启下)
systemctl enable vaultwarden --now
不出意外的话 服务就启动了
~# netstat -tnlp | grep vaultwarden
tcp 0 0 127.0.0.1:3012 0.0.0.0:* LISTEN 25861/vaultwarden
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 25861/vaultwarden
接下来就是配置 nginx 并且下载网页版的内容了
server {
server_name 你的域名;
listen 80; # 建议自行更改成ssl配置
root /usr/share/vaultwarden-web;
index index.html;
location /api {
proxy_pass http://127.0.0.1:8000; # 和 ROCKET_ADDRESS 一样 以下同理
}
location /identity {
proxy_pass http://127.0.0.1:8000;
}
location /notifications/hub {
proxy_pass http://127.0.0.1:3012; # 为ws地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8000;
}
}
nginx -t
检查配置文件都ok后 重启nginx
(可以是 nginx -s reload
或者 systemctol reload nginx
)
接着我们浏览器打开,基本就可以正常使用了
客户端自定义下域名 也可以用了
教程就水到这里了 再见~