新增自动Mod管理功能,支持通过环境变量配置Mod ID,自动下载和更新Mod,并优化软链接创建逻辑。

This commit is contained in:
Dcr
2025-07-25 14:49:54 +08:00
parent 1dd3ec77b7
commit 34c2e6dd05
2 changed files with 89 additions and 26 deletions

View File

@@ -88,7 +88,10 @@ docker-compose up -d
| `DAYZ_MISSIONS` | `dayzOffline.chernarusplus` | 服务器地图 |
| `DAYZ_SERVER_PORT` | `2302` | 服务器端口 |
| `DAYZ_CPU_COUNT` | `4` | 使用的CPU核心数 |
| `MOD_IDS` | `空` | 需要更新的modid,例如:"123456789,987654321" |
| `MOD_IDS` | - | Mod ID列表用逗号分隔 |
| `ENABLE_AUTO_UPDATE` | `true` | 是否启用自动更新 |
| `UPDATE_INTERVAL` | `15` | 自动更新间隔(分钟) |
### 端口映射
@@ -160,32 +163,49 @@ docker-compose up -d
## 🔧 Mod管理
### 添加客户端Mod
### 自动Mod管理
项目现在支持自动Mod管理功能
1. **配置Mod ID**: 在环境变量中设置 `MOD_IDS`,例如:
```bash
MOD_IDS=123456789,987654321,456789123
```
2. **自动更新**: 系统会自动下载和更新指定的Mod
3. **自动软链接**: 系统会根据Mod ID自动创建软链接到 `client_mod` 目录
4. **智能命名**: 优先使用Mod的 `meta.cpp` 中的名称如果没有则使用Mod ID
### 手动Mod管理
如果您想手动管理Mod
1. 将Mod文件放入 `dayz/client_mod/` 目录
2. Mod文件夹应以 `@` 开头
3. 重启服务器以加载新Mod
### 添加服务端Mod
### 更新Mod
1. 将Mod文件放入 `dayz/server_mod/` 目录
2. Mod文件夹应以 `@` 开头
3. 重启服务器以加载新Mod
#### 自动更新
- **启用自动更新**: 设置 `ENABLE_AUTO_UPDATE=true`(默认启用)
- **更新间隔**: 通过 `UPDATE_INTERVAL` 设置默认15分钟
- **查看更新日志**: `docker-compose exec steamcmd cat /var/log/updatemod.log`
### 更新客户端Mod
#### 手动更新
1. 需要先停止容器运行 `docker compose down`
2. 然后运行更新命令 `docker compose run --rm steamcmd updatemod`
3. 更新完毕后启动docker容器即可.
3. 更新完毕后启动docker容器即可
### Mod配置示例
```
dayz/
├── client_mod/
│ ├── @CF
── @DayZExpansion
│ ├── @CF # 自动创建的软链接
── @DayZExpansion # 自动创建的软链接
│ └── @CustomMod # 手动添加的Mod
└── server_mod/
└── @DayZExpansionServer
└── @DayZExpansionServer # 服务端Mod
```
## 📊 监控和日志
@@ -259,6 +279,14 @@ docker-compose exec steamcmd netstat -tulpn
## 📝 更新日志
### v1.1.0
- 新增自动Mod管理功能
- 支持通过MOD_IDS环境变量配置Mod
- 自动下载和更新Mod
- 智能软链接创建优先使用meta.cpp中的名称
- 新增自动更新功能cron定时任务
- 优化Mod加载逻辑
### v1.0.0
- 初始版本发布
- 支持基本的DayZ服务器部署