automa/minecraft/CHANGELOG.md
m1ngsama 0fe7ed79ad refactor: 重构Minecraft服务器自动化管理方案
## 重构内容

### 新增自动化脚本系统 (scripts/)
- utils.sh: 通用工具库(日志、Docker操作、备份、网络检查)
- setup.sh: 环境初始化脚本(目录结构、权限、配置验证)
- mod-manager.sh: Mods管理(Modrinth下载、更新、清理)
- backup.sh: 备份管理(世界/配置/mods备份、恢复、清理)
- monitor.sh: 服务器监控(状态、资源、玩家、日志分析)

### 增强Makefile集成
新增命令:
- minecraft-status: 服务器状态检查
- minecraft-setup: 环境初始化
- minecraft-mods-*: Mods管理命令
- minecraft-backup-*: 备份管理命令

### 完善文档
- 重写README: 详细的使用指南、故障排查、迁移指南
- 新增CHANGELOG: 完整的重构说明和技术细节

## 架构改进

### 整合原有设计
- 继承src/automatic/的日志系统设计
- 改进Modrinth API集成逻辑
- 优化部署流程和备份机制

### 新增优势
- Docker优先的容器化方案
- 模块化脚本设计,职责单一
- Makefile统一管理入口
- 完整的生命周期自动化

## 技术特性

- 完善的错误处理和日志记录
- macOS/Linux跨平台兼容
- 敏感信息安全管理
- 持续监控模式

## 向后兼容

- 保留src/automatic/旧脚本(供参考)
- 配置文件格式完全兼容
- Docker Compose配置无变化
2025-12-09 10:00:00 +08:00

4.4 KiB
Raw Permalink Blame History

Minecraft 自动化方案重构日志

2025-12-09 - 自动化架构重构

🎯 重构目标

整合原有的本地部署方案(src/automatic/)和 Docker Compose 方案,提供统一的自动化管理系统。

新增功能

1. 统一的脚本体系

创建 scripts/ 目录,包含以下模块:

  • utils.sh - 通用工具库

    • 彩色日志输出
    • Docker 环境检查
    • 容器状态管理
    • 文件备份工具
    • 网络连接检测
  • setup.sh - 环境初始化

    • 系统环境检查
    • 目录结构初始化
    • 配置文件验证
    • 权限自动修复
  • mod-manager.sh - Mods 管理

    • 从 Modrinth 自动下载
    • 批量更新 mods
    • 列出已安装 mods
    • 清理和状态检查
  • backup.sh - 备份管理

    • 世界数据备份
    • 配置文件备份
    • Mods 备份
    • 备份恢复功能
    • 自动清理旧备份
  • monitor.sh - 服务器监控

    • 容器状态检查
    • 资源使用监控
    • 在线玩家查询
    • 日志分析
    • 持续监控模式

2. Makefile 集成

在根目录 Makefile 中新增命令:

服务器管理

  • make minecraft-status - 查看服务器状态
  • make minecraft-setup - 初始化环境

Mods 管理

  • make minecraft-mods-download - 下载 mods
  • make minecraft-mods-list - 列出 mods
  • make minecraft-mods-update - 更新 mods
  • make minecraft-mods-check - 检查状态

备份管理

  • make minecraft-backup - 完整备份
  • make minecraft-backup-world - 备份世界
  • make minecraft-backup-list - 列出备份
  • make minecraft-backup-cleanup - 清理备份

3. 完整的文档

重写 minecraft/README.md

  • 详细的快速开始指南
  • 完整的命令参考
  • 高级用法示例
  • 故障排查指南
  • 迁移指南

🔄 架构改进

从旧方案继承的优点

  1. 日志系统

    • 保留了 logger.sh 的彩色输出设计
    • 增强了日志功能(系统信息、时间戳、文件记录)
  2. Mods 下载逻辑

    • 基于 download-mods.sh 改进
    • 统一使用 extras/mods.txt 格式
    • 增加错误处理和重试机制
  3. 部署流程

    • 参考 deploy.sh 的备份逻辑
    • 适配 Docker Compose 环境

新增的优势

  1. Docker 优先

    • 完全容器化部署
    • 一致的运行环境
    • 简化依赖管理
  2. 模块化设计

    • 每个脚本职责单一
    • 通过 utils.sh 共享通用功能
    • 易于维护和扩展
  3. 统一管理

    • Makefile 统一入口
    • 一致的命令格式
    • 与其他服务TeamSpeak、Nextcloud集成

📂 目录变更

旧结构:
minecraft/
├── src/automatic/
│   ├── deploy.sh
│   ├── download-mods.sh
│   ├── logger.sh
│   └── requirements.txt

新结构:
minecraft/
├── scripts/                 # 新增:统一的脚本目录
│   ├── utils.sh
│   ├── setup.sh
│   ├── mod-manager.sh
│   ├── backup.sh
│   └── monitor.sh
├── extras/
│   └── mods.txt            # 统一的 mods 配置
├── backups/                # 新增:自动备份目录
├── logs/                   # 新增:脚本日志目录
└── src/automatic/          # 保留(供参考)

🔧 技术细节

  1. 错误处理

    • 所有脚本使用 set -e
    • 完善的返回码检查
    • 详细的错误消息
  2. 跨平台兼容

    • macOS 和 Linux 兼容的命令
    • 自动检测 docker compose vs docker-compose
    • 处理不同的 stat 命令格式
  3. 安全性

    • 敏感信息通过 .env 管理
    • RCON 密码验证
    • 备份前的确认机制

📋 迁移建议

如果使用旧的 src/automatic/ 脚本:

  1. 旧脚本仍可使用(未删除)
  2. 建议迁移到新的 Docker 方案
  3. 新方案提供更多自动化功能
  4. 通过 Makefile 统一管理更便捷

🎯 后续计划

  • 添加定时备份的 systemd/cron 模板
  • 集成 Prometheus 指标监控
  • 添加自动更新检查
  • Web 控制面板集成
  • 多服务器管理支持

📝 配置兼容性

  • docker-compose.yml - 无变化
  • .env - 无变化
  • configs/ - 无变化
  • mods/ - 无变化
  • extras/mods.txt - 格式与旧 requirements.txt 兼容

🙏 致谢

重构整合了原有设计的精华:

  • 日志系统的设计理念
  • Modrinth API 集成逻辑
  • 部署流程的最佳实践