@@ -51,6 +51,19 @@ docker-backup-menu
5151- ** 增量支持** :智能识别和备份变更的数据
5252- ** 交互式菜单** :图形化操作界面,新手友好
5353- ** Docker Compose支持** :自动检测并备份docker-compose项目
54+ - ** HTTP回调API** :提供RESTful API接口,支持外部系统触发备份
55+
56+ ### 高级特性
57+ - ** 灵活配置** :支持配置文件和命令行参数
58+ - ** 批量操作** :支持备份所有容器或指定容器列表
59+ - ** 容器过滤** :支持按名称、标签等条件过滤容器
60+ - ** 并发备份** :支持多容器并发备份提高效率
61+ - ** 安全加密** :支持GPG加密备份文件
62+ - ** 远程存储** :支持备份到远程服务器
63+ - ** 通知机制** :支持邮件、Webhook、Slack通知
64+ - ** 定时备份** :支持cron定时任务自动备份
65+ - ** 智能清理** :自动清理过期备份文件
66+ - ** API安全** :HMAC-SHA256签名验证,确保API调用安全
5467
5568### 高级特性
5669- ** 灵活配置** :支持配置文件和命令行参数
@@ -258,6 +271,69 @@ docker-cleanup 30
258271docker-cleanup --preview 30
259272```
260273
274+ ### 🌐 HTTP回调API
275+
276+ Docker备份工具提供了基于Go的HTTP回调API服务,支持外部系统通过RESTful接口触发备份操作。
277+
278+ #### 启动回调服务
279+ ``` bash
280+ # 进入Go应用目录
281+ cd go/callback
282+
283+ # 编译应用
284+ go build -o myapp .
285+
286+ # 启动服务
287+ ./myapp
288+ ```
289+
290+ #### 配置回调服务
291+ 在 ` backup.conf ` 中添加以下配置:
292+ ``` bash
293+ # 回调服务配置
294+ port=8080
295+ callback_secret=your-secret-key
296+ scriptpath=./docker-backup.sh
297+ ```
298+
299+ #### API接口说明
300+
301+ ** 端点** : ` POST /backup `
302+
303+ ** 请求头** :
304+ - ` Content-Type: application/json `
305+ - ` X-Signature: sha256=<hmac-signature> `
306+
307+ ** 请求体** :
308+ ``` json
309+ {
310+ "args" : [" container-name1" , " container-name2" ]
311+ }
312+ ```
313+
314+ ** 示例调用** :
315+ ``` bash
316+ # 使用提供的客户端示例
317+ go run client_example.go nginx mysql
318+
319+ # 或使用curl
320+ curl -X POST http://localhost:8080/backup \
321+ -H " Content-Type: application/json" \
322+ -H " X-Signature: sha256=<calculated-signature>" \
323+ -d ' {"args":["nginx"]}'
324+ ```
325+
326+ #### 安全特性
327+ - ** HMAC-SHA256签名验证** :确保请求来源可信
328+ - ** 配置文件密钥管理** :密钥存储在配置文件中
329+ - ** 参数验证** :验证请求参数的有效性
330+
331+ #### 使用场景
332+ - ** CI/CD集成** :部署完成后自动触发备份
333+ - ** 监控系统** :检测到重要变更时触发备份
334+ - ** 外部调度器** :定时调用API进行备份
335+ - ** 多系统集成** :允许其他系统通过API触发备份
336+
261337### 📋 手动模式(脚本直接使用)
262338
263339如果你是手动安装或开发模式:
@@ -868,9 +944,87 @@ docker-cleanup 30 # 清理30天前的备份
868944
869945** GitHub Pull Requests** : https://github.com/shuguangnet/dcoker_backup_script/pulls
870946
947+ ## 📁 项目结构
948+
949+ ```
950+ docker-backup/
951+ ├── docker-backup.sh # 主备份脚本
952+ ├── docker-restore.sh # 恢复脚本
953+ ├── docker-backup-menu.sh # 交互式菜单
954+ ├── docker-cleanup.sh # 清理工具
955+ ├── backup-utils.sh # 工具函数库
956+ ├── backup.conf # 配置文件
957+ ├── install.sh # 一键安装脚本
958+ ├── README.md # 项目文档
959+ ├── go/ # Go语言应用目录
960+ │ └── callback/ # HTTP回调API服务
961+ │ ├── main.go # 主程序入口
962+ │ ├── client_example.go # 客户端示例
963+ │ ├── WORKFLOW_zh-CN.md # 工作流文档
964+ │ └── internal/ # 内部模块
965+ │ ├── config/ # 配置管理
966+ │ ├── handler/ # HTTP处理器
967+ │ ├── logger/ # 日志记录
968+ │ └── signature/ # 签名验证
969+ └── test-compose-detection*.sh # 测试脚本
970+ ```
971+
972+ ### 核心组件说明
973+
974+ - ** docker-backup.sh** : 主要的Docker容器备份脚本
975+ - ** docker-restore.sh** : 容器恢复脚本
976+ - ** docker-backup-menu.sh** : 交互式操作菜单
977+ - ** docker-cleanup.sh** : 备份文件清理工具
978+ - ** go/callback/** : 基于Go的HTTP回调API服务,支持外部系统触发备份
979+
871980## 📝 版本历史
872981
873982### v1.0.0
983+
984+ 🎉 ** 主要特性** :
985+ ✅ 完整的Docker容器备份和恢复功能
986+ ✅ 智能Docker Compose检测和备份
987+ ✅ 交互式菜单操作界面
988+ ✅ 定时备份和rsync同步支持
989+ ✅ 排除镜像备份选项
990+ ✅ 自动生成恢复脚本
991+ ✅ ** HTTP回调API服务** - 支持外部系统通过RESTful接口触发备份
992+
993+ 🔧 ** 技术改进** :
994+ • 增强的Docker Compose检测算法(6种检测方法)
995+ • 智能compose文件查找和备份
996+ • 改进的错误处理和日志记录
997+ • 兼容性优化(支持macOS和Linux)
998+ • 模块化代码结构
999+ • ** 基于Go的HTTP回调服务** - 提供安全的API接口
1000+
1001+ 📦 ** 备份内容** :
1002+ • 容器配置信息
1003+ • 挂载点数据
1004+ • 数据卷
1005+ • 容器日志
1006+ • Docker Compose文件
1007+ • 环境配置文件
1008+
1009+ 🚀 ** 新增功能** :
1010+ • docker-backup-menu: 交互式菜单
1011+ • docker-cleanup: 备份清理工具
1012+ • 一键安装脚本
1013+ • 定时备份配置
1014+ • rsync同步脚本
1015+ • ** go/callback** : HTTP回调API服务
1016+
1017+ 🐛 ** 问题修复** :
1018+ • 修复语法错误
1019+ • 解决容器备份循环问题
1020+ • 改进恢复脚本自动执行
1021+ • 优化文件查找逻辑
1022+
1023+ 📚 ** 文档完善** :
1024+ • 详细的使用说明
1025+ • 快速开始指南
1026+ • 论坛介绍帖子
1027+ • 示例和最佳实践
8741028- 初始版本发布
8751029- 支持完整的容器备份和恢复
8761030- 包含配置文件和命令行选项
0 commit comments