提醒:
1.本文假定给予 Ubuntu/Debian下进行,使用 CentOS 请自行替换为相应命令
2.假定已有一个域名 example.com 指向服务器
教程:
1.安装 Docker
curl -sSL https://get.daocloud.io/docker | sh
2.安装 Docker compose
docker run --rm -v /usr/local/bin:/dist gists/docker-compose-bin:latest && docker rmi gists/docker-compose-bin:latest
3.创建配置目录并进入该目录
mkdir /root/.config/bitwarden
cd /root/.config/bitwarden
4.创建下面的 docker-compose.yml 文件,并把 DOMAIN 和 EMAIL 变量替换为适当的值
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: bitwarden
restart: always
environment:
- WEBSOCKET_ENABLED=true # 启用 WebSocket 通知
volumes:
- /root/.config/bitwarden:/data
caddy:
image: caddy:2
container_name: caddy
restart: always
ports:
- 80:80 # ACME HTTP-01 验证需要
- 443:443
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-config:/config
- ./caddy-data:/data
environment:
- DOMAIN=http(s)://example.com # 您的域名,以 http 或 https 作为前缀
- EMAIL=admin@example.com # 用于 ACME 注册的电子邮件地址
- LOG_FILE=/data/access.log
5.创建一个 Caddyfile 文件,并填入以下内容:
{$DOMAIN}:443 {
log {
level INFO
output file {$LOG_FILE} {
roll_size 10MB
roll_keep 10
}
}
# 使用 ACME HTTP-01 验证方式为已配置的域名获取证书
tls {$EMAIL}
# 此设置可能会在某些浏览器上出现兼容性问题(例如,在 Firefox 上下载附件)
# 如果遇到问题,请尝试禁用此功能
encode gzip
# Notifications 重定向到 WebSocket 服务器
reverse_proxy /notifications/hub vaultwarden:3012
# 将任何其他东西代理到 Rocket
reverse_proxy vaultwarden:80 {
# 把真实的远程 IP 发送给 Rocket,让 Vaultwarden 把其放在日志中
# 这样 fail2ban 就可以阻止正确的 IP 了
header_up X-Real-IP {remote_host}
}
}
6.运行以下命令创建并启动容器:
docker-compose up -d
7.安装 Rclone 并依据提示完成配置:
curl https://rclone.org/install.sh | bash
8.创建一个备份脚本:
nano /root/.config/sh/backup.sh
填入以下内容(这里假定 Rclone 远端服务器备份目录为 a:data/bitwarden):
#!/bin/bash
/usr/bin/tar -czvPf /root/.config/up/bitwarden_`date +%Y%m%d%H%M%S`.tar.gz /root/.config/bitwarden
/usr/bin/rclone copy /root/.config/up a:data/bitwarden
/usr/bin/find /root/.config/up -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
echo "BACKUP DATE:" $(date +"%Y-%m-%d %H:%M:%S") >> /var/log/backup.log
9.使用 Crontab 每天定时运行备份脚本,假定于每天凌晨 1:00 备份:
crontab -e
填入
0 1 * * * sh /root/.config/sh/backup.sh
这样,就可以打开 https://example.com 使用你自己部署的 Bitwarden 了,它会在每天凌晨 1:00 备份到远端服务器上。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。