feat: 实现 Docker 备份系统,支持远程一键安装

实现功能:
- 文件夹和 MySQL 容器数据库备份
- tar.gz 压缩和自动清理旧备份
- systemd 定时任务集成
- 远程一键安装脚本(通过 Gitea 仓库)
- 完整的 llmdoc 文档系统

安装方式:
bash <(curl -sL https://gitea.bcde.io/wangdefa/docker-backup/raw/branch/main/install.sh)

配置文件位置:/etc/docker-backup/config.yml
命令:docker-backup, docker-backup-cleanup
This commit is contained in:
Wang Defa
2025-12-25 15:02:07 +08:00
commit 4d00283654
19 changed files with 2553 additions and 0 deletions

76
config/backup.yml.example Normal file
View File

@@ -0,0 +1,76 @@
# Docker Backup 配置文件示例
# 使用前请复制此文件为 backup.yml 并根据实际情况修改配置
# 备份基础配置
backup:
# 备份文件存放目录(绝对路径)
output_dir: "/var/backups/docker-backup"
# 备份文件名前缀
prefix: "backup"
# 旧备份清理策略
retention:
# 是否启用自动清理
enabled: true
# 保留最近 N 天的备份
keep_days: 7
# 或者保留最近 N 个备份文件(如果设置了 keep_days此项将被忽略
# keep_count: 10
# 文件夹备份配置
folders:
# 是否启用文件夹备份
enabled: true
# 需要备份的文件夹列表(支持多个)
sources:
- "/var/lib/docker/volumes"
- "/opt/app/data"
# 需要排除的文件夹/文件模式(相对于 sources 的路径)
excludes:
- "*/logs"
- "*/temp"
- "*/cache"
- "*/.git"
- "*/node_modules"
# MySQL 数据库备份配置
mysql:
# 是否启用 MySQL 备份
enabled: true
# MySQL 容器名称
container_name: "mysql"
# 数据库连接配置
username: "root"
password: "your_password_here"
# 要备份的数据库列表(留空表示备份所有数据库)
databases:
- "database1"
- "database2"
# 或者设置为 "all" 备份所有数据库
# databases: "all"
# 日志配置
logging:
# 是否启用日志
enabled: true
# 日志文件路径
log_file: "/var/log/docker-backup.log"
# 日志级别DEBUG, INFO, WARN, ERROR
level: "INFO"
# 通知配置(可选)
notification:
# 是否启用通知
enabled: false
# 通知方式email, webhook
method: "webhook"
# Webhook URL用于发送备份状态
webhook_url: "https://example.com/webhook"
# 仅在备份失败时通知
on_failure_only: true