一、安装

docker部署

docker run -d --name vaultwarden -v /vw-data/:/data/ --restart unless-stopped -p 6666:80 vaultwarden:1.30.5

通过以上命令可以启动一个biwarden的容器,随后在nginx中配置证书

配置nginx

map $http_upgrade $conn_upgrade {
      default upgrade;
      '' close;
}
server {

    listen 443 ssl;
    server_name your domain;

    ssl_certificate xxx.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key xxx.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    client_max_body_size 128M;

    location / {
        proxy_pass http://127.0.0.1:6666;
        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;
    }

}

二、自动备份

我的想法是自动备份到阿里云OSS,自己的服务器可能丢失数据,放在OSS上基本上不会丢数据。

安装ossutil

参考链接:https://help.aliyun.com/zh/oss/developer-reference/install-ossutil?spm=a2c4g.11186623.0.0.642e3dc82vOG2E

自动化备份脚本

#OSS 配置

#这里替换为你前面启动docker容器时挂载的目录
DATA_DIR="/vw-data"
BACKUP_DIR="/backup/vaultwarden"
# 这里替换为你自己的OSS的bucket名称
BUCKET_NAME="your bucket name"
OSS_PATH="oss://$BUCKET_NAME/vaultwarden-backups"
DATE=$(date +"%Y%m%d%H%M")
MONTH=$(date +"%Y%m")

# 创建备份目录(如果不存在)
MONTH_BACKUP_DIR="$BACKUP_DIR/$MONTH"
mkdir -p "$MONTH_BACKUP_DIR"

# 创建备份文件
BACKUP_FILE="$MONTH_BACKUP_DIR/vaultwarden-backup-$DATE.tar.gz"
tar -czvf "$BACKUP_FILE" -C "$DATA_DIR" .

# 上传到阿里云 OSS 的指定月目录
OSS_MONTH_PATH="$OSS_PATH/$MONTH"
ossutil cp "$BACKUP_FILE" "$OSS_MONTH_PATH/"

# 检查上传是否成功
if [ $? -eq 0 ]; then
    echo "Backup and upload successful: $BACKUP_FILE"
    # 这里你可以将备份结果通知到你的设备,比如通过Bark给你的IOS设备发送通知等
else
    echo "Backup failed to upload."
fi


echo "Backup and cleanup completed at $(date)"

设置备份任务

  • 编辑 crontab: 在终端中运行以下命令来编辑 crontab

    crontab -e

  • 添加定时任务: 在 crontab 文件中添加以下一行,表示每周六中午 12 点执行脚本:

    0 12 * * 6 /path/to/your/backup-script.sh >> /var/log/vaultwarden-backup.log 2>&1

结语

通过以上步骤,就完成了bitwarden的部署,妈妈再也不用担心我忘记密码了,另外密码的数据也有备份,保障了数据的安全。