
!Shell
本项目旨在为Bitwarden密码库创建备份流程至自托管的Vaultwarden实例,确保在官方Bitwarden服务不可用时仍有可用备份。
此Docker镜像自动化Bitwarden密码库的备份和恢复过程,提供导出、加密及备份版本管理功能。此外,脚本会安全删除过期文件,同时保留指定数量的最近备份。
✅ 此脚本同时支持Bitwarden和Vaultwarden
源密码库备份
目标密码库清理
目标密码库恢复
脚本使用以下环境变量进行备份和恢复配置:
脚本配置
CRON_SCHEDULE:备份CRON计划(默认:0 0 * * * = 每天00:00执行)认证信息
SOURCE_ACCOUNT:源密码库的***。
SOURCE_PASSWORD:源密码库的密码。
SOURCE_CLIENT_ID:源密码库的客户端ID。
SOURCE_CLIENT_SECRET:源密码库的客户端密钥。
DEST_ACCOUNT:目标密码库的***。
DEST_PASSWORD:目标密码库的密码。
DEST_CLIENT_ID:目标密码库的客户端ID。
DEST_CLIENT_SECRET:目标密码库的客户端密钥。
有关获取客户端ID和客户端密钥的方法,请参见先决条件。
服务器配置
SOURCE_SERVER:源密码库的Bitwarden/Vaultwarden服务器URL。DEST_SERVER:目标密码库的Bitwarden/Vaultwarden服务器URL。注意:源和目标可同时使用Bitwarden和Vaultwarden。如果自托管Vaultwarden使用自签名证书,请参见下方自签名证书部分。
安全参数
ENCRYPTION_PASSWORD:用于加密和解密备份文件的密码。文件管理
PUID:设置文件权限的用户ID。PGID:设置文件权限的组ID。ENABLE_PRUNING:设为false时禁用备份清理(默认:true)。RETENTION_DAYS:过期文件删除天数阈值,超过此天数的备份将被删除。MIN_FILES:保留的最小备份文件数,若所有备份均超过RETENTION_DAYS,将保留此数量的最新备份。backups/source:源密码库备份存放目录。backups/dest:目标密码库备份存放目录。账户设置 -> 安全 -> 密钥。yamlservices: bitwarden-portal: image: reaper0x1/bitwarden-portal:latest container_name: bitwarden-portal env_file: .env volumes: - your-backups-folder:/app/backups restart: unless-stopped
your-backups-folder替换为实际备份目录。.env文件并设置变量(可参考.env.example)。yamlservices: bitwarden-portal: image: reaper0x1/bitwarden-portal:latest container_name: bitwarden-portal environment: # CRON计划任务 - CRON_SCHEDULE="0 0 * * *" # 时区 - TZ="Europe/Berlin" # 备份文件加密密码 - ENCRYPTION_PASSWORD="strong-password" # 源Bitwarden/Vaultwarden登录信息 - SOURCE_ACCOUNT="source@mail.com" - SOURCE_PASSWORD="source-password" # 客户端ID和密钥(在账户设置->安全->密钥中获取) - SOURCE_CLIENT_ID="user.xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" - SOURCE_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 源服务器域名/IP - SOURCE_SERVER="https://vault.bitwarden.com" # 目标Bitwarden/Vaultwarden登录信息 - DEST_ACCOUNT="dest@mail.com" - DEST_PASSWORD="dest-password" # 客户端ID和密钥(在账户设置->安全->密钥中获取) - DEST_CLIENT_ID="user.xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" - DEST_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 目标服务器域名/IP(使用自签名证书时可为https://vaultwarden.myserver.local) - DEST_SERVER="http://192.168.1.10:8888" # 文件权限用户及组ID - PUID="1000" - PGID="1000" # 启用/禁用备份清理(false/true) - ENABLE_PRUNING="true" # 备份保留天数(超过此天数的备份将被删除) - RETENTION_DAYS=30 # 最小保留备份文件数(当所有备份均超过保留天数时) - MIN_FILES=10 volumes: - your-backups-folder:/app/backups restart: unless-stopped
your-backups-folder替换为实际备份目录。bashgit clone https://github.com/Reaper0x1/bitwarden-portal.git && cd bitwarden-portal
.env文件并设置变量(可参考.env.example)。bashdocker compose up -d
[开发中]
如果使用带自签名证书的本地域名进行SSL加密,需将证书放入Certs文件夹。
.crt文件放入certs文件夹即可。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务