轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
bruceforce/vaultwarden-backup
官方博客使用教程热门镜像镜像助手
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

vaultwarden-backup Docker 镜像下载 - 轩辕镜像

vaultwarden-backup 镜像详细信息和使用指南

vaultwarden-backup 镜像标签列表和版本信息

vaultwarden-backup 镜像拉取命令和加速下载

vaultwarden-backup 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

vaultwarden-backup
bruceforce/vaultwarden-backup

vaultwarden-backup 镜像详细信息

vaultwarden-backup 镜像标签列表

vaultwarden-backup 镜像使用说明

vaultwarden-backup 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

一个基于cron的简单备份镜像,为Vaultwarden提供自动和手动备份功能,支持文件加密、旧备份清理、自定义备份内容等特性,适用于无法直接添加cron任务的系统。
28 收藏0 次下载activebruceforce镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

vaultwarden-backup 镜像详细说明

vaultwarden-backup 使用指南

vaultwarden-backup 配置说明

vaultwarden-backup 官方文档

Vaultwarden Backup

一个基于cron的简单备份镜像,用于vaultwarden。

⚠️ 由于Bitwarden_RS已重命名为Vaultwarden,本项目也更名为vaultwarden-backup。为方便起见,我会继续将镜像推送到旧的Docker仓库,但建议您抽空切换到新仓库 <[***]>,只需将 bruceforce/bw_backup 镜像替换为 bruceforce/vaultwarden-backup 即可。

为什么使用vaultwarden-backup?

您可能会问:“既然可以将Vaultwarden文件包含在常规备份中,为什么还要用容器来备份?” 使用常规备份软件备份数据库时,一个注意事项是:应在备份前停止数据库服务器,否则可能导致数据丢失。因此,需要使用正确的数据库备份命令。

当然,您也可以在主机上创建cron任务,例如 sqlite3 "$VW_DATABASE_URL" ".backup '$BACKUP_FILE_DB'",并使用首选备份解决方案备份其他文件和文件夹(如附件文件夹)。

但在某些系统上,您无法自行添加cron任务(例如常见的NAS厂商不允许),这就是本镜像存在的原因。此外,它还会包含最重要的文件并将其打包为 tar.xz 归档文件,方便您的常规备份软件处理。

备份中包含哪些文件?

默认情况下,备份包含Vaultwardenwiki <[]> 推荐的所有文件。您可以通过环境变量修改此行为。

使用方法

从v0.0.7版本开始,您可以始终使用 latest 标签,因为镜像支持多架构。当然,您也可以使用版本标签 vx.y.z 以固定到特定版本。但请注意,固定版本后,alpine基础镜像将不会收到安全更新。

确保您的vaultwarden容器名称为 vaultwarden,否则需要在 docker run 命令的 --volumes-from 部分替换容器名称。

自动备份

容器内运行cron守护进程,容器将在后台持续运行。

最简单的使用方式是调整 docker-compose.yml 以满足您的需求。以下是使用 docker run 的示例命令:

使用默认设置启动备份容器(每天凌晨5点自动备份)

docker run -d --restart=always --name vaultwarden-backup --volumes-from=vaultwarden bruceforce/vaultwarden-backup

每小时备份示例

docker run -d --restart=always --name vaultwarden-backup --volumes-from=vaultwarden -e CRON_TIME="0 * * * *" bruceforce/vaultwarden-backup

30天后删除旧备份示例

docker run -d --restart=always --name vaultwarden-backup --volumes-from=vaultwarden -e TIMESTAMP=true -e DELETE_AFTER=30 bruceforce/vaultwarden-backup

手动备份

您可以使用主机的crontab调度备份,容器仅在备份过程中运行。

docker run --rm --volumes-from=vaultwarden bruceforce/vaultwarden-backup manual

如果希望备份文件存储在容器外部,需要挂载目录,添加 -v <主机路径>:<容器内路径>。完整命令示例:

