安装bitwarden
环境
- Docker
- Docker Compose
- Nginx
获取镜像
如果将服务器部署在大陆,因为无法连接docker服务器,所以在海外服务器下载镜像
# 1、在海外服务器下载镜像
docker pull vaultwarden/server:latest
# 2、将镜像打包传到大陆服务器
docker save -o vaultwarden.tar vaultwarden/server
scp vaultwarden.tar root@x.x.x.x:/usr/local/src/
# 3、在大陆服务器导入镜像
docker load -i vaultwarden.tar
# 4、以服务器执行写入docker-compose.yml
mkdir -p /root/data/docker_data/vaultwarden
cd /root/data/docker_data/vaultwarden
配置容器
vim docker-compose.yml
version: '3'
services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- ./data/:/data/
ports:
- 8081:80
environment:
- DOMAIN=https://vaultwarden.ald-bank.com # 这是您希望与您的Vaultwarden实例关联的域名。
- LOGIN_RATELIMIT_MAX_BURST=10 # 允许在一阵登录/两步验证尝试中的最大请求次数。
- LOGIN_RATELIMIT_SECONDS=60 # 这是来自同一IP的登录请求之间的平均秒数,在Vaultwarden限制登录次数之前。
- ADMIN_RATELIMIT_MAX_BURST=10 # 这与LOGIN_RATELIMIT_MAX_BURST相同,只争对admin面板。
- ADMIN_RATELIMIT_SECONDS=60 # 这与LOGIN_RATELIMIT_SECONDS相同
- ADMIN_SESSION_LIFETIME=20 # 会话持续时间
- ADMIN_TOKEN=xxxxxxxxxxx # 此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全
- SENDS_ALLOWED=true # 此设置决定是否允许用户创建Bitwarden发送 - 一种凭证共享形式。
- EMERGENCY_ACCESS_ALLOWED=true # 此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。
- WEB_VAULT_ENABLED=true # 此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。
- SIGNUPS_ALLOWED=true # 此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。
# DOMAIN改成最后你要用的域名形式
# ADMIN_TOKEN可以在ssh里面输入openssl rand -base64 48生成
# SIGNUPS_ALLOWED等你注册好之后,如果你只是想自己用,可以把这边改成false
运行容器
docker-compose up -d
访问
理论上我们就可以输入 http://ip:8081 访问了
虽然可以访问,但是这个系统需要用到https,所以我们需要配置域名解析,再用nginx的反向代理将域名转发到这个服务
# HTTP 服务器配置
server {
listen 80;
server_name vaultwarden.ald-bank.com;
# 重定向所有 HTTP 请求到 HTTPS
return 301 https://$host$request_uri;
}
# HTTPS 服务器配置
server {
listen 443 ssl;
server_name vaultwarden.xxxx.com;
ssl_certificate xxxx.pem;
ssl_certificate_key xxxx.key;
ssl_protocols TLSv1.2;
ssl_ciphers 'HIGH:!aNULL:!MD5'; # 设置加密套件
ssl_prefer_server_ciphers on;
gzip on;
gzip_http_version 1.1;
gzip_min_length 1k;
gzip_disable "MSIE [1-6].";
gzip_types text/css text/javascript application/javascript image/jpeg image/gif;
gzip_vary on;
location / {
proxy_pass http://127.0.0.1:8081/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
}
}
更新 & 卸载
更新
cd /root/data/docker_data/vaultwarden
docker-compose pull
docker-compose up -d
# prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
docker image prune
卸载
cd /root/data/docker_data/vaultwarden
docker-compose down
cd ..
# 完全删除
rm -rf /root/data/docker_data/vaultwarden
管理后台
登陆后台
在 URL 后添加 /admin,例如 http://<您的服务器地址>:<端口>/admin
登陆页面需要输入密码,该密码为docker-compose.yml
里配置的ADMIN_TOKEN
管理员功能
1. 用户管理
- 添加/删除用户: 可以手动添加新用户或删除现有用户。
- 重置用户密码: 为用户重置密码,帮助他们恢复访问。
- 查看用户列表: 查看所有注册用户的信息。
2. 组织管理
- 创建和管理组织: 可以为团队或组织创建专用的存储库和管理权限。
- 分配用户角色: 设置用户在组织中的角色(如管理员、成员等)。
3. 设置和配置
- 管理设置: 修改 Vaultwarden 的全局设置,如安全策略、邮箱配置等。
- 启用/禁用功能: 根据需求启用或禁用特定功能,例如二步验证、密码强度要求等。
4. 监控和审计
- 查看日志: 审计活动的日志,监控用户的登录和其他活动。
- 查看安全事件: 检查与安全相关的事件,如未授权的访问尝试。
5. 数据导入和导出
- 导入数据: 从其他密码管理器导入密码数据。
- 导出数据: 将存储的数据导出为文件,以便备份或迁移。
6. 系统维护
- 备份和恢复: 管理数据库备份和恢复操作,以保护用户数据。
- 更新和升级: 进行系统更新,确保使用最新的 Vaultwarden 版本。
备份 & 恢复
查找数据保存位置
该教程的数据保存在/root/data/docker_data/vaultwarden/data
如果想要确认,可按以下方法查找:
docker inspect <容器id>
# 找到"Mounts"项的"Source"即为数据保存路径
备份脚本
mkdir -p /data/shell/ && cd /data/shell/ && vim backup_vaultwarden.sh
编写备份脚本
#!/bin/bash
# 定义变量
SOURCE_DIR="/root/data/docker_data/vaultwarden/data"
BACKUP_DIR="/root/data/backups/vaultwarden"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="vaultwarden_backup_$TIMESTAMP.sqlite3"
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 复制数据库文件到备份目录
cp "$SOURCE_DIR/db.sqlite3" "$BACKUP_DIR/$BACKUP_FILE"
# 可选:删除超过7天的备份
find "$BACKUP_DIR" -type f -name "vaultwarden_backup_*.sqlite3" -mtime +7 -exec rm {} \;
echo "Backup completed: $BACKUP_FILE"
设置定时任务备份
0 2 * * * /data/shell/backup_vaultwarden.sh >> /var/log/vaultwarden_backup.log 2>&1
恢复数据
停止容器
将备份数据拷贝覆盖
启动容器
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)