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

View File

@@ -0,0 +1,45 @@
# Docker Backup 安装架构
## 1. 身份与目的
- **目标**:自动化 Docker 容器和卷的备份部署
- **关键功能**:依赖检测、文件部署、服务配置、定时任务管理
## 2. 核心组件
- `install.sh`(主安装脚本):整个安装流程的协调者,支持远程下载和部署
- 动态生成的 systemd 服务文件(不再使用模板)
## 3. 执行流程图LLM检索映射
### 3.1 环境准备阶段
- **权限验证**`check_root()`,确保以 root 权限运行
- **操作系统检测**`detect_os()`,确定系统类型和版本
### 3.2 依赖安装阶段
- **工具检测**`install_yq()`,安装 YAML 解析工具
- **依赖检查**`install_dependencies()`
- 检测并安装tar, gzip, docker, find
- 根据操作系统使用不同的包管理器 (apt/yum/dnf)
### 3.3 文件部署阶段
- **远程下载**`deploy_files()`
- 从 Gitea 仓库下载 `backup.sh``cleanup.sh`
- 安装到 `/usr/local/bin/docker-backup``/usr/local/bin/docker-backup-cleanup`
- 设置可执行权限
- 下载配置文件模板到 `/etc/docker-backup/config.yml`
### 3.4 服务配置阶段
- **Systemd 服务生成**`setup_systemd()`
- 动态生成 `.service` 文件到 `/etc/systemd/system/`
- 动态生成 `.timer` 文件,定义执行计划
- **服务启用**`enable_service()`
- 重新加载 systemd 守护进程
- 启用并启动 systemd timer
## 4. 设计原则
- **模块化**:每个函数职责单一,便于维护
- **跨平台兼容**:支持主流 Linux 发行版
- **安全性**:要求 root 权限,预防权限问题
- **灵活性**:支持自定义安装目录、服务名称和执行计划