Skip to content

Commit 7bbfd60

Browse files
committed
docs: 更新 README.md,完善功能描述和使用说明
1 parent 361f5b1 commit 7bbfd60

File tree

2 files changed

+53
-49
lines changed

2 files changed

+53
-49
lines changed

README.md

Lines changed: 53 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,86 @@
11
# Vaultwarden 备份工具
22

3-
这是一个用于自动备份 Vaultwarden 数据的工具。它能够备份数据库、配置文件、RSA 密钥、附件和发送文件等重要数据,并将其打包成加密的压缩文件。
3+
这是一个用 Go 语言编写的、用于自动备份 [Vaultwarden](https://github.com/dani-garcia/vaultwarden) 数据的工具。它被设计为在 Docker 容器中运行,能够备份数据库、配置文件、RSA 密钥、附件和发送文件等重要数据,并将其打包成加密的压缩文件。
44

55
## 功能特点
66

7-
- 自动备份 Vaultwarden 的所有重要数据:
8-
- SQLite 数据库
9-
- 配置文件(config.json 和 .env)
10-
- RSA 密钥
11-
- 附件文件
12-
- 发送文件
13-
- 使用 AES-256-CBC 加密备份文件
14-
- 自动生成随机密码
15-
- 支持 Docker 部署
16-
- 支持定时备份(默认每 6 小时执行一次)
7+
- **全量备份**: 自动备份 Vaultwarden 的所有重要数据:
8+
- SQLite 数据库 (`db.sqlite3`)
9+
- 配置文件 (`config.json``.env`)
10+
- RSA 密钥 (`rsa_key.pem`, `rsa_key.pub.pem`)
11+
- 附件目录 (`attachments`)
12+
- 发送文件目录 (`sends`)
13+
- **安全加密**: 使用 **AES-256-GCM** 算法加密备份文件,这是一种经过身份验证的加密模式,可提供强大的安全保障。
14+
- **容器化部署**: 通过 Docker 镜像提供,易于部署和管理。
15+
- **定时任务**: 内置 `cron` 定时任务,默认为每 6 小时执行一次备份。
16+
- **自动清理**: 支持设置备份保留天数,自动清理过期的备份文件。
17+
- **并发执行**: 支持并发执行备份任务,提升备份效率。
1718

1819
## 使用方法
1920

2021
### Docker 部署
2122

22-
1. 拉取镜像:
23+
1. **拉取镜像**:
24+
从 Github Packages 拉取最新的 Docker 镜像。
2325

24-
```bash
25-
docker pull ghcr.io/xg4/vaultwarden-backup
26-
```
26+
```bash
27+
docker pull ghcr.io/xg4/vaultwarden-backup:latest
28+
```
2729

28-
2. 运行容器:
30+
2. **运行容器**:
31+
创建并运行 `vaultwarden-backup` 容器。请确保将 `/path/to/vaultwarden/data` 替换为你实际的 Vaultwarden 数据目录路径,并将 `/path/to/backups` 替换为你希望存放备份文件的目录。
2932

30-
```bash
31-
docker run -d \
32-
--name vaultwarden-backup \
33-
-v /path/to/vaultwarden/data:/data \
34-
-v /path/to/backup:/backups \
35-
-e ZIP_PASSWORD=your-password \
36-
-e RETENTION_DAYS=1 \
37-
--restart unless-stopped \
38-
ghcr.io/xg4/vaultwarden-backup
39-
```
33+
```bash
34+
docker run -d \
35+
--name vaultwarden-backup \
36+
-v /path/to/vaultwarden/data:/data \
37+
-v /path/to/backups:/backups \
38+
-e ZIP_PASSWORD="your-strong-password" \
39+
-e RETENTION_DAYS=30 \
40+
--restart unless-stopped \
41+
ghcr.io/xg4/vaultwarden-backup:latest
42+
```
4043

4144
### 环境变量
4245

43-
- `DATA_DIR`: Vaultwarden 数据目录路径(默认:`/data`
44-
- `BACKUP_DIR`: 备份文件存储路径(默认:`/backups/backup`
45-
- `ZIP_PASSWORD`: 备份文件加密密码(**必需**)。脚本在执行前会检查此环境变量是否设置,如果未设置则会报错并退出。
46-
- `RETENTION_DAYS`: 备份文件保留天数(默认:`30`)。脚本会清理超过此天数的旧备份文件。设置为 `0` 则不清理。
46+
通过配置环境变量来自定义备份行为:
4747

48-
### 手动执行备份
48+
- `DATA_DIR`: Vaultwarden 数据目录在容器内的路径 (默认: `/data`)
49+
- `BACKUP_DIR`: 备份文件的存储路径 (默认: `/backups`)
50+
- `ZIP_PASSWORD`: **(必需)** 用于加密备份文件的密码。**请务必设置一个强密码**。如果未设置,程序将报错并退出。
51+
- `RETENTION_DAYS`: 备份文件保留天数 (默认: `30`)。脚本会清理超过此天数的旧备份文件。设置为 `0` 则禁用自动清理。
52+
- `MAX_CONCURRENCY`: 执行备份任务时的最大并发数 (默认: `4`)
4953

50-
```bash
51-
./backup.sh
52-
```
54+
## 手动执行
55+
56+
除了自动定时备份,你也可以手动在容器内执行备份或恢复命令。
5357

54-
## 备份文件说明
58+
### 手动备份
5559

56-
备份文件将以 `backup_YYYYMMDD_HHMMSS.tar.gz` 的格式命名,并使用您在 `ZIP_PASSWORD` 环境变量中设置的密码通过 AES-256-CBC 加密。
60+
```bash
61+
docker exec vaultwarden-backup vault-backup
62+
```
5763

58-
### 还原备份
64+
### 手动恢复
5965

60-
您可以使用以下命令来还原备份文件:
66+
项目提供了 `restore` 命令用于解密并解压备份文件。
6167

6268
```bash
63-
openssl enc -d -aes-256-cbc -salt -pbkdf2 -pass pass:your-password -in backup_YYYYMMDD_HHMMSS.tar.gz | tar xz -C .
69+
# 示例:将备份文件恢复到 /tmp/restore_test 目录
70+
docker exec vaultwarden-backup restore \
71+
/backups/backup_20250627_120000.tar.gz \
72+
/tmp/restore_test \
73+
your-strong-password
6474
```
6575

66-
**注意:**
76+
## 备份文件
6777

68-
-`backup_YYYYMMDD_HHMMSS.tar.gz` 替换为您的实际备份文件名。
69-
-`your-password` 替换为您的备份加密密码。
70-
- `-C .` 表示将文件解压到当前目录,您可以根据需要修改目标目录。
78+
- 备份文件以 `backup_YYYYMMDD_HHMMSS.tar.gz` 的格式命名。
79+
- 文件使用 `ZIP_PASSWORD` 环境变量中设置的密码通过 **AES-256-GCM** 加密。
7180

7281
## 依赖
7382

74-
- sqlite3
75-
- tar
76-
- openssl
77-
- bash
83+
本工具在 Docker 容器中运行,运行时仅依赖于 `sqlite`,无需其他外部工具。
7884

7985
## 许可证
8086

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ module github.com/xg4/vaultwarden-backup
22

33
go 1.23.0
44

5-
toolchain go1.23.10
6-
75
require golang.org/x/crypto v0.39.0
86

97
require golang.org/x/sys v0.33.0

0 commit comments

Comments
 (0)