前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转Lighthouse】部署Bitwarden密码管理及备份教程

【玩转Lighthouse】部署Bitwarden密码管理及备份教程

原创
作者头像
creeper
发布2022-04-12 14:10:52
1.1K0
发布2022-04-12 14:10:52
举报
文章被收录于专栏:自己动手丰衣足食

提醒:

1.本文假定给予 Ubuntu/Debian下进行,使用 CentOS 请自行替换为相应命令

2.假定已有一个域名 example.com 指向服务器

教程:

1.安装 Docker

代码语言:javascript
复制
curl -sSL https://get.daocloud.io/docker | sh

2.安装 Docker compose

代码语言:javascript
复制
docker run --rm -v /usr/local/bin:/dist gists/docker-compose-bin:latest && docker rmi gists/docker-compose-bin:latest

3.创建配置目录并进入该目录

代码语言:javascript
复制
mkdir /root/.config/bitwarden
cd /root/.config/bitwarden

4.创建下面的 docker-compose.yml 文件,并把 DOMAIN 和 EMAIL 变量替换为适当的值

代码语言:javascript
复制
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 文件,并填入以下内容:

代码语言:javascript
复制
{$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.运行以下命令创建并启动容器:

代码语言:javascript
复制
docker-compose up -d

7.安装 Rclone 并依据提示完成配置:

代码语言:javascript
复制
curl https://rclone.org/install.sh | bash

8.创建一个备份脚本:

代码语言:javascript
复制
nano /root/.config/sh/backup.sh

填入以下内容(这里假定 Rclone 远端服务器备份目录为 a:data/bitwarden):

代码语言:javascript
复制
#!/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 备份:

代码语言:javascript
复制
crontab -e

填入

代码语言:javascript
复制
0 1 * * * sh /root/.config/sh/backup.sh

这样,就可以打开 https://example.com 使用你自己部署的 Bitwarden 了,它会在每天凌晨 1:00 备份到远端服务器上。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档