Commit Graph
4 Commits
Author SHA1 Message Date
gongzhiyongandClaude Opus 5 af87e416ce feat: 市场模板改为脚本生成,预置 24 个实例
新增 scripts/gen-market.py 生成市场 JSON,替代手写。模板数可传参调整。

端口排布与容量上限:
四组端口各自从常规基址每实例 +10。最先相撞的是 RCON(21114 起)追上
查询端口基址(27165),故实例数硬上限为 606,超出会让不同实例的不同
服务抢同一端口。脚本对超限直接报错并说明原因。

已校验:24 个模板占用 144 个端口(24×6)零冲突;RCON 端口与 rconPort
字段一致;pingConfig 指向查询端口而非模板默认的 Minecraft 25565;
networkMode 均为 host;memory 均非 0;镜像均非 Docker Hub;编码均 utf8。
边界用例 607 被拒、606 可生成且末个 RCON 恰好不越界。

模板按每 8 个分组,避免市场列表过长难找。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 21:53:28 +08:00
gongzhiyongandClaude Opus 5 fe256c619f feat: 新增 MCSManager 面板集成 —— 自定义市场模板与一键配置脚本
面板侧的多开方案,把首次部署踩到的坑全部固化,重建不必重新排查。

新增:
- mcsm-market.json  自定义市场,3 个端口预排好的 Squad 模板
- scripts/setup-panel.sh   幂等的面板配置脚本(装 Docker/登录私有仓库/
  开启 enableApiKey 与 allowUsePreset/指向自建市场)
- scripts/squad-instance.py  按实例号自动排布端口的实例管理脚本(已实测)
- scripts/mcsm.py  通用 API 封装
- PANEL.md  面板侧文档

修正官方 Squad 模板的三个致命问题(均已实测):
- image 指向 Docker Hub,在受限网络下必然 i/o timeout
- networkMode 为 bridge,Squad 依赖 Steam 查询协议,该模式下
  服务端能起但游戏内浏览器搜不到;且端口映射漏了查询口与 RCON 口
- startCommand 不带端口参数,多开时第二个实例会抢第一个的端口

记录两个文档未提及的面板开关:enableApiKey 与 allowUsePreset 默认均为
false,前者会让所有 apikey 请求返回 403;以及 session 鉴权除 cookie 外
还需把 token 作为 query 参数带上。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 21:40:09 +08:00
gongzhiyongandClaude Opus 5 22c9581ef4 docs: 补充 RCON 未启动的实测失败模式
实机部署验证时发现 21114/tcp 不监听,根因不是端口冲突,而是
Rcon.cfg 的 Password= 为空导致 RCON 服务不启动。补充:
- 服务端的确切告警日志与设置成功后的日志
- Rcon.cfg 为 CRLF 行尾,sed 修改需保留 \r
- 建议在服务器本机生成随机密码,不经过剪贴板或聊天记录
- 排障表新增该条目

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 21:08:36 +08:00
gongzhiyongandClaude Opus 5 3a76b40dbf feat: 新增 Squad 服务端 Docker 多实例部署方案
包含 docker-compose.yml(实例 2 用 profile 门控)、.env.example 配置模板、
以及基于实测数据的部署说明。

实测确认的关键点:
- 镜像仅 134MB 不含游戏文件,约 80-100GB 服务端由 SteamCMD 运行时拉取
- 镜像声明 4 个端口,BEACONPORT=15000 官方 wiki 未提及,host 网络下多实例会冲突
- entry.sh 会自动重写 Rcon.cfg 端口,但 sed 只匹配字面量 21114,
  首启后再改 RCONPORT 会静默失败
- entry.sh 每次启动无条件跑 app_update,故共享游戏文件方案有并发写入风险(未验证)
- 发现两个未见于文档的环境变量:SERVER_NAME、MULTIHOME
- RANDOM 环境变量在本镜像中无效(bash 内置特殊变量覆盖不了),已记录为已知问题

凭据一律使用占位符,.gitignore 挡住 .env / Rcon.cfg / License.cfg 等含密文件。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 20:48:11 +08:00