vaultwarden 安装
编辑
vaultwarden 安装
一、介绍
Bitwarden 是一个开源的密码管理软件,可以由用户自行部署使用。不过官方的服务占用空间大(使用MSSQL数据库),部署复杂,所以有开源的第三方,使用 Rust 编写的项目,bitwarden_rs ,后来改名为 vaultwarden。
Bitwarden Github仓库(17.3K Star)
Vaultwarden Github仓库(49.7K Star)
默认的 vaultwarden 镜像使用sqlite 作为后端的数据库存储,自己并不喜欢,换成了 postgres 数据库。
二、Docker部署
自己现在钟爱 docker-compose 来部署,挂载出关键数据,定期备份到腾讯云对象存储,很是方便。
即使遇到迁移服务器,也只需要下载解压,然后重新up 就可重新恢复,添加反向代理即可。
2.1 配置镜像源
境内机器需要配置镜像源
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1panel.live"
]
}
systemctl daemon-reload
systemctl restart docker
2.2 Docker部署
mkdir /opt/selfhost/vaultwarden
cd /opt/selfhost/vaultwarden
cat > docker-compose.yaml
version: "3.8"
services:
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_USER: vaultwarden
POSTGRES_PASSWORD: yourStrongPass
POSTGRES_DB: vaultwarden
volumes:
- ./postgres-data:/var/lib/postgresql/data
vaultwarden:
image: vaultwarden/server:1.34.3
depends_on:
- db
restart: unless-stopped
environment:
DATABASE_URL: "postgres://vaultwarden:yourStrongPass@db:5432/vaultwarden"
DOMAIN: "https://你的域名"
ADMIN_TOKEN: 管理员后台密码
ports:
- "10086:80"
volumes:
- ./vw-data:/data
启动
docker compose up -d
2.3 设置反向代理
-
nginx
server { listen 80; server_name vault.example.com; # Vaultwarden 反代 location / { proxy_pass http://127.0.0.1:10086; 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 X-Forwarded-Proto $scheme; } # WebSocket 支持(用于实时通知) location /notifications/hub { proxy_pass http://127.0.0.1:10086; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /notifications/hub/negotiate { proxy_pass http://127.0.0.1:10086; } }使用acme.sh 一键签发部署SSL证书
- 安装
curl https://get.acme.sh | sh -s email=my@example.com- nginx签发
acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com -
nginx proxy manager(漏洞太多,不安全) -
caddy,配置简单,自动部署SSL证书
app.example.com { reverse_proxy localhost:10086 } -
cloudflare tunnel**【推荐】**
- 免证书配置
- 不暴露源站IP、端口
- 自动绕过备案

三、配置
3.1 翻译
管理界面默认是英文的,需要翻译成中文。

mkdir -p /opt/selfhost/vaultwarden/vw-data/templates
下载语言包,参考资料
cd ~
git clone https://github.com/wcjxixi/vaultwarden-lang-zhcn
cp -r ~/vaultwarden-lang-zhcn/admin /opt/selfhost/vaultwarden/vw-data/templates
cp -r ~/vaultwarden-lang-zhcn/email\ -\ v1.32.4/ /opt/selfhost/vaultwarden/vw-data/templates
mv /opt/selfhost/vaultwarden/vw-data/templates/email\ -\ v1.32.4/ /opt/selfhost/vaultwarden/vw-data/templates/email
重启vaultwarden
cd /opt/selfhost/vaultwarden
docker compose down
docker compose up -d

3.2 SMTP邮件服务
添加环境变量
ADMIN_TOKEN
进入/admin 后台后设置 SMTP 即可。
3.3 获取真实IP
进入 /admin 后台设置,Client IP header 为
X-Forwarded-For
3.4 自定义样式
看官方文档,新版本已经支持自定义css。
mkdir -p /opt/selfhost/vaultwarden/vw-data/templates/scss
编辑要插入的 css 文件。
vim /opt/selfhost/vaultwarden/vw-data/templates/scss/user.vaultwarden.scss.hbs
/* 页脚文字 */
footer::after {
content: "Power by 浅空";
display: block;
text-align: center;
margin-top: 10px;
font-size: 12px;
color: #007bff;
}
3.5 备份
3-2-1 备份策略
- 3份数据
- 2种介质
- 1份异地备案
/opt/selfhost/backup_vaultwarden.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/opt/selfhost/vaultwarden"
LOG_FILE="/var/log/vaultwarden_backup.log"
echo "[$(date)] Starting backup..." >> $LOG_FILE
# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE
# 备份网站文件
tar -czf $BACKUP_DIR/$DATE/vaultwarden_files.tar.gz /opt/selfhost/vaultwarden >> $LOG_FILE 2>&1
# 保留最近7天备份
find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \; >> $LOG_FILE 2>&1
echo "[$(date)] Backup completed" >> $LOG_FILE
corntab -e
* 1 * * * /opt/selfhost/backup_vaultwarden.sh
四、封面图

- 0
- 0
-
分享