不喜 Docker 作为生产环境,Vaultwarden 都是手动安装的。闲来无事写了个一键更新 Vaultwarden 的脚本,进而又把它扩展成了一键安装脚本,可以实现 SQLite, MariaDB, MySQL 和 PostgreSQL 等 Vaultwarden 本身支持的所有类型数据库在安装时直接配置连接。配合更新脚本 + crontab 实现自动无感更新。
食用方法:
1. 建立好数据库(使用 SQLite 则不用建立)并记好数据库用户名、数据库密码和数据库名
2. 执行
bash -c "$(curl -L https://github.com/KukiSa/Note/raw/main/vaultwarden-install.sh)"
按提示操作,填入相应信息,懒得截图了。
3. Nginx 配置 SSL 和反向代理,反向代理示例配置如下:
#PROXY-START/
location /
{
proxy_pass http://127.0.0.1:13080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
}
location /notifications/hub
{
proxy_pass http://127.0.0.1:13012;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
}
#PROXY-END/
其中,第 4 行的 13080 为 /etc/vaultwarden.env 中 ROCKET_PORT 的值;第 14 行的 13012 为 /etc/vaultwarden.env 中 WEBSOCKET_PORT 的值。
SSL (https) 一定要配置,不然不能用!
https://vaultwarden.example.com/admin 路径为管理页面,Admin Token 为 /etc/vaultwarden.env 中 ADMIN_TOKEN 的值,在安装时自动生成。
整好了就可以套 Cloudflare 之类的支持 WS 的 CDN 了,毕竟 BitWarden 官方 https://vault.bitwarden.com/ 用的都是 Cloudflare,,,
5. 更新
下载 https://github.com/KukiSa/Note/raw/main/vaultwarden-update.sh,赋予执行权限后用 Crontab 设置每日执行一次即可。