diff --git a/palworld-server-tool/README.md b/palworld-server-tool/README.md new file mode 100644 index 00000000..250571df --- /dev/null +++ b/palworld-server-tool/README.md @@ -0,0 +1,25 @@ +幻兽帕鲁服务器管理工具 + +通过可视化界面及 REST 接口管理幻兽帕鲁专用服务器,基于 SAV 存档文件解析及 RCON 实现 +基于 Level.sav 存档文件解析实现的功能及路线图: + 完整玩家数据 + 玩家帕鲁数据 + 公会数据 +基于官方提供的 RCON 命令(仅服务器可用的)实现功能: + 获取服务器信息 + 在线玩家列表 + 踢出/封禁玩家 + 游戏内广播 + 平滑关闭服务器并广播消息 +本工具使用 bbolt 单文件存储,将 RCON 和 Level.sav 文件的数据通过定时任务获取并保存,提供简单的可视化界面和 REST 接口和便于管理与开发。 + +请确保前提 开启私服 RCON + +解析 Level.sav 存档的任务需要在短时间(<20s)耗费一定的系统内存(1GB~3GB),这部分内存会在执行完解析任务后释放,因此你至少需要确保你的服务器有充足的内存。若不满足可使用如下等方式 + +这里默认为将 pst 工具和游戏服务器放在同一台物理机上,在一些情况下你可能不想要它们部署在同一机器上: + +需要单独部署在其它服务器 +只需要部署在本地个人电脑 +游戏服务器性能较弱不满足,采用上述两种方案之一 +请参考 https://github.com/zaigie/palworld-server-tool/blob/main/README.agent.md 部署教程 \ 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 00000000..b7e9be06 --- /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/latest/data.yml b/palworld-server-tool/latest/data.yml new file mode 100644 index 00000000..0a6e284a --- /dev/null +++ b/palworld-server-tool/latest/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: '示例:./Pal/Saved/SaveGames/0/5633F58B91BB4CFDAE555321CA7E6C8E' + edit: true + envKey: PANEL_APP_path + labelEn: Save Path + labelZh: 存档路径 + required: true + type: text \ No newline at end of file diff --git a/palworld-server-tool/latest/docker-compose.yml b/palworld-server-tool/latest/docker-compose.yml new file mode 100644 index 00000000..cc4fe8d0 --- /dev/null +++ b/palworld-server-tool/latest/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3' +services: + pst: + image: jokerwho/palworld-server-tool:latest + 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__PATH=${SAVE_PATH}" + - "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/logo.png b/palworld-server-tool/logo.png new file mode 100644 index 00000000..966c228f Binary files /dev/null and b/palworld-server-tool/logo.png differ