docker run --rm --volumes-from=vaultwarden -e UID=0 -e BACKUP_DIR=/myBackup -e TIMESTAMP=true -v $(pwd)/myBackup:/myBackup bruceforce/vaultwarden-backup manual

请记住,命令在容器内执行。因此 $BACKUP_DIR 可以是容器内的任何位置。最简单的方式是设置为 /data/backup,这会在原始数据库文件旁边创建备份。

加密/解密

备份tar.xz归档文件可以选择加密。如果您在保险库中存储敏感附件(如ssh密钥)并将备份保存在不受信任的位置,这会很有用。

由于我们使用tar命令(Linux系统上最常见),而tar本身没有加密标志,因此使用gpg加密tar.xz归档文件。有两种加密方式:对称和非对称,只能选择一种。如果同时设置两种环境变量,将仅执行非对称加密。

通过密码加密(对称)

最简单的加密方式是使用密码进行对称加密。通过设置环境变量 ENCRYPTION_PASSWORD=<您的密码> 实现。

在某些情况下,将密码存储为环境变量可能不合适,此时可以使用gpg公钥加密备份。

通过gpg公钥加密(非对称)

另一种加密方式是使用gpg公钥。公钥需要提供为无换行的base64字符串。在大多数系统上,可以通过 base64 -w 0 公钥路径.asc 生成。然后设置环境变量 ENCRYPTION_BASE64_GPG_KEY 为生成的base64编码公钥。

解密

要解密文件,运行 gpg --decrypt backup.tar.xz.gpg > backup.tar.xz。此命令适用于两种加密方式。如果使用gpg公钥加密,需先将gpg密钥对导入本地密钥环;对称加密只需输入密码。

恢复

为防止意外数据丢失,没有自动恢复流程。如需恢复备份,请手动执行以下步骤(假设备份位于 ./backup/,vaultwarden数据位于 /var/lib/docker/volumes/vaultwarden/_data/):

# 删除现有sqlite3文件
rm /var/lib/docker/volumes/vaultwarden/_data/db.sqlite3*

# 提取归档文件(可能需要先安装xz)
tar -xJvf ./backup/data.tar.xz -C /var/lib/docker/volumes/vaultwarden/_data/

环境变量

默认值参见 src/opt/scripts/set-env.sh

ENV描述
APP_DIR容器内的应用目录(不应修改)
APP_DIR_PERMISSIONS容器内应用目录的权限(不应修改)
BACKUP_ADD_DATABASE 1设为 true 以在备份中包含数据库本身
BACKUP_ADD_ATTACHMENTS 1设为 true 以在备份中包含附件文件夹
BACKUP_ADD_CONFIG_JSON 1设为 true 以在备份中包含 config.json
BACKUP_ADD_ICON_CACHE 1设为 true 以在备份中包含图标缓存文件夹
BACKUP_ADD_RSA_KEY 1设为 true 以在备份中包含RSA密钥
BACKUP_ADD_SENDS 1设为 true 以在备份中包含sends文件夹
BACKUP_DIR容器内备份文件夹路径
BACKUP_DIR_PERMISSIONS备份文件夹权限(注意 2)。设为-1禁用
BACKUP_ON_STARTUP容器启动后立即创建备份
CRONFILE容器内cron文件路径
CRON_TIMEcron任务格式 "分 时 日 月 周 年"
DELETE_AFTERX天后删除旧备份。设为0禁用
ENCRYPTION_ALGORITHM 3对称加密算法(仅与ENCRYPTION_PASSWORD一起使用)
ENCRYPTION_BASE64_GPG_KEYBASE64编码的gpg公钥。设为 false 禁用
ENCRYPTION_GPG_KEYFILE_LOCATION容器内gpg公钥文件路径(不应修改)
ENCRYPTION_PASSWORD对称加密密码。设为 false 禁用
TIMESTAMP设为 true 以在备份文件名后附加时间戳
GID运行cron任务的组ID
GNUPGHOME容器内GNUPG主目录(不应修改)
GNUPGHOME_PERMISSIONSGNUPG主目录权限(不应修改)
HEALTHCHECK_URL设置健康检查URL,如 <[***]>
HEALTHCHECK_FILE本地健康检查(容器健康)文件路径
HEALTHCHECK_FILE_PERMISSIONS本地健康检查(容器健康)文件权限
LOG_LEVEL支持DEBUG、INFO、WARNING、ERROR、CRITICAL
LOG_DIR容器内日志文件文件夹路径
LOG_DIR_PERMISSIONS日志文件文件夹权限。设为-1禁用
TZ设置容器内时区 4
UID运行cron任务的用户ID
VW_DATA_FOLDER 5容器内vaultwarden数据文件夹位置
VW_DATABASE_URL 5容器内vaultwarden数据库文件位置
VW_ATTACHMENTS_FOLDER 5容器内vaultwarden附件文件夹位置
VW_ICON_CACHE_FOLDER 5容器内vaultwarden图标缓存文件夹位置

