diff --git a/palworld-server-tool/0.5.5/data.yml b/palworld-server-tool/0.5.5/data.yml new file mode 100644 index 000000000..9e6e0d5c3 --- /dev/null +++ b/palworld-server-tool/0.5.5/data.yml @@ -0,0 +1,45 @@ +additionalProperties: + formFields: + - default: '8080' + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: '127.0.0.1:25575' + edit: true + envKey: RCON_ADDRESS + labelEn: RCON Address + labelZh: RCON地址 + required: true + type: text + - default: 'RCON_PASSWORD' + edit: true + envKey: RCON_PASSWORD + labelEn: RCON Password + labelZh: RCON密码 + required: true + type: text + - default: 'WEB_PASSWORD' + edit: true + envKey: WEB_PASSWORD + labelEn: WEB Password + labelZh: WEB密码 + required: true + type: text + - default: '600' + edit: true + envKey: SAVE_SYNC_INTERVAL + labelEn: Save Sync Interval + labelZh: 存档同步间隔 + required: true + type: number + - default: '示例:./data/Pal/Saved/SaveGames/0/5633F58B91BB4CFDAE555321CA7E6C8E' + edit: true + envKey: PANEL_APP_PATH + labelEn: Save Path (starts with ./data) + labelZh: 存档路径 (以 ./data 开头) + required: true + type: text \ No newline at end of file diff --git a/palworld-server-tool/0.5.5/docker-compose.yml b/palworld-server-tool/0.5.5/docker-compose.yml new file mode 100644 index 000000000..a47689611 --- /dev/null +++ b/palworld-server-tool/0.5.5/docker-compose.yml @@ -0,0 +1,24 @@ +version: '3' +services: + pst: + image: jokerwho/palworld-server-tool:0.5.5 + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + volumes: + - ${PANEL_APP_PATH}:/game + environment: + - WEB__PASSWORD=${WEB_PASSWORD} + - RCON__ADDRESS=${RCON_ADDRESS} + - RCON__PASSWORD=${RCON_PASSWORD} + - SAVE__SYNC_INTERVAL=${SAVE_SYNC_INTERVAL} + - SAVE__DECODE_PATH=/app/sav_cli + - SAVE__PATH=/game/Level.sav + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/palworld-server-tool/README.md b/palworld-server-tool/README.md new file mode 100644 index 000000000..921cc600b --- /dev/null +++ b/palworld-server-tool/README.md @@ -0,0 +1,31 @@ +# 幻兽帕鲁服务器管理工具 + +**通过可视化界面及 REST 接口管理幻兽帕鲁专用服务器。** + +基于 `Level.sav` 存档文件解析实现的功能及路线图: + +- [x] 完整玩家数据 +- [x] 玩家帕鲁数据 +- [x] 公会数据 + +基于官方提供的 RCON 命令(仅服务器可用的)实现功能: + +- [x] 获取服务器信息 +- [x] 在线玩家列表 +- [x] 踢出/封禁玩家 +- [x] 游戏内广播 +- [x] 平滑关闭服务器并广播消息 + +本工具使用 bbolt 单文件存储,将 RCON 和 Level.sav 文件的数据通过定时任务获取并保存,提供简单的可视化界面和 REST 接口和便于管理与开发。 + +请确保前提 [开启私服 RCON](https://github.com/zaigie/palworld-server-tool?tab=readme-ov-file#%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF%E7%A7%81%E6%9C%8D-rcon) + +> 解析 `Level.sav` 存档的任务需要在短时间(<20s)耗费一定的系统内存(1GB~3GB),这部分内存会在执行完解析任务后释放,因此你至少需要确保你的服务器有充足的内存。若不满足可使用如下等方式 + +这里**默认为将 pst 工具和游戏服务器放在同一台物理机上**,在一些情况下你可能不想要它们部署在同一机器上: + +- 需要单独部署在其它服务器 +- 只需要部署在本地个人电脑 +- 游戏服务器性能较弱不满足,采用上述两种方案之一 + +**请参考 [pst-agent 部署教程](https://github.com/zaigie/palworld-server-tool/blob/main/README.agent.md) 或 [从 k8s-pod 同步存档](https://github.com/zaigie/palworld-server-tool?tab=readme-ov-file#%E4%BB%8E-k8s-pod-%E5%90%8C%E6%AD%A5%E5%AD%98%E6%A1%A3)** \ No newline at end of file diff --git a/palworld-server-tool/data.yml b/palworld-server-tool/data.yml new file mode 100644 index 000000000..b7e9be06c --- /dev/null +++ b/palworld-server-tool/data.yml @@ -0,0 +1,19 @@ +name: pal-server-tool +tags: + - 休闲游戏 +title: 幻兽帕鲁服务可视化管理工具 +type: 休闲游戏 +additionalProperties: + key: palworld-server-tool + name: palworld-server-tool + tags: + - Game + shortDescZh: 幻兽帕鲁服务可视化管理工具 + shortDescEn: palworld-server-tool + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://github.com/zaigie/palworld-server-tool + github: https://github.com/zaigie/palworld-server-tool + document: https://github.com/zaigie/palworld-server-tool \ No newline at end of file diff --git a/palworld-server-tool/logo.png b/palworld-server-tool/logo.png new file mode 100644 index 000000000..966c228fd Binary files /dev/null and b/palworld-server-tool/logo.png differ