mirror of
https://github.com/m1ngsama/automa.git
synced 2025-12-24 10:51:20 +00:00
## 重构内容 ### 新增自动化脚本系统 (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配置无变化
316 lines
6.9 KiB
Markdown
316 lines
6.9 KiB
Markdown
# Automa Minecraft 服务器
|
||
|
||
基于 Docker Compose 的 Minecraft Fabric 1.21.1 服务器,提供完整的自动化管理方案。
|
||
|
||
## 📁 目录结构
|
||
|
||
```
|
||
minecraft/
|
||
├── docker-compose.yml # Docker Compose 配置
|
||
├── .env # 环境变量配置(需自定义)
|
||
├── configs/ # 服务器配置文件
|
||
│ ├── server.properties # 服务器属性配置
|
||
│ └── whitelist.json # 白名单配置
|
||
├── mods/ # Mods 存放目录
|
||
├── data/ # 持久化数据(世界、日志等)
|
||
├── backups/ # 自动备份目录
|
||
├── logs/ # 自动化脚本日志
|
||
├── extras/
|
||
│ └── mods.txt # Modrinth Mods 列表
|
||
└── scripts/ # 自动化脚本
|
||
├── utils.sh # 工具库
|
||
├── setup.sh # 环境初始化
|
||
├── mod-manager.sh # Mods 管理
|
||
├── backup.sh # 备份管理
|
||
└── monitor.sh # 服务器监控
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 环境初始化
|
||
|
||
```bash
|
||
# 检查环境并初始化目录结构
|
||
make minecraft-setup
|
||
```
|
||
|
||
### 2. 配置服务器
|
||
|
||
编辑 `.env` 文件,设置必要的配置:
|
||
|
||
```bash
|
||
# 用户权限(使用 id 命令查看)
|
||
UID=1000
|
||
GID=1000
|
||
|
||
# RCON 密码(远程管理)
|
||
RCON_PASSWORD=your_secure_password
|
||
|
||
# 时区
|
||
TZ=Asia/Shanghai
|
||
```
|
||
|
||
### 3. 下载 Mods(可选)
|
||
|
||
```bash
|
||
# 从 Modrinth 下载 mods(根据 extras/mods.txt)
|
||
make minecraft-mods-download
|
||
|
||
# 或手动将 mods 放入 mods/ 目录
|
||
```
|
||
|
||
### 4. 启动服务器
|
||
|
||
```bash
|
||
# 启动服务器
|
||
make minecraft-up
|
||
|
||
# 查看日志
|
||
make minecraft-logs
|
||
```
|
||
|
||
## 📋 常用命令
|
||
|
||
### 服务器管理
|
||
|
||
```bash
|
||
make minecraft-up # 启动服务器
|
||
make minecraft-down # 停止服务器
|
||
make minecraft-restart # 重启服务器
|
||
make minecraft-logs # 查看实时日志
|
||
make minecraft-status # 查看服务器状态
|
||
```
|
||
|
||
### Mods 管理
|
||
|
||
```bash
|
||
make minecraft-mods-download # 下载所有 mods
|
||
make minecraft-mods-list # 列出已安装的 mods
|
||
make minecraft-mods-update # 更新所有 mods
|
||
make minecraft-mods-check # 检查 mods 状态
|
||
```
|
||
|
||
Mods 配置在 `extras/mods.txt` 中,每行一个 Modrinth slug:
|
||
|
||
```
|
||
fabric-api
|
||
sodium
|
||
lithium
|
||
iris
|
||
```
|
||
|
||
### 备份管理
|
||
|
||
```bash
|
||
make minecraft-backup # 完整备份(世界、配置、mods)
|
||
make minecraft-backup-world # 仅备份世界数据
|
||
make minecraft-backup-list # 列出所有备份
|
||
make minecraft-backup-cleanup # 清理旧备份
|
||
```
|
||
|
||
备份存储在 `backups/` 目录,按类型分类:
|
||
- `backups/worlds/` - 世界数据备份
|
||
- `backups/configs/` - 配置文件备份
|
||
- `backups/mods/` - Mods 备份
|
||
|
||
## 🔧 高级用法
|
||
|
||
### 直接使用脚本
|
||
|
||
所有自动化脚本位于 `scripts/` 目录:
|
||
|
||
```bash
|
||
# 环境初始化
|
||
./scripts/setup.sh
|
||
|
||
# Mods 管理
|
||
./scripts/mod-manager.sh download # 下载 mods
|
||
./scripts/mod-manager.sh list # 列出 mods
|
||
./scripts/mod-manager.sh update # 更新 mods
|
||
./scripts/mod-manager.sh clean # 清理 mods
|
||
|
||
# 备份管理
|
||
./scripts/backup.sh backup all # 完整备份
|
||
./scripts/backup.sh backup world # 仅备份世界
|
||
./scripts/backup.sh list # 列出备份
|
||
./scripts/backup.sh restore <file> # 恢复备份
|
||
./scripts/backup.sh cleanup 10 # 保留最近10个备份
|
||
|
||
# 服务器监控
|
||
./scripts/monitor.sh status # 完整状态
|
||
./scripts/monitor.sh resources # 资源使用
|
||
./scripts/monitor.sh players # 在线玩家
|
||
./scripts/monitor.sh logs 50 # 最近50行日志
|
||
./scripts/monitor.sh watch 10 # 持续监控(每10秒)
|
||
```
|
||
|
||
### 自定义配置
|
||
|
||
#### 修改服务器配置
|
||
|
||
编辑 `configs/server.properties`,然后重启服务器:
|
||
|
||
```bash
|
||
vim configs/server.properties
|
||
make minecraft-restart
|
||
```
|
||
|
||
#### 添加新 Mods
|
||
|
||
1. 在 Modrinth 找到 mod 的 slug(URL中的ID)
|
||
2. 添加到 `extras/mods.txt`
|
||
3. 运行下载命令:
|
||
|
||
```bash
|
||
make minecraft-mods-download
|
||
make minecraft-restart
|
||
```
|
||
|
||
#### 配置白名单
|
||
|
||
编辑 `configs/whitelist.json`,并在 `.env` 或 `configs/server.properties` 中启用白名单:
|
||
|
||
```properties
|
||
white-list=true
|
||
enforce-whitelist=true
|
||
```
|
||
|
||
## 🔍 监控与维护
|
||
|
||
### 实时监控
|
||
|
||
```bash
|
||
# 查看完整状态(容器、资源、玩家、错误)
|
||
make minecraft-status
|
||
|
||
# 持续监控模式(每5秒刷新)
|
||
cd minecraft && ./scripts/monitor.sh watch 5
|
||
```
|
||
|
||
### 日志管理
|
||
|
||
```bash
|
||
# 查看 Docker 容器日志
|
||
make minecraft-logs
|
||
|
||
# 查看自动化脚本日志
|
||
ls -lh logs/
|
||
tail -f logs/automation-*.log
|
||
```
|
||
|
||
### 定期备份
|
||
|
||
建议配置 cron 任务定期备份:
|
||
|
||
```bash
|
||
# 每天凌晨3点备份世界数据
|
||
0 3 * * * cd /path/to/automa && make minecraft-backup-world
|
||
|
||
# 每周清理旧备份(保留最近10个)
|
||
0 4 * * 0 cd /path/to/automa/minecraft && ./scripts/backup.sh cleanup 10
|
||
```
|
||
|
||
## 📊 性能优化
|
||
|
||
项目已包含性能优化 mods:
|
||
- **Sodium** - 渲染优化
|
||
- **Lithium** - 服务器性能优化
|
||
- **Iris** - 着色器支持
|
||
|
||
内存配置在 `docker-compose.yml` 中:
|
||
|
||
```yaml
|
||
environment:
|
||
MEMORY: "4G" # 最大内存
|
||
INIT_MEMORY: "2G" # 初始内存
|
||
```
|
||
|
||
## 🛡️ 安全建议
|
||
|
||
1. **修改 RCON 密码**:在 `.env` 中设置强密码
|
||
2. **配置防火墙**:仅开放必要端口(25565, 25575)
|
||
3. **启用白名单**:在 `configs/server.properties` 中配置
|
||
4. **定期备份**:使用自动化备份脚本
|
||
5. **监控日志**:定期检查错误日志
|
||
|
||
## 🔄 迁移指南
|
||
|
||
### 从旧版本迁移
|
||
|
||
如果你使用的是 `src/automatic/` 下的旧脚本:
|
||
|
||
1. 新方案使用 Docker Compose,更易部署和维护
|
||
2. Mods 管理统一使用 `extras/mods.txt` 格式
|
||
3. 所有自动化功能集成到 `scripts/` 目录
|
||
4. 通过 Makefile 统一管理
|
||
|
||
迁移步骤:
|
||
|
||
```bash
|
||
# 1. 备份旧数据
|
||
cp -r old_server_dir/world minecraft/data/
|
||
|
||
# 2. 复制 mods(如果手动管理)
|
||
cp -r old_mods_dir/* minecraft/mods/
|
||
|
||
# 3. 初始化新环境
|
||
make minecraft-setup
|
||
|
||
# 4. 启动服务器
|
||
make minecraft-up
|
||
```
|
||
|
||
## 📝 故障排查
|
||
|
||
### 容器无法启动
|
||
|
||
```bash
|
||
# 检查 Docker 服务
|
||
docker info
|
||
|
||
# 查看容器日志
|
||
make minecraft-logs
|
||
|
||
# 检查环境配置
|
||
cat .env
|
||
```
|
||
|
||
### Mods 下载失败
|
||
|
||
```bash
|
||
# 检查网络连接
|
||
curl -I https://api.modrinth.com
|
||
|
||
# 查看详细日志
|
||
cat logs/automation-*.log
|
||
|
||
# 手动下载 mods 放入 mods/ 目录
|
||
```
|
||
|
||
### 性能问题
|
||
|
||
```bash
|
||
# 查看资源使用
|
||
cd minecraft && ./scripts/monitor.sh resources
|
||
|
||
# 调整内存配置
|
||
vim docker-compose.yml # 修改 MEMORY 和 INIT_MEMORY
|
||
|
||
# 重启服务器
|
||
make minecraft-restart
|
||
```
|
||
|
||
## 📚 相关资源
|
||
|
||
- [Docker 文档](https://docs.docker.com/)
|
||
- [itzg/minecraft-server 镜像](https://github.com/itzg/docker-minecraft-server)
|
||
- [Modrinth](https://modrinth.com/) - Mods 下载平台
|
||
- [Fabric](https://fabricmc.net/) - Mod 加载器
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
## 📄 许可
|
||
|
||
MIT License
|