安装docker
安装docker-compose
$ curl -L "<https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose#
# 启动docker并设置为开机启动:$ systemctl start docker$ systemctl enable docker
部署 bitwarden_rs
$ cd ~ && mkdir bitwarden && cd bitwarden$ cat > ~/bitwarden/docker-compose.yml<<EOF
version: "3"
services:
bitwarden:
image: vaultwarden/server
container_name: vaultwarden
restart: always
ports:
- "127.0.0.1:8087:80" #将宿主机8087端口映射到docker的80端口
- "127.0.0.1:3012:3012"
volumes:
- ./bw-data:/data
environment:
WEBSOCKET_ENABLED: "true" #是否开启WebSocket
SIGNUPS_ALLOWED: "true" #是否开启注册,自用的话自己搭建好注册后改成false
WEB_VAULT_ENABLED: "true" #是否开启Web客户端
# ADMIN_TOKEN: " #后台登陆密码,建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全,当前是没启用,如需启用去掉ADMIN_TOKEN前面的 # ,并生成安全密码
EOF
# 启动 bitwarden
$ cd ~/bitwarden$ docker-compose up -d // 如果报错,参考下面添加用户组
$ docker-compose down #关闭服务
$ docker-compose restart #重启服务
添加用户组
如果报错:
ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?
If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
正确的是将当前用户加入docker组
$ sudo gpasswd -a ${USER} docker# 然后退出当前用户比如切换为root,再次切换为当前用户。然后执行 `docker-compose up -d` 就ok了。
设置 nginx
建议使用candy,也可以使用nginx反代
bitwarden_rs升级
bitwarden_rs 更新很频繁,建议隔段时间升级一下:
$ cd ~/bitwarden$ docker-compose down
$ docker pull vaultwarden/server:latest
$ docker-compose up -d
备份到 Google Drive
安装 rclone
$ curl <https://rclone.org/install.sh> | sudo bash
设置 rclone config, 参考文档 rclone.org/drive
$ rclone config # 将本地目录复制到云端
$ rclone copy /xxx/bw-data remote:xxx
设置定时任务
$ crontab -e # 这一步是编辑 cron job 的命令
添加定时任务
# 每天凌晨两点备份一次
0 2 * * * rclone copy ~/bitwarden/bw-data remote:bitwarden/bw-data
恢复备份
# 将云端恢复到本地目录
$ rclone copy remote:xxx /xxx/bw-data# 重启生效
$ docker-compose restart