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:
45
llmdoc/architecture/installation-architecture.md
Normal file
45
llmdoc/architecture/installation-architecture.md
Normal 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 权限,预防权限问题
|
||||
- **灵活性**:支持自定义安装目录、服务名称和执行计划
|
||||
Reference in New Issue
Block a user