常见问题(FAQ)

出现“unable to open database file”错误

Error: unable to open database file 很可能是权限错误。注意,sqlite3在备份时会在源目录创建锁文件,因此源目录和目标目录都需要对用户有读写权限。可通过上述 UID 和 GID 环境变量设置用户和组ID。

数据库锁定

Error: database is locked 很可能是因为备份位置与vaultwarden数据库不在同一文件系统(如网络文件系统)。

默认情况下,Vaultwarden使用WAL(预写日志)。可通过检查数据库文件同目录是否存在 db.sqlite3-wal 文件确认。根据SQLite文档,WAL在网络共享场景下会出现问题(参见 []

所有使用数据库的进程必须在同一主机上;WAL不支持网络文件系统。

有两种解决方法:

  1. 选择本地目录作为备份目标,然后使用 cp 或 rsync 等工具将备份文件复制到网络文件系统。
  2. 禁用Vaultwarden的WAL。指南参见([***]

日期时间问题/时间戳错误

如需备份文件名的时间戳使用本地时区,应挂载 /etc/timezone:/etc/timezone:ro 和 /etc/localtime:/etc/localtime:ro,如 docker-compose.yml 所示。另一种方法是设置环境变量(如 TZ=Asia/Shanghai)(参见 <[***]>)。

注意 如使用ARM平台,本项目基于alpine构建以保持轻量。alpine 3.13及以上版本在ARM平台可能出现时间日期错误(如显示1900年)。这是alpine已知问题(参见 Github issue 和 解决方案)。alpine wiki中提供了修复方案,我已在树莓派上测试有效。如应用修复后仍有问题,可提交issue。

为什么容器以root用户启动?

构建此镜像的主要目的是让用户在无法添加cron任务的主机系统上,或需要不依赖主机OS机制的“可移植”调度任务时使用。

由于 crond 必须 以root用户运行,因此使用cron时无法以非root用户启动容器。我知道有其他任务调度器(如 supercronic)支持非root运行,但目前仍选择使用标准成熟的cron系统。

为什么使用sh而非bash?

Alpine默认未安装bash。预装的 ash shell足以满足本镜像的任务需求,且无需额外安装bash等工具,因此使用 /bin/sh。脚本也力求符合POSIX标准,以便在需要时轻松切换基础镜像。

Footnotes

  1. 详见 <[***]>。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  2. 权限至少应为700,因为备份文件夹本身会获得相同权限,600权限会导致无法访问。 ↩

  3. 参见 gpg --version 查看支持的算法。 ↩

  4. 参见 <[***]> 了解更多信息。 ↩

  5. 详见 <[***]>。 ↩ ↩2 ↩3 ↩4

查看更多 vaultwarden-backup 相关镜像 →
ttionya/vaultwarden-backup logo
ttionya/vaultwarden-backup
by ttionya
通过rclone备份vaultwarden(原bitwarden_rs)的SQLite3/PostgreSQL/MySQL/MariaDB数据库及相关文件(如配置、附件等)到远程存储,并支持Ping和邮件通知备份结果的Docker镜像。
151M+ pulls
上次更新:5 天前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.