From 3eb8cd083425ea8d84d090a09b4c3a2cf34991a5 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 23 Mar 2022 19:49:09 -0700 Subject: [PATCH 001/110] Create egg-sftp-storage-share.json --- .../egg-sftp-storage-share.json | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 storage/sftp_storage_share/egg-sftp-storage-share.json diff --git a/storage/sftp_storage_share/egg-sftp-storage-share.json b/storage/sftp_storage_share/egg-sftp-storage-share.json new file mode 100644 index 00000000..34b67947 --- /dev/null +++ b/storage/sftp_storage_share/egg-sftp-storage-share.json @@ -0,0 +1,30 @@ +{ + "_comment": "Pterodactyl SFTP Storage Share Egg ~ David Wolfe (Red-Thirten) ~ 2022-03-14", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "name": "SFTP Storage Share", + "author": "rehlmgaming@gmail.com", + "description": "A simple \"empty\" egg that acts as a private SFTP storage share by utilizing Pterodactyl's built in SFTP system for servers. Sub-users can be added to the server by the owner to allow additional people to access the share. \"Starting\" the server performs no actions and it should be left off.", + "features": null, + "images": [ + "ghcr.io\/parkervcp\/yolks:alpine" + ], + "file_denylist": [], + "startup": "echo -e \"\\n\\n\\033[0;31mThere is no need to start this server. The SFTP service is always running. Feel free to stop the server now.\\n\\t\\033[0;36m(Sub-users can be added via the Users tab to add\/remove access to the share in real time)\\n\\n\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": null, + "container": "alpine:3.4", + "entrypoint": "ash" + } + }, + "variables": [] +} \ No newline at end of file From d9c28e23ad82c7fae8a50fa3f84e6543a628dd43 Mon Sep 17 00:00:00 2001 From: HyperBeats Date: Thu, 23 Jun 2022 16:08:08 +0200 Subject: [PATCH 002/110] Create eggs Iosoccer --- .../iosoccer/eggs-iosoccer.json | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json diff --git a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json new file mode 100644 index 00000000..1764464c --- /dev/null +++ b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json @@ -0,0 +1,88 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2022-02-20T01:24:34+01:00", + "name": "IOSOCER-server-hyper", + "author": "hyperbeats@raptorhost.fr", + "description": "SERVER IOSOCCER", + "features": [ + "steam_disk_space" + ], + "images": [ + "ghcr.io\/parkervcp\/games:source" + ], + "file_denylist": [], + "startup": ".\/srcds_run -console -game iosoccer -condebug -port {{SERVER_PORT}} +maxplayers {{SLOTS}} +fps_max {{MAX_FPS}} -tickrate {{TICKRATE}} +map {{MAP}} +rcon_password {{RCON}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "Game ID", + "env_variable": "SRCDS_APPID", + "default_value": "673990", + "user_viewable": true, + "user_editable": false, + "rules": "required|regex:\/^(673990)$\/" + }, + { + "name": "MAP", + "description": "", + "env_variable": "MAP", + "default_value": "8v8_vienna", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "SLOTS", + "description": "", + "env_variable": "SLOTS", + "default_value": "32", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "TICKRATE", + "description": "", + "env_variable": "TICKRATE", + "default_value": "100", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "MAX FPS", + "description": "", + "env_variable": "MAX_FPS", + "default_value": "500", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "RCON", + "description": "", + "env_variable": "RCON", + "default_value": "pleasechangepassword", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + } + ] +} From dd8bddcb83cbac0aee5910a22ab24c4fab99a6c9 Mon Sep 17 00:00:00 2001 From: HyperBeats Date: Thu, 23 Jun 2022 16:09:16 +0200 Subject: [PATCH 003/110] Update eggs-iosoccer.json --- game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json index 1764464c..0936c2a4 100644 --- a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json +++ b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json @@ -5,7 +5,7 @@ "update_url": null }, "exported_at": "2022-02-20T01:24:34+01:00", - "name": "IOSOCER-server-hyper", + "name": "IOSOCER-server", "author": "hyperbeats@raptorhost.fr", "description": "SERVER IOSOCCER", "features": [ From 39c197bb60dec74a76601775a48ab9641712e050 Mon Sep 17 00:00:00 2001 From: HyperBeats <45314346+HyperBeats@users.noreply.github.com> Date: Thu, 23 Jun 2022 18:35:15 +0200 Subject: [PATCH 004/110] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a83e91d3..58fbc2d9 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) +* [iosoccer](game_eggs/steamcmd_servers/iosoccer) [Teeworlds](game_eggs/teeworlds) From 2b279014f335d17d944d3f8bdb728a5d35529001 Mon Sep 17 00:00:00 2001 From: Attackwave Date: Fri, 13 Jan 2023 12:49:38 +0100 Subject: [PATCH 005/110] Core Keeper --- .../steamcmd_servers/core_keeper/README.md | 26 +++ .../core_keeper/egg-core-keeper.json | 162 ++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 game_eggs/steamcmd_servers/core_keeper/README.md create mode 100644 game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md new file mode 100644 index 00000000..3ca75455 --- /dev/null +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -0,0 +1,26 @@ +# Core Keeper + +## Game Info + +[Core Keeper] (https://store.steampowered.com/app/1621690/Core_Keeper/)is a sandbox survival game. + +Explore an endless cavern of creatures, relics and resources in a mining sandbox adventure for 1-8 players. Mine, build, fight, craft and farm to unravel the mystery of the ancient Core. + +## Dedicated Server + +[Steam DB] (https://steamdb.info/app/1963720/info/) + +## Parameters + +| Parameter | default | Description | +|---------|--------------------------|---------------------------------------------------| +| World Index | 0 | Which world index to use. Default: 0. | +| World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | +| World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | +| Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | +| Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | +| Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | +| World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | +| Auto Update | 1 | Enable automatic updates on boot: Default: true | + + diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json new file mode 100644 index 00000000..e127346a --- /dev/null +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -0,0 +1,162 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-13T12:30:55+01:00", + "name": "Core Keeper", + "author": "karsten@fiedleronline.net", + "description": "Core Keeper is a survival sandbox game.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---\r\n\r\nInfo: Query port ist server port + 1.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, + "file_denylist": [], + "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget;\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 ${INSTALL_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "World Index", + "description": "Which world index to use. Default: 0.", + "env_variable": "WORLD_INDEX", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "World Name", + "description": "The name to use for the server. Defaul: Core Keeper Server.", + "env_variable": "WORLD_NAME", + "default_value": "Core Keeper Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100|min:3", + "field_type": "text" + }, + { + "name": "World Seed", + "description": "The seed to use for a new world. Set to 0 to generate random seed. Default: 0.", + "env_variable": "WORLD_SEED", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Game ID", + "description": "Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY.", + "env_variable": "GAME_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|min:28", + "field_type": "text" + }, + { + "name": "Data Path", + "description": "Save file location. Defaul: DedicatedServer.", + "env_variable": "DATA_PATH", + "default_value": "DedicatedServer", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100,", + "env_variable": "MAX_PLAYERS", + "default_value": "100", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1|max:100", + "field_type": "text" + }, + { + "name": "World Mode", + "description": "Whether to use normal (0) or hard (1) mode for world. Default: 0.", + "env_variable": "WORLD_MODE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0|max:1", + "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "Steam App ID of Core Keeper Dedicated Server. Found here: https:\/\/steamdb.info\/search\/?a=app&q=core+keeper&type=5&category=0", + "env_variable": "SRCDS_APPID", + "default_value": "1963720", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot: Default: true", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "XVFB", + "description": "Enable virtual framebuffer. Fix: 1", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_WIDTH", + "description": "Virtual display width. Fix:1.", + "env_variable": "DISPLAY_WIDTH", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_HEIGHT", + "description": "Virtual display height. Fix:1.", + "env_variable": "DISPLAY_HEIGHT", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_DEPTH", + "description": "Virtual display color depth. Fix: 1.", + "env_variable": "DISPLAY_DEPTH", + "default_value": "24", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + } + ] +} \ No newline at end of file From f1a02247d2a56c64e5d1c89d5f6be04298dfeda6 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 12:56:29 +0100 Subject: [PATCH 006/110] Update README.md --- game_eggs/steamcmd_servers/core_keeper/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 3ca75455..cbd6e867 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -2,18 +2,18 @@ ## Game Info -[Core Keeper] (https://store.steampowered.com/app/1621690/Core_Keeper/)is a sandbox survival game. +[Core Keeper](https://store.steampowered.com/app/1621690/Core_Keeper/) is a sandbox survival game. Explore an endless cavern of creatures, relics and resources in a mining sandbox adventure for 1-8 players. Mine, build, fight, craft and farm to unravel the mystery of the ancient Core. ## Dedicated Server -[Steam DB] (https://steamdb.info/app/1963720/info/) +[Steam DB](https://steamdb.info/app/1963720/info/) ## Parameters -| Parameter | default | Description | -|---------|--------------------------|---------------------------------------------------| +| Parameter | default | Description | +|----------------------|--------------------------|---------------------------------------------------| | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | @@ -22,5 +22,3 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | - - From 24a82aff2152a75d07227a7223e2d702a0285e0e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:01:45 +0100 Subject: [PATCH 007/110] Update README.md Add Core Keeper --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bddab372..f82b1bb9 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Black Mesa](game_eggs/steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel) * [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles) +* [Core Keeper](game_eggs/steamcmd_servers/core_keeper) * [Craftopia](game_eggs/steamcmd_servers/craftopia) * [Cryofall](game_eggs/steamcmd_servers/cryofall) * [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental) From 6c33f45b57e3c16963628bdbe854d7425848434e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:03:08 +0100 Subject: [PATCH 008/110] Update README.md Added Core Keeper --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index ddbf3123..9defcc26 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -119,6 +119,7 @@ * [Black Mesa](steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](steamcmd_servers/citadel) * [Conan Exiles](steamcmd_servers/conan_exiles) +* [Core Keeper](steamcmd_servers/core_keeper) * [CryoFall](steamcmd_servers/cryofall) * [DayZ (Experimental)](steamcmd_servers/dayz-experimental) * [Don't Starve Together](steamcmd_servers/dont_starve) From 7d04da75868c4f02fd41e303399d0b3bbad7942c Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:04:06 +0100 Subject: [PATCH 009/110] Update README.md Added Core Keeper --- game_eggs/steamcmd_servers/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index ba85b43a..ad088cb2 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -40,6 +40,10 @@ This is a collection of servers that use SteamCMD to install. [Conan Exiles](conan_exiles) +## Core Keeper + +[Core Keeper](core_keeper) + ## Craftopia [Craftopia](craftopia) From a267a858d8ba1ca27711e579caf5c06cd7e8a93e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:17:26 +0100 Subject: [PATCH 010/110] Update README.md Added server port info --- game_eggs/steamcmd_servers/core_keeper/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index cbd6e867..9dd78d49 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -22,3 +22,13 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | + +## Game Ports + +The dedicated server uses two UDP Ports.\ +Game Port: Server Port\ +Query Port: Server Port + 1 + +Example:\ +Server Port = 4711\ +Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. From e3294ff7a65d583c7116154f9294fd9a957e41ef Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 21:39:02 +0100 Subject: [PATCH 011/110] Update egg-core-keeper.json - steamcmd default script - game port - xvfb display depth text fix - fixed startup script --- .../core_keeper/egg-core-keeper.json | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index e127346a..82fb9ae3 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,16 +4,18 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T12:30:55+01:00", + "exported_at": "2023-01-13T21:33:24+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", - "description": "Core Keeper is a survival sandbox game.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---\r\n\r\nInfo: Query port ist server port + 1.", - "features": null, + "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", + "features": [ + "steam_disk_space" + ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{GAME_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -22,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget;\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 ${INSTALL_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\n#echo \"-----------------------------------------\"\r\n#echo \"Installation completed...\"\r\n#echo \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -150,13 +152,23 @@ }, { "name": "DISPLAY_DEPTH", - "description": "Virtual display color depth. Fix: 1.", + "description": "Virtual display color depth. Fix: 24.", "env_variable": "DISPLAY_DEPTH", "default_value": "24", "user_viewable": false, "user_editable": false, "rules": "required|integer", "field_type": "text" + }, + { + "name": "Game Port", + "description": "What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016).", + "env_variable": "GAME_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" } ] -} \ No newline at end of file +} From 66ec53f5594104b272119878d22b57603845f895 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 21:46:13 +0100 Subject: [PATCH 012/110] Update game port and added game port table --- game_eggs/steamcmd_servers/core_keeper/README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 9dd78d49..1bd75bd9 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -12,23 +12,25 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox ## Parameters -| Parameter | default | Description | +| Parameter | Default | Description | |----------------------|--------------------------|---------------------------------------------------| | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | | Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | | Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | +| Game Port | 27015 | What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016). | | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | ## Game Ports -The dedicated server uses two UDP Ports.\ -Game Port: Server Port\ -Query Port: Server Port + 1 +| Port | Default | Protocol | Description | +|---------|---------|----------|---------------------------------------------| +| Game | 27015 | UDP | | +| Query | 27016 | UDP | Automaticaly bind by the game server (Game port + 1) | Example:\ -Server Port = 4711\ +Game Port = 4711\ Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. From c326efd20923dd9e5aceaba3dd8c1a749184fa31 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sat, 14 Jan 2023 20:55:36 +0100 Subject: [PATCH 013/110] Updated Core Keeper README --- .../steamcmd_servers/core_keeper/README.md | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 1bd75bd9..83d28fb2 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -17,9 +17,7 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | -| Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | -| Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | -| Game Port | 27015 | What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016). | +| Game ID | | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | @@ -28,9 +26,26 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Port | Default | Protocol | Description | |---------|---------|----------|---------------------------------------------| -| Game | 27015 | UDP | | +| Server | 27015 | UDP | | | Query | 27016 | UDP | Automaticaly bind by the game server (Game port + 1) | Example:\ -Game Port = 4711\ +Server Port = 4711\ Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. + +## Requirements of RAM and storage + +| Req | Minimum | Recommend | +|---------|---------|---------| +| RAM | 1.0GB | 1.5GB | +| Storage | 1.0GB | 1.5GB | + +## Important directories + +| Directory | Description | +|---------|---------| +| World Saves | /home/container/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer/worlds | +| Server Settings | /home/container/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer | + + + From c7528d4d017faac82825546dc86cafcaba03a934 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sat, 14 Jan 2023 22:19:21 +0100 Subject: [PATCH 014/110] Update egg-core-keeper.json - Variable DATA_PATH (there is no need to set a different directory name) - Small fixes in startup script --- .../core_keeper/egg-core-keeper.json | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 82fb9ae3..1038261c 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T21:33:24+01:00", + "exported_at": "2023-01-14T22:17:05+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{GAME_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -70,16 +70,6 @@ "rules": "nullable|string|min:28", "field_type": "text" }, - { - "name": "Data Path", - "description": "Save file location. Defaul: DedicatedServer.", - "env_variable": "DATA_PATH", - "default_value": "DedicatedServer", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:100", - "field_type": "text" - }, { "name": "Max Players", "description": "Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100,", @@ -159,16 +149,6 @@ "user_editable": false, "rules": "required|integer", "field_type": "text" - }, - { - "name": "Game Port", - "description": "What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016).", - "env_variable": "GAME_PORT", - "default_value": "27015", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer", - "field_type": "text" } ] } From 28b74a1f366c1cdba7ba05d814d4962553a34361 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 11:45:35 +0100 Subject: [PATCH 015/110] updated Valheim Plus --- .../valheim/valheim_plus/README.md | 7 +- .../valheim_plus/egg-valheim-plus-mod.json | 166 ++++++++++++------ 2 files changed, 123 insertions(+), 50 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md b/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md index feb0c1f7..66427737 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md @@ -1,5 +1,11 @@ # Valheim Plus Mod +## Author & Contributers +| Name | Github Profile | Buy me a Coffee | +| ------------- |-------------|-------------| +| gOOvER | https://github.com/gOOvER | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B351D0Q) | + + ## Valheim A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odin’s patronage! @@ -12,7 +18,6 @@ Support: https://github.com/valheimPlus/ValheimPlus Discord: https://discord.gg/AmH6Va97GT ***!!! ATTENTION !!!*** - ***All (Server + Clients) need to have a installed Valheim Plus Mod !!!!*** ## Server Ports diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index ee851234..17942ee4 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -4,18 +4,16 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-16T08:17:39+02:00", + "exported_at": "2023-01-15T11:43:15+01:00", "name": "Valheim Plus Mod", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", - "features": [ - "steam_disk_space" - ], + "features": null, "docker_images": { "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, "file_denylist": [], - "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public ${PUBLIC} $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", @@ -24,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH\r\nrm -fR $MATCH", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Valheim+ Installscript${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\necho -e \"${GREEN}...done${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install Valheim with SteamCMD${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\necho -e \"${GREEN}...done${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}downloading V+ from Github${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH\r\nrm -fR $MATCH\r\necho -e \"${GREEN}...done${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -61,23 +59,13 @@ "field_type": "text" }, { - "name": "App ID", - "description": "Valheim steam app id for auto updates.", - "env_variable": "SRCDS_APPID", - "default_value": "896660", + "name": "Public Server", + "description": "Public visibility of your server. Set it to false to make the server invisible and only joinable via the 'Join IP'-button.", + "env_variable": "PUBLIC", + "default_value": "1", "user_viewable": true, - "user_editable": false, - "rules": "nullable|numeric", - "field_type": "text" - }, - { - "name": "LD Library Path", - "description": "Required to load server libraries.", - "env_variable": "LD_LIBRARY_PATH", - "default_value": ".\/linux64", - "user_viewable": false, - "user_editable": false, - "rules": "required|string", + "user_editable": true, + "rules": "boolean", "field_type": "text" }, { @@ -91,7 +79,107 @@ "field_type": "text" }, { - "name": "GITHUB_PACKAGE", + "name": "Enable Crossplay", + "description": "Enable crossplay support", + "env_variable": "ENABLE_CROSSPLAY", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Beta Branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Backup Interval", + "description": "Change how often the world will save in seconds. Default: 1800 (30 minutes).", + "env_variable": "BACKUP_INTERVAL", + "default_value": "1800", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Count", + "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart. Default: 4.", + "env_variable": "BACKUP_COUNT", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Shorttime", + "description": "Sets the interval between the first automatic backups in seconds. Default: 7200 (2 hours).", + "env_variable": "BACKUP_SHORTTIME", + "default_value": "7200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Longtime", + "description": "Sets the interval between the subsequent automatic backups in seconds. Default: 43200 (12 hours).", + "env_variable": "BACKUP_LONGTIME", + "default_value": "43200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "[System] Console Filter", + "description": "Remove unwanted outputs from the console.", + "env_variable": "CONSOLE_FILTER", + "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", + "user_viewable": false, + "user_editable": false, + "rules": "string", + "field_type": "text" + }, + { + "name": "[System] Steam AppID", + "description": "Valheim steam app id for auto updates.", + "env_variable": "SRCDS_APPID", + "default_value": "896660", + "user_viewable": true, + "user_editable": false, + "rules": "nullable|numeric", + "field_type": "text" + }, + { + "name": "[System] LD Library Path", + "description": "Required to load server libraries.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/linux64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[V+] Github Package", "description": "", "env_variable": "GITHUB_PACKAGE", "default_value": "valheimPlus\/ValheimPlus", @@ -101,17 +189,17 @@ "field_type": "text" }, { - "name": "Version", + "name": "[V+] Version", "description": "", "env_variable": "VERSION", "default_value": "latest", - "user_viewable": true, - "user_editable": true, + "user_viewable": false, + "user_editable": false, "rules": "required|string|max:20", "field_type": "text" }, { - "name": "MATCH", + "name": "[V+] MATCH", "description": "", "env_variable": "MATCH", "default_value": "UnixServer.zip", @@ -121,17 +209,7 @@ "field_type": "text" }, { - "name": "Public Server", - "description": "", - "env_variable": "PUBLIC", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:20", - "field_type": "text" - }, - { - "name": "Filter", + "name": "[System] Filter", "description": "", "env_variable": "FILTER", "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", @@ -141,7 +219,7 @@ "field_type": "text" }, { - "name": "Shutdown Command", + "name": "[System] Shutdown Command", "description": "", "env_variable": "STOP", "default_value": "kill -2 $!; wait;", @@ -149,16 +227,6 @@ "user_editable": false, "rules": "required|string", "field_type": "text" - }, - { - "name": "Enable Crossplay", - "description": "Enable crossplay support", - "env_variable": "ENABLE_CROSSPLAY", - "default_value": "0", - "user_viewable": true, - "user_editable": true, - "rules": "required|boolean", - "field_type": "text" } ] } \ No newline at end of file From 3881e44dd787390ce919c932a4cf37ab5b318fc8 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 11:47:22 +0100 Subject: [PATCH 016/110] add missing steam feature --- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 17942ee4..5015436d 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -8,7 +8,9 @@ "name": "Valheim Plus Mod", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, From 8e9a223051e00daa6dda0b36bab0060d669c3d9e Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 13:54:45 +0100 Subject: [PATCH 017/110] add V Rising BepInex --- README.md | 2 + game_eggs/steamcmd_servers/README.md | 2 + .../v_rising/v_rising_bepinex/README.md | 122 +++++++ .../egg-v-rising-bep-in-ex.json | 304 ++++++++++++++++++ .../v_rising/{ => v_rising_vanilla}/README.md | 0 .../{ => v_rising_vanilla}/egg-v-rising.json | 0 6 files changed, 430 insertions(+) create mode 100644 game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md create mode 100644 game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json rename game_eggs/steamcmd_servers/v_rising/{ => v_rising_vanilla}/README.md (100%) rename game_eggs/steamcmd_servers/v_rising/{ => v_rising_vanilla}/egg-v-rising.json (100%) diff --git a/README.md b/README.md index bddab372..37fe82fc 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Euro Truck Simulator 2](game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/) * [Unturned](game_eggs/steamcmd_servers/unturned) * [V Rising](game_eggs/steamcmd_servers/v_rising) + * [V Rising Vanilla](game_eggs/steamcmd_servers/v_rising/v_rising_vanilla) + * [V Rising BepInex](game_eggs/steamcmd_servers/v_rising/v_rising_bepinex) * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index ba85b43a..a7ea2d16 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -228,6 +228,8 @@ This is a collection of servers that use SteamCMD to install. ## V Rising [V Rising](v_rising) + * [V Rising Vanilla](v_rising/v_rising_vanilla) + * [V Rising BepInex](v_rising/v_rising_bepinex) ## Valheim diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md new file mode 100644 index 00000000..35021a4c --- /dev/null +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md @@ -0,0 +1,122 @@ +# V Rising BepInEx + +**_NOTE: Server version currently marked as Early Access by the V Rising developers. Your mileage may vary as updates are released._** + +**_NOTE: Serverstart can take up to 15mins on first start!!!** +--- + +### Authors / Contributors + + + + + + + + + + +
+ +
Red-Thirten +
+
+ 💻 + 💡 +
+ +
Kapatheus +
+
+ 💻 + 💡 +
+ +
Upd4ting +
+
+ 💻 + 🔨 +
+ +
gOOvER +
+
+ 💻 + 🔨 +
+ + + +--- + +### Game Description + +From Stunlock Studios's [Website](https://playvrising.com/): + +> Awaken as a vampire. Hunt for blood in nearby settlements to regain your strength and evade the scorching sun to survive. Raise your castle and thrive in an ever-changing open world full of mystery. Gain allies online and conquer the land of the living. + +--- + +### Egg Capabilities + +- Currently runs the Windows build of the server via Wine. This egg will be updated when a proper, native Linux server binary is released. +- Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. +- All `ServerHostSettings.json` settings can be automatically configured via Startup variables. + - This includes: Server name, game settings preset, password, max players, auto save settings, and more... +- RCON ready (\*requires extra port – see [Server Ports](#server-ports)). See the RCON section under [Manual Configuration Topics](#manual-configuration-topics) for more info. +- Load BepInEx so you can install mod on your server + +--- + +### Server Ports + +- Default server ports are listed below, but all three ports can be changed freely. +- The only _required_ port is the Game port, but the Query port is needed for the server to appear in the server list (Direct connect is still possible without the Query port). There have also been reports that servers only appear in the server list if they are popular, so consider this when troubleshooting. +- Clients connect via the Game port. +- The RCON port is optional and only required if the server owner enables/uses RCON. + +| Port | Default | Protocol | +| -------------------------------------- | ------- | -------- | +| **Game (Primary Port in Pterodactyl)** | 9876 | UDP | +| Query | 9877 | UDP | +| RCON | 25575 | TCP | + +--- + +### Installation/System Requirements + +| | Bare Minimum | Recommended | +| -------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| Processor | Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. | Unsubstantiated reports say that RCON uses significantly more CPU when enabled, but I have not been able to replicate myself. | +| RAM | 3072 MiB | 4096-6144 MiB | +| Storage | 3.5 GB | 5-10 GB (or more, depending on save size or frequency) | +| Game Ownership | Not required at all. | ---- | + +--- + +### Manual Configuration Topics + +The following are various topics covering manual configuration procedures the egg does not handle automatically that may be useful to server owners: + +#### Save File and Custom Settings Location + +You can find the game settings and saves in the `~/save-data/` directory. + +#### Server Game Settings + +Standardized game settings can be applied via the "Game Settings Preset" startup parameter. If you would like a more custom array of settings to adjust, you can copy the `ServerGameSettings.json` file located in `~/VRisingServer_Data/StreamingAssets/Settings/` to `~/save-data/Settings/` and adjust as needed. Also, ensure "Game Settings Preset" is set to empty/null. A list of settings, with a description of what each setting does and the min/max values where applicable, [can be found here](https://cdn.stunlock.com/blog/2022/05/25083113/Game-Server-Settings.pdf). + +#### Becoming an Administrator + +To become an administrator in the game you will first need to open the `adminlist.txt` file under `~/VRisingServer_Data/StreamingAssets/Settings/` and add your [steamID64](https://steamid.io/) (one steamID64 per line). This can be done without restarting your server. To become an administrator in the game you need to enable the console in the options menu, bring it down with `~` and authenticate using the `adminauth` console command. Once an administrator you can use a number of administrative commands like `banuser`, `bancharacter`, `banned`, `unban` and `kick`. + +If you ban users through the in-game console the server will automatically modify the `banlist.txt` file, but you can also modify this manually (one steamID64 per line). + +#### Transfer Local/Client Save to the Server + +[Follow these instructions by the developer very carefully](https://github.com/StunlockStudios/vrising-dedicated-server-instructions#transfer-localclient-save-to-a-dedicated-server). Note: The `-saveName ` command line parameter and `GameSettingsPreset` setting are handled automatically by the Egg's "Save Name" and "Game Settings Preset" startup parameters, respectively. Also, if a custom `ServerGameSettings.json` file exists for any reason in the `~/save-data/Settings` directory, delete it. + +#### RCON + +RCON can allow general and restart announcements to be made to the server remotely (functions which are not currently supported by the console command line). You can enable RCON by properly configuring the relevant variables under the Startup tab of your Pterodactyl server. The RCON port must be allocated to the server. [Click here for list of valid commands and recommended RCON client](https://github.com/StunlockStudios/vrising-dedicated-server-instructions#rcon). \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json new file mode 100644 index 00000000..d76d07e1 --- /dev/null +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json @@ -0,0 +1,304 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-15T13:46:55+01:00", + "name": "V Rising BepInEx", + "author": "rehlmgaming@gmail.com", + "description": "Awaken as a vampire. Hunt for blood in nearby settlements to regain your strength and evade the scorching sun to survive. Raise your castle and thrive in an ever-changing open world full of mystery. Gain allies online and conquer the land of the living.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "WINEDLLOVERRIDES=\"winhttp=n,b\"; xvfb-run wine .\/VRisingServer.exe -persistentDataPath save-data -address 0.0.0.0", + "config": { + "files": "{\r\n \"save-data\/Settings\/ServerHostSettings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"Name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"Description\": \"{{server.build.env.DESCRIPTION}}\",\r\n \"Port\": \"{{server.build.default.port}}\",\r\n \"QueryPort\": \"{{server.build.env.QUERY_PORT}}\",\r\n \"MaxConnectedUsers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MaxConnectedAdmins\": \"{{server.build.env.MAX_ADMINS}}\",\r\n \"ServerFps\": \"{{server.build.env.FPS}}\",\r\n \"SaveName\": \"{{server.build.env.SAVE_NAME}}\",\r\n \"Password\": \"{{server.build.env.SERVER_PASSWORD}}\",\r\n \"Secure\": \"{{server.build.env.SERVER_SECURE}}\",\r\n \"ListOnMasterServer\": \"{{server.build.env.SERVER_LIST}}\",\r\n \"AutoSaveCount\": \"{{server.build.env.SAVE_COUNT}}\",\r\n \"AutoSaveInterval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"GameSettingsPreset\": \"{{server.build.env.GAME_SETTINGS_PRESET}}\",\r\n \"AdminOnlyDebugEvents\": \"{{server.build.env.ADMIN_ONLY_DEBUG_EVENTS}}\",\r\n \"DisableDebugEvents\": \"{{server.build.env.DEBUG_EVENTS}}\",\r\n \"Rcon.Enabled\": \"{{server.build.env.RCON}}\",\r\n \"Rcon.Password\": \"{{server.build.env.RCON_PASS}}\",\r\n \"Rcon.Port\": \"{{server.build.env.RCON_PORT}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Loaded ServerGameSettings\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}V Rising BepInex Installscript${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\n# Install game server using SteamCMD\r\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\necho -e \"${GREEN}...done${NC}\"\r\n\r\n\r\n# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Server Query Port", + "description": "UDP port for Steam server list features.", + "env_variable": "QUERY_PORT", + "default_value": "9877", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "Automatic Updates", + "description": "Quickly checks for any server updates on startup, and updates if necessary.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "Game Settings Preset", + "description": "What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty\/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~\/save-data\/Settings\/` directory.", + "env_variable": "GAME_SETTINGS_PRESET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server that will appear in the server list.", + "env_variable": "SERVER_NAME", + "default_value": "V Rising Dedicated Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Short description of server purpose, rules, and the message of the day.", + "env_variable": "DESCRIPTION", + "default_value": "Welcome to the server!", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Connected Users", + "description": "Max number of concurrent players on the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Max Connected Admins", + "description": "Max number of admins to allow connection even when the server is full.", + "env_variable": "MAX_ADMINS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Password required to join the server. Leave blank to have no password.", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "Name of save file \/ directory.", + "env_variable": "SAVE_NAME", + "default_value": "world1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Auto Save Count", + "description": "Number of autosaves to keep.", + "env_variable": "SAVE_COUNT", + "default_value": "50", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Auto Save Interval", + "description": "Interval in seconds between each autosave.", + "env_variable": "SAVE_INTERVAL", + "default_value": "600", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "List On Master Server", + "description": "Set to true to list on the server list, else set to false.", + "env_variable": "SERVER_LIST", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Repair] Validate Server Files", + "description": "Leave empty (no value) for OFF or type \"true\" or \"1\" for ON. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.", + "env_variable": "VALIDATE", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "[Advanced] Server FPS", + "description": "How often the server refreshes. (Default: 30)", + "env_variable": "FPS", + "default_value": "30", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "[Advanced] Enable RCON", + "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", + "env_variable": "RCON", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Password", + "description": "Password required to connect to RCON if it is enabled.", + "env_variable": "RCON_PASS", + "default_value": "somepassword", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Port", + "description": "Port used to connect to RCON. Must be allocated to the server for RCON to work.", + "env_variable": "RCON_PORT", + "default_value": "25575", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "[Advanced] Secure Server", + "description": "(true or false)", + "env_variable": "SERVER_SECURE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Admin Only Debug Events", + "description": "(true or false)", + "env_variable": "ADMIN_ONLY_DEBUG_EVENTS", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Disable Debug Events", + "description": "(true or false)", + "env_variable": "DEBUG_EVENTS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] V Rising Dedicated Server App ID", + "description": "Used for installation and updates. Rarely needs to be changed.", + "env_variable": "SRCDS_APPID", + "default_value": "1829350", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "[Advanced] Use Windows Branch", + "description": "Tells the installer\/updater to only download the Windows branch of the server (the only branch currently available) so that it can run on Wine. Cannot be changed.", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:1", + "field_type": "text" + }, + { + "name": "[Wine] WINEDEBUG", + "description": "dont change", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] WINEPATH", + "description": "dont change", + "env_variable": "WINEPATH", + "default_value": "\/home\/container", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] WINEARCH", + "description": "dont change", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] WINETRICKS_RUN", + "description": "dont change", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2019 dotnet48", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] XVFB", + "description": "dont change", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/v_rising/README.md b/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/README.md similarity index 100% rename from game_eggs/steamcmd_servers/v_rising/README.md rename to game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/README.md diff --git a/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json b/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json similarity index 100% rename from game_eggs/steamcmd_servers/v_rising/egg-v-rising.json rename to game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json From 838ad5fc125e445dc84af82cc3245aa2a1c774cd Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 14:01:38 +0100 Subject: [PATCH 018/110] missing 1 readme --- game_eggs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index ddbf3123..a1397d45 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -177,6 +177,8 @@ * [Euro Truck Simulator 2](steamcmd_servers/truck-simulator/euro-truck-simulator2/) * [Unturned](steamcmd_servers/unturned) * [V Rising](steamcmd_servers/v_rising) + * [V Rising Vanilla](steamcmd_servers/v_rising/v_rising_vanilla) + * [V Rising BepInex](steamcmd_servers/v_rising/v_rising_bepinex) * [Valheim](steamcmd_servers/valheim) * [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus) * [Valheim Vanilla](steamcmd_servers/valheim/valheim_vanilla) From 0a033d2888cc49d8ab5b81ab53c2c78e065ececb Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 14:46:57 +0100 Subject: [PATCH 019/110] removed lines --- .../egg-v-rising-bep-in-ex.json | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json index d76d07e1..c87ab7fc 100644 --- a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-15T13:46:55+01:00", + "exported_at": "2023-01-15T14:46:32+01:00", "name": "V Rising BepInEx", "author": "rehlmgaming@gmail.com", "description": "Awaken as a vampire. Hunt for blood in nearby settlements to regain your strength and evade the scorching sun to survive. Raise your castle and thrive in an ever-changing open world full of mystery. Gain allies online and conquer the land of the living.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}V Rising BepInex Installscript${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\n# Install game server using SteamCMD\r\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\necho -e \"${GREEN}...done${NC}\"\r\n\r\n\r\n# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\n\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\n# Install game server using SteamCMD\r\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------${NC}\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "\/bin\/bash" } @@ -251,8 +251,8 @@ "field_type": "text" }, { - "name": "[Wine] WINEDEBUG", - "description": "dont change", + "name": "WINEDEBUG", + "description": "", "env_variable": "WINEDEBUG", "default_value": "-all", "user_viewable": false, @@ -261,8 +261,8 @@ "field_type": "text" }, { - "name": "[Wine] WINEPATH", - "description": "dont change", + "name": "WINEPATH", + "description": "", "env_variable": "WINEPATH", "default_value": "\/home\/container", "user_viewable": false, @@ -271,18 +271,18 @@ "field_type": "text" }, { - "name": "[Wine] WINEARCH", - "description": "dont change", - "env_variable": "WINEARCH", - "default_value": "win64", + "name": "XVFB", + "description": "", + "env_variable": "XVFB", + "default_value": "1", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20", + "rules": "boolean", "field_type": "text" }, { - "name": "[Wine] WINETRICKS_RUN", - "description": "dont change", + "name": "WINETRICKS_RUN", + "description": "", "env_variable": "WINETRICKS_RUN", "default_value": "vcrun2019 dotnet48", "user_viewable": false, @@ -291,13 +291,13 @@ "field_type": "text" }, { - "name": "[Wine] XVFB", - "description": "dont change", - "env_variable": "XVFB", - "default_value": "1", + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", "user_viewable": false, "user_editable": false, - "rules": "boolean", + "rules": "required|string|max:20", "field_type": "text" } ] From 4f1b0b0cc4d93207bc215fa391cb3d7d2be73225 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 18 Jan 2023 15:46:15 +0100 Subject: [PATCH 020/110] among_us: Imposter server add support for 1.8.0 --- .../egg-among-us--impostor-server.json | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json index 876b4a19..f49ff629 100644 --- a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json +++ b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json @@ -1,17 +1,18 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-07-23T12:00:05+03:00", + "exported_at": "2023-01-18T15:43:34+01:00", "name": "Among Us - Impostor Server", "author": "info@goover.de", - "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThe latest version supported is 2022.4.19, both desktop and mobile.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", + "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", "features": null, - "images": [ - "ghcr.io/parkervcp/yolks:dotnet_6" - ], + "docker_images": { + "Dotnet_7": "ghcr.io\/parkervcp\/yolks:dotnet_7", + "Dotnet_6": "ghcr.io\/parkervcp\/yolks:dotnet_6" + }, "file_denylist": [], "startup": ".\/Impostor.Server", "config": { @@ -22,20 +23,21 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install wget curl jq unzip tar redis-server file ca-certificates apt-utils\r\nGITHUB_PACKAGE=Impostor\/Impostor\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\necho -e \"Latest release is $LATEST_RELEASE\"\r\nLATEST_VERSION_TAG=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\n# Remove the first letter v from the version tag that is not present in the download URL\r\nLATEST_VERSION=$(echo $LATEST_VERSION_TAG | cut -c 2-)\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$LATEST_VERSION\/Impostor-Server_${LATEST_VERSION}_linux-x64.tar.gz\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/Impostor-Server_${VERSION}_linux-x64.tar.gz\"\r\nfi\r\n\r\necho -e \"\\nDownloading from $DOWNLOAD_LINK\"\r\ncurl -L $DOWNLOAD_LINK -o Impostor-Server-linux-x64.tar.gz\r\n\r\ntar xvf Impostor-Server-linux-x64.tar.gz\r\nrm Impostor-Server-linux-x64.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=linux-x64\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH} | head -1)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from ${DOWNLOAD_LINK}\"\r\ncurl sSL -o imposter-server.tar.gz ${DOWNLOAD_LINK}\r\n\r\ntar xvf imposter-server.tar.gz\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, "variables": [ { "name": "Download Version", - "description": "Version to Download. Leave latest for the latest release.\r\n\r\nFind all releases at https:\/\/github.com\/Impostor\/Impostor\/releases", + "description": "Version to Download. Leave latest for the latest release.\r\n\r\nFind all releases at https:\/\/github.com\/Impostor\/Impostor\/releases\r\nNote: versions start with a v, example: v1.8.0", "env_variable": "VERSION", "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:30" + "rules": "required|string|max:30", + "field_type": "text" } ] } From 58b405d709a4b104ea3dca844a717decc869ef68 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 20 Jan 2023 13:25:32 +0100 Subject: [PATCH 021/110] added deprecated note --- game_eggs/steamcmd_servers/tower_unite/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/tower_unite/README.md b/game_eggs/steamcmd_servers/tower_unite/README.md index 06afcf0e..9c9c7432 100644 --- a/game_eggs/steamcmd_servers/tower_unite/README.md +++ b/game_eggs/steamcmd_servers/tower_unite/README.md @@ -1,6 +1,10 @@ # Tower Unite -Their desctiption: +## Attention !!!! + +**THIS EGG IS DEPRECATED, SINCE THEY REMOVED COMMUNITY SERVERS. ONLY OFFICIAL SERVERS ARE ALLOWED** + +## desctiption Every aspect of Tower Unite allows for online multiplayer interaction. It is a living and evolving online game world, driven by the community. Play games online with your friends, or make new friends from across the globe. ## Server Ports From e013699afc501efdbb93c00a001102baaa76a7ce Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 20 Jan 2023 13:26:27 +0100 Subject: [PATCH 022/110] Update README.md --- game_eggs/steamcmd_servers/tower_unite/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/tower_unite/README.md b/game_eggs/steamcmd_servers/tower_unite/README.md index 9c9c7432..3e72d0a0 100644 --- a/game_eggs/steamcmd_servers/tower_unite/README.md +++ b/game_eggs/steamcmd_servers/tower_unite/README.md @@ -1,7 +1,6 @@ # Tower Unite ## Attention !!!! - **THIS EGG IS DEPRECATED, SINCE THEY REMOVED COMMUNITY SERVERS. ONLY OFFICIAL SERVERS ARE ALLOWED** ## desctiption From d16aad63e65aca47e4d8cccf80108ccd84b72ced Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 21 Jan 2023 14:33:26 +0100 Subject: [PATCH 023/110] add uptime kuma --- README.md | 4 ++ software/uptime-kuma/README.md | 25 +++++++ software/uptime-kuma/egg-uptime-kuma.json | 82 +++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 software/uptime-kuma/README.md create mode 100644 software/uptime-kuma/egg-uptime-kuma.json diff --git a/README.md b/README.md index 9ab66f8e..fd79355d 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Reposilite](/software/reposilite) +### Uptime Kuma + +* [Uptime Kuma](/software/uptime-kuma) + ### Yarr * [yarr](/software/yarr) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md new file mode 100644 index 00000000..f07fa488 --- /dev/null +++ b/software/uptime-kuma/README.md @@ -0,0 +1,25 @@ +# Uptime Kuma + +## Author & Contributers +| Name | Github Profile | Buy me a Coffee | +| ------------- |-------------|-------------| +| gOOvER | https://github.com/gOOvER | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B351D0Q) | + +## Description +Uptime Kuma is an easy-to-use self-hosted monitoring tool +Egg is based on parkers generic nodejs egg + +## Links +Github: https://github.com/louislam/uptime-kuma + +## Admin & login + +After installation and successful start, browse to your : and setup the Admin. + +## Server Ports + +Uptime Kuma requires 1 port. You can choose every port you want + +| Port | default | +|---------|---------------| +| default | 3000 | diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json new file mode 100644 index 00000000..4f66fd78 --- /dev/null +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -0,0 +1,82 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-21T14:27:28+01:00", + "name": "Uptime Kuma", + "author": "info@goover.de", + "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14" + }, + "file_denylist": [], + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"[SERVER] INFO: Listening on \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# NodeJS App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\necho -e \"install complete\"\r\nexit 0", + "container": "node:14-bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Git Repo Address", + "description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name", + "env_variable": "GIT_ADDRESS", + "default_value": "https:\/\/github.com\/louislam\/uptime-kuma", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Pull the latest files on startup when using a GitHub repo.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "JS file", + "description": "The file that starts the app", + "env_variable": "JS_FILE", + "default_value": "server\/server.js", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Additional Node packages", + "description": "Install additional node packages.\r\n\r\nUse spaces to separate.", + "env_variable": "NODE_PACKAGES", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Uninstall Node packages", + "description": "Uninstall node packages.\r\n\r\nUse spaces to separate.", + "env_variable": "UNNODE_PACKAGES", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + } + ] +} \ No newline at end of file From 26a7797250cce1d80bbb3f6394758a8f7e72fc91 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 21 Jan 2023 17:04:49 +0100 Subject: [PATCH 024/110] update readme for CF Tunnel --- software/uptime-kuma/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index f07fa488..a56eeee0 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -13,9 +13,16 @@ Egg is based on parkers generic nodejs egg Github: https://github.com/louislam/uptime-kuma ## Admin & login - After installation and successful start, browse to your : and setup the Admin. +## Integrated Cloudflare Tunnel service +If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contakt me on Discord for the Image: + +gOOvER#9999 + +More infos: +https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel + ## Server Ports Uptime Kuma requires 1 port. You can choose every port you want From fd5b3c266cd6ad26e0bf5048c2f315775ce94565 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 21 Jan 2023 17:10:10 +0100 Subject: [PATCH 025/110] typo --- software/uptime-kuma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index a56eeee0..a82afad0 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -16,7 +16,7 @@ Github: https://github.com/louislam/uptime-kuma After installation and successful start, browse to your : and setup the Admin. ## Integrated Cloudflare Tunnel service -If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contakt me on Discord for the Image: +If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contact me on Discord for the Image: gOOvER#9999 From bab6aabe00143d60b3b85cc8db63e8adbc40edf6 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 22 Jan 2023 09:34:26 +0100 Subject: [PATCH 026/110] switch to nodejs16 --- software/uptime-kuma/egg-uptime-kuma.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index 4f66fd78..a8ac9570 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-21T14:27:28+01:00", + "exported_at": "2023-01-22T09:33:11+01:00", "name": "Uptime Kuma", "author": "info@goover.de", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14" + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16" }, "file_denylist": [], "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}", @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# NodeJS App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "node:14-bullseye-slim", + "script": "#!\/bin\/bash\r\n# NodeJS App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", + "container": "node:16-bullseye-slim", "entrypoint": "bash" } }, From 71c93652a698db7d28447d11b1af64d977cf0252 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Thu, 26 Jan 2023 18:21:16 +0100 Subject: [PATCH 027/110] switch image --- software/gitea/egg-gitea.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index 650dda66..cd140ac5 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-23T18:11:52+01:00", + "exported_at": "2023-01-26T18:20:19+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", - "container": "ghcr.io\/parkervcp\/installers:debian", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, From 81c4de18ab14d8438cf3d649d851e713de94978e Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 12:15:45 +0100 Subject: [PATCH 028/110] add: server startup password as variable --- .../teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index 975baecb..1f6cf47e 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:box64": "ghcr.io\/parkervcp\/yolks:box64" }, "file_denylist": [], - "startup": "box64 .\/ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} license_accepted=1", + "startup": "box64 .\/ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} serveradmin_password={{SERVERADMIN_PASSWORD}} license_accepted=1", "config": { "files": "{}", "startup": "{\r\n \"done\": \"listening on 0.0.0.0:\"\r\n}", @@ -28,6 +28,16 @@ } }, "variables": [ + { + "name": "Server Query Admin Password", + "description": "The password for the server query admin user.", + "env_variable": "SERVERADMIN_PASSWORD", + "default_value": "changeme", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, { "name": "Server Version", "description": "The version of Teamspeak 3 to use when running the server.", From 13368cea3375f3bad7f0c05a45cd8f24cd5710a6 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 27 Jan 2023 16:50:37 +0100 Subject: [PATCH 029/110] removed cloudflare Tunnel --- software/uptime-kuma/README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index a82afad0..3ba818df 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -15,14 +15,6 @@ Github: https://github.com/louislam/uptime-kuma ## Admin & login After installation and successful start, browse to your : and setup the Admin. -## Integrated Cloudflare Tunnel service -If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contact me on Discord for the Image: - -gOOvER#9999 - -More infos: -https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel - ## Server Ports Uptime Kuma requires 1 port. You can choose every port you want From 2ea8c33d4ef5e70e1b61527ea36a98aa08812bea Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Fri, 27 Jan 2023 10:47:30 -0800 Subject: [PATCH 030/110] Add SFTP Storage Share Egg - Added egg - Added README - Updated directory README --- README.md | 4 ++ storage/sftp_storage_share/README.md | 40 +++++++++++++++++++ .../egg-sftp-storage-share.json | 13 +++--- 3 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 storage/sftp_storage_share/README.md diff --git a/README.md b/README.md index fd79355d..4adacb26 100644 --- a/README.md +++ b/README.md @@ -323,6 +323,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [minio](/storage/minio) +### SFTP Storage Share ("Empty Egg") + +* [SFTP Storage Share](/storage/sftp_storage_share) + ## [Software](/software/) ### Code Server diff --git a/storage/sftp_storage_share/README.md b/storage/sftp_storage_share/README.md new file mode 100644 index 00000000..1a6fdc52 --- /dev/null +++ b/storage/sftp_storage_share/README.md @@ -0,0 +1,40 @@ +# SFTP Storage Share + +### Authors / Contributors + + + + + + + +
+ +
Red-Thirten +
+
+ 💻 + 🔨 +
+ + + +___ + +### Description + +A simple "empty" egg that acts as a private SFTP storage share by utilizing Pterodactyl's built in SFTP system for servers. Sub-users can be added to the server by the owner to allow additional people to access the share. "Starting" the server performs no actions and it should be left off. + +You can access the SFTP server using your favorite SFTP client and the SFTP login information found under the "Settings" tab of the server. + +___ + +### Server Ports + +Pterodactyl may force you to assign a port to the server but it will not be used and can be any port. The only port that will be used will be the SFTP port assigned to the node the server is running on. + +___ + +### Known Issues + +- Pterodactyl currently does not enforce server storage size when the server is not running. Therefore, because this "server" does not run, the Disk Space setting when creating the server will not be enforced and caution should be used when deploying this solution to un-trusted end-users. diff --git a/storage/sftp_storage_share/egg-sftp-storage-share.json b/storage/sftp_storage_share/egg-sftp-storage-share.json index 34b67947..26382219 100644 --- a/storage/sftp_storage_share/egg-sftp-storage-share.json +++ b/storage/sftp_storage_share/egg-sftp-storage-share.json @@ -1,16 +1,17 @@ { - "_comment": "Pterodactyl SFTP Storage Share Egg ~ David Wolfe (Red-Thirten) ~ 2022-03-14", + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, + "exported_at": "2023-01-27T18:29:17+00:00", "name": "SFTP Storage Share", "author": "rehlmgaming@gmail.com", "description": "A simple \"empty\" egg that acts as a private SFTP storage share by utilizing Pterodactyl's built in SFTP system for servers. Sub-users can be added to the server by the owner to allow additional people to access the share. \"Starting\" the server performs no actions and it should be left off.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:alpine" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:alpine": "ghcr.io\/parkervcp\/yolks:alpine" + }, "file_denylist": [], "startup": "echo -e \"\\n\\n\\033[0;31mThere is no need to start this server. The SFTP service is always running. Feel free to stop the server now.\\n\\t\\033[0;36m(Sub-users can be added via the Users tab to add\/remove access to the share in real time)\\n\\n\"", "config": { @@ -21,7 +22,7 @@ }, "scripts": { "installation": { - "script": null, + "script": "# Pterodactyl SFTP Storage Share Egg ~ David Wolfe (Red-Thirten) ~ 2023-01-27", "container": "alpine:3.4", "entrypoint": "ash" } From b31d7288dcb7d83a138f8cd5b76bbf5bb5ebcebf Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 27 Jan 2023 20:19:52 +0100 Subject: [PATCH 031/110] added npm update to prevent errors --- generic/nodejs/egg-node-js-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index 4d525ceb..5b5dc27e 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-16T13:45:09+02:00", + "exported_at": "2023-01-27T20:19:13+01:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", @@ -27,7 +27,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# NodeJS App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", + "script": "#!\/bin\/bash\r\n# NodeJS App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\necho -e \"updating npm. please wait...\"\r\nnpm install npm@latest -g\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "node:14-buster-slim", "entrypoint": "bash" } From 1eb8b8929d3d5835b1939bee47601936b68d7a61 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 21:45:22 +0100 Subject: [PATCH 032/110] changed the password rule from required to nullable --- voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index 1f6cf47e..8d74bb7a 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -35,7 +35,7 @@ "default_value": "changeme", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32", + "rules": "nullable|string|max:32", "field_type": "text" }, { From 5b462c28f8ebaf174d7a66370f31a3c8e4d3f9c2 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 22:12:50 +0100 Subject: [PATCH 033/110] remove default value --- voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index 8d74bb7a..3cb31542 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -32,7 +32,7 @@ "name": "Server Query Admin Password", "description": "The password for the server query admin user.", "env_variable": "SERVERADMIN_PASSWORD", - "default_value": "changeme", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "nullable|string|max:32", From e84db802876c692949333f7b791462d54d17df9a Mon Sep 17 00:00:00 2001 From: Green <77177015+GreenDiscord@users.noreply.github.com> Date: Fri, 27 Jan 2023 21:26:29 +0000 Subject: [PATCH 034/110] Adds support for steam accounts, Added due to the fact that some hlds depenendent games require the user to log into an account --- .../egg-custom-re-h-l-d-s-engine-game.json | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index d54856d7..4a30885e 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-19T16:26:34+11:00", + "exported_at": "2023-01-27T22:24:50+01:00", "name": "Custom ReHLDS Engine Game", "author": "shigbeard@ndlee.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel, substituting the official Valve engine binaries with the ReHLDS binaries.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} +app_set_config 90 mod ${HLDS_GAME} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -Ei ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -Ei ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -89,6 +89,36 @@ "user_editable": false, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "Steam Username", + "description": "Username associated wanted to be used. Not needed.", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Password", + "description": "Steam Password for account.", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Auth", + "description": "Steam authenticator code for the account", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] -} \ No newline at end of file +} From bdafec5f1e3a68be86d224e3472d19f6c01598d0 Mon Sep 17 00:00:00 2001 From: Green <77177015+GreenDiscord@users.noreply.github.com> Date: Fri, 27 Jan 2023 22:04:09 +0000 Subject: [PATCH 035/110] Update egg-custom-re-h-l-d-s-engine-game.json --- .../hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index 4a30885e..460886eb 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-27T22:24:50+01:00", + "exported_at": "2023-01-27T23:04:00+01:00", "name": "Custom ReHLDS Engine Game", "author": "shigbeard@ndlee.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel, substituting the official Valve engine binaries with the ReHLDS binaries.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -Ei ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nif [ \"${STEAM_USER}\" == \"\" ] || [ \"${STEAM_PASS}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -Ei ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", "container": "ubuntu:18.04", "entrypoint": "bash" } From efe282f729a442c3a84b865e8a7289483bb01c80 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 23:45:30 +0100 Subject: [PATCH 036/110] Removed dead link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd79355d..12f6e8a0 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [Minetest](game_eggs/minetest) (including MTG) -* [Minetest](game_eggs/minetest/minetest) +* [Minetest](game_eggs/minetest) [Minecraft](game_eggs/minecraft) From a423a1c02cad17d1b173bd5c45919558366d6dd0 Mon Sep 17 00:00:00 2001 From: Loki <59907407+Loki-101@users.noreply.github.com> Date: Fri, 27 Jan 2023 23:52:10 -0800 Subject: [PATCH 037/110] Add Python 11 Yolk (#2100) Python: Add Python 11 image --- generic/python/egg-python-generic.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generic/python/egg-python-generic.json b/generic/python/egg-python-generic.json index 06fd6dd3..deb33f8d 100644 --- a/generic/python/egg-python-generic.json +++ b/generic/python/egg-python-generic.json @@ -4,12 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-28T13:21:01-05:00", + "exported_at": "2023-01-27T23:37:50-08:00", "name": "python generic", "author": "parker@parkervcp.com", "description": "A Generic Python Egg for Pterodactyl\r\n\r\nTested with: https:\/\/github.com\/Ispira\/pixel-bot", "features": null, "docker_images": { + "Python 3.11": "ghcr.io\/parkervcp\/yolks:python_3.11", "Python 3.10": "ghcr.io\/parkervcp\/yolks:python_3.10", "Python 3.9": "ghcr.io\/parkervcp\/yolks:python_3.9", "Python 3.8": "ghcr.io\/parkervcp\/yolks:python_3.8", From f8cc420adefcbabd00ef717357781fcb64aed98e Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 28 Jan 2023 11:38:48 +0100 Subject: [PATCH 038/110] Update egg-the-forest.json --- .../the_forest/egg-the-forest.json | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json b/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json index f0b2f4a8..f0249938 100644 --- a/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json +++ b/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-08-08T17:51:35+02:00", + "exported_at": "2023-01-28T11:38:05+01:00", "name": "The Forest", "author": "admin@softwarenoob.com", "description": "As the lone survivor of a passenger jet crash, you find yourself in a mysterious forest battling to stay alive against a society of cannibalistic mutants. Build, explore, survive in this terrifying first-person survival horror simulator.", @@ -15,16 +15,16 @@ "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], - "startup": "winetricks sound=disabled; export WINEDEBUG=-all; xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine64 \/home\/container\/TheForestDedicatedServer.exe -batchmode -nographics -nosteamclient -savefolderpath \/home\/container\/TheForestDedicatedServer_Data -configfilepath \/home\/container\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg |grep -v 'RenderTexture.Create failed: format unsupported - 2.'", + "startup": "winetricks sound=disabled; xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine .\/TheForestDedicatedServer.exe -batchmode -nographics -nosteamclient -savefolderpath \/home\/container\/TheForestDedicatedServer_Data -configfilepath \/home\/container\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg |grep -v 'RenderTexture.Create failed: format unsupported - 2.'", "config": { "files": "{\r\n \"\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"serverIP\": \"serverIP 0.0.0.0\",\r\n \"serverSteamPort\": \"serverSteamPort {{server.build.env.STEAM_PORT}}\",\r\n \"serverGamePort\": \"serverGamePort {{server.build.default.port}}\",\r\n \"serverQueryPort\": \"serverQueryPort {{server.build.env.QUERY_PORT}}\",\r\n \"serverName\": \"serverName {{server.build.env.SERVER_NAME}}\",\r\n \"serverPlayers\": \"serverPlayers {{server.build.env.MAX_PLAYERS}}\",\r\n \"serverPassword\": \"serverPassword {{server.build.env.SERVER_PASS}}\",\r\n \"serverPasswordAdmin\": \"serverPasswordAdmin {{server.build.env.ADMIN_PASS}}\",\r\n \"serverSteamAccount\": \"serverSteamAccount {{server.build.env.STEAM_ACC}}\",\r\n \"enableVAC\": \"enableVAC {{server.build.env.VAC}}\",\r\n \"difficulty\": \"difficulty {{server.build.env.SERVER_DIFFICULTY}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Game autosave started\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\napt -y --no-install-recommends install libstdc++6 lib32gcc-s1 ca-certificates\r\n\r\nexport WINEARCH=win64\r\nexport WINEPREFIX=\/home\/container\/.wine64\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## Install game using steamcmd\r\n.\/steamcmd.sh +login anonymous +@sSteamCmdForcePlatformType windows +force_install_dir \/mnt\/server +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Configure wine and server startup config\r\nmkdir -p \/home\/container\/.wine64\r\nexport WINEARCH=win64\r\nexport WINEPREFIX=\/home\/container\/.wine64\r\n\r\n## Create Config\r\n\r\nmkdir -p $HOME\/TheForestDedicatedServer_Data\/forest\/config\/\r\n#rm -fR $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\ncat < $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\n\/\/ Dedicated Server Settings.\r\n\/\/ Server IP address - Note: If you have a router, this address is the internal address, and you need to configure ports forwarding, append the current game port here as well\r\nserverIP\r\n\/\/ Steam Communication Port - Note: If you have a router you will need to open this port.\r\nserverSteamPort\r\n\/\/ Game Communication Port - Note: If you have a router you will need to open this port.\r\nserverGamePort\r\n\/\/ Query Communication Port - Note: If you have a router you will need to open this port.\r\nserverQueryPort\r\n\/\/ Server display name\r\nserverName\r\n\/\/ Maximum number of players\r\nserverPlayers 5\r\n\/\/ Server password. blank means no password\r\nserverPassword\r\n\/\/ Server administration password. blank means no password\r\nserverPasswordAdmin\r\n\/\/ Your Steam account name. blank means anonymous (see Steam server account bellow)\r\nserverSteamAccount\r\n\/\/ Enable VAC (Valve Anti Cheat) on the server. off by default, uncomment to enable\r\nenableVAC on\r\n\/\/ Time between server auto saves in minutes\r\nserverAutoSaveInterval 15\r\n\/\/ Game difficulty mode. Must be set to \"Peaceful\" \"Normal\" or \"Hard\"\r\ndifficulty Normal\r\n\/\/ New or continue a game. Must be set to \"New\" or \"Continue\"\r\ninitType New\r\n\/\/ Slot to save the game. Must be set 1 2 3 4 or 5\r\nslot 1\r\n\/\/ Show event log. Must be set \"off\" or \"on\"\r\nshowLogs off\r\n\/\/ Contact email for server admin\r\nserverContact email@gmail.com\r\n\/\/ No enemies. Must be set to \"on\" or \"off\"\r\nveganMode off\r\n\/\/ No enemies during day time. Must be set to \"on\" or \"off\"\r\nvegetarianMode off\r\n\/\/ Reset all structure holes when loading a save. Must be set to \"on\" or \"off\"\r\nresetHolesMode off\r\n\/\/ Regrow 10% of cut down trees when sleeping. Must be set to \"on\" or \"off\"\r\ntreeRegrowMode off\r\n\/\/ Allow building destruction. Must be set to \"on\" or \"off\"\r\nallowBuildingDestruction on\r\n\/\/ Allow enemies in creative games. Must be set to \"on\" or \"off\"\r\nallowEnemiesCreativeMode off\r\n\/\/ Allow clients to use the built in development console. Must be set to \"on\" or \"off\"\r\nallowCheats off\r\n\/\/ Allows defining a custom folder for save slots, leave empty to use the default location\r\nsaveFolderPath\r\n\/\/ Target FPS when no client is connected\r\ntargetFpsIdle 5\r\n\/\/ Target FPS when there is at least one client connected\r\ntargetFpsActive 60\r\nEOT", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## Create Config\r\n\r\nmkdir -p $HOME\/TheForestDedicatedServer_Data\/forest\/config\/\r\n#rm -fR $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\ncat < $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\n\/\/ Dedicated Server Settings.\r\n\/\/ Server IP address - Note: If you have a router, this address is the internal address, and you need to configure ports forwarding, append the current game port here as well\r\nserverIP\r\n\/\/ Steam Communication Port - Note: If you have a router you will need to open this port.\r\nserverSteamPort\r\n\/\/ Game Communication Port - Note: If you have a router you will need to open this port.\r\nserverGamePort\r\n\/\/ Query Communication Port - Note: If you have a router you will need to open this port.\r\nserverQueryPort\r\n\/\/ Server display name\r\nserverName\r\n\/\/ Maximum number of players\r\nserverPlayers 5\r\n\/\/ Server password. blank means no password\r\nserverPassword\r\n\/\/ Server administration password. blank means no password\r\nserverPasswordAdmin\r\n\/\/ Your Steam account name. blank means anonymous (see Steam server account bellow)\r\nserverSteamAccount\r\n\/\/ Enable VAC (Valve Anti Cheat) on the server. off by default, uncomment to enable\r\nenableVAC on\r\n\/\/ Time between server auto saves in minutes\r\nserverAutoSaveInterval 15\r\n\/\/ Game difficulty mode. Must be set to \"Peaceful\" \"Normal\" or \"Hard\"\r\ndifficulty Normal\r\n\/\/ New or continue a game. Must be set to \"New\" or \"Continue\"\r\ninitType New\r\n\/\/ Slot to save the game. Must be set 1 2 3 4 or 5\r\nslot 1\r\n\/\/ Show event log. Must be set \"off\" or \"on\"\r\nshowLogs off\r\n\/\/ Contact email for server admin\r\nserverContact email@gmail.com\r\n\/\/ No enemies. Must be set to \"on\" or \"off\"\r\nveganMode off\r\n\/\/ No enemies during day time. Must be set to \"on\" or \"off\"\r\nvegetarianMode off\r\n\/\/ Reset all structure holes when loading a save. Must be set to \"on\" or \"off\"\r\nresetHolesMode off\r\n\/\/ Regrow 10% of cut down trees when sleeping. Must be set to \"on\" or \"off\"\r\ntreeRegrowMode off\r\n\/\/ Allow building destruction. Must be set to \"on\" or \"off\"\r\nallowBuildingDestruction on\r\n\/\/ Allow enemies in creative games. Must be set to \"on\" or \"off\"\r\nallowEnemiesCreativeMode off\r\n\/\/ Allow clients to use the built in development console. Must be set to \"on\" or \"off\"\r\nallowCheats off\r\n\/\/ Allows defining a custom folder for save slots, leave empty to use the default location\r\nsaveFolderPath\r\n\/\/ Target FPS when no client is connected\r\ntargetFpsIdle 5\r\n\/\/ Target FPS when there is at least one client connected\r\ntargetFpsActive 60\r\nEOT\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -149,6 +149,26 @@ "user_editable": true, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "[SYSTEM] WINEDEBUG", + "description": "don't change this !!!", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 58c023b6276784724099370f570a80357e00b08f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 28 Jan 2023 11:50:23 +0100 Subject: [PATCH 039/110] cleanup Iosocer --- .../iosoccer/eggs-iosoccer.json | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json index 0936c2a4..70321271 100644 --- a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json +++ b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json @@ -1,30 +1,30 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-02-20T01:24:34+01:00", - "name": "IOSOCER-server", + "exported_at": "2023-01-28T11:45:54+01:00", + "name": "Iosoccer server", "author": "hyperbeats@raptorhost.fr", "description": "SERVER IOSOCCER", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], - "startup": ".\/srcds_run -console -game iosoccer -condebug -port {{SERVER_PORT}} +maxplayers {{SLOTS}} +fps_max {{MAX_FPS}} -tickrate {{TICKRATE}} +map {{MAP}} +rcon_password {{RCON}}", + "startup": ".\/srcds_run -console -game iosoccer -condebug -port {{SERVER_PORT}} +maxplayers {{SLOTS}} +fps_max {{MAX_FPS}} -tickrate {{TICKRATE}} +map {{MAP}} +rcon_password {{RCON}} +ip 0.0.0.0", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\"\r\n}", + "logs": "{}", "stop": "quit" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,8 @@ "default_value": "673990", "user_viewable": true, "user_editable": false, - "rules": "required|regex:\/^(673990)$\/" + "rules": "required|in:673990", + "field_type": "text" }, { "name": "MAP", @@ -46,7 +47,8 @@ "default_value": "8v8_vienna", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:32", + "field_type": "text" }, { "name": "SLOTS", @@ -55,7 +57,8 @@ "default_value": "32", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "TICKRATE", @@ -64,7 +67,8 @@ "default_value": "100", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "MAX FPS", @@ -73,16 +77,28 @@ "default_value": "500", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|integer", + "field_type": "text" }, { - "name": "RCON", + "name": "RCON password", "description": "", "env_variable": "RCON", - "default_value": "pleasechangepassword", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on start", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" } ] -} +} \ No newline at end of file From 6be210e431d5b8ae9c31c513f8c77f22f54d9d99 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 28 Jan 2023 11:56:40 +0100 Subject: [PATCH 040/110] Iosoccer add basic readme --- README.md | 3 ++- game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 ++++ game_eggs/steamcmd_servers/iosoccer/readme.md | 15 +++++++++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 game_eggs/steamcmd_servers/iosoccer/readme.md diff --git a/README.md b/README.md index 58fbc2d9..502b9570 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Holdfast: Nations At War](game_eggs/steamcmd_servers/holdfast) * [Hurtworld](game_eggs/steamcmd_servers/hurtworld) * [Insurgency: Sandstorm](game_eggs/steamcmd_servers/insurgency_sandstorm) +* [iosoccer](game_eggs/steamcmd_servers/iosoccer) * [Killing Floor 2](game_eggs/steamcmd_servers/killing_floor_2) * [Left 4 Dead](game_eggs/steamcmd_servers/left4dead) * [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2) @@ -243,7 +244,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) -* [iosoccer](game_eggs/steamcmd_servers/iosoccer) + [Teeworlds](game_eggs/teeworlds) diff --git a/game_eggs/README.md b/game_eggs/README.md index 1a62e6e1..97fb4d06 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -123,6 +123,7 @@ * [Holdfast: Nations At War](steamcmd_servers/holdfast) * [Hurtworld](steamcmd_servers/hurtworld) * [Insurgency: Sandstorm](steamcmd_servers/insurgency_sandstorm) +* [iosoccer](steamcmd_servers/iosoccer) * [Killing Floor 2](steamcmd_servers/killing_floor_2) * [Left 4 Dead](steamcmd_servers/left4dead) * [Left 4 Dead 2](steamcmd_servers/left4dead_2) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index d6085c8a..ef440c33 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -72,6 +72,10 @@ This is a collection of servers that use SteamCMD to install. [Insurgency: Sandstorm](insurgency_sandstorm) +## Iosoccer + +[iosoccer](iosoccer) + ## Killing Floor 2 [Killing Floor 2](killing_floor_2) diff --git a/game_eggs/steamcmd_servers/iosoccer/readme.md b/game_eggs/steamcmd_servers/iosoccer/readme.md new file mode 100644 index 00000000..6f78cfb5 --- /dev/null +++ b/game_eggs/steamcmd_servers/iosoccer/readme.md @@ -0,0 +1,15 @@ +# Iosoccer + +## [Steam](https://store.steampowered.com/app/673560/IOSoccer/) + + +IOSoccer is a free non-commercial competitive third-person online multiplayer soccer game that offers unparalleled freedom in ball control and gameplay depth + +## Server Ports + +These are the servers required ports + +| Port | default | +|---------|---------| +| Game | 27015 | + From 801db63fba2c595c8d787c66b5955bc9a2176de3 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 28 Jan 2023 14:28:53 +0100 Subject: [PATCH 041/110] Update egg-7-days-to-die.json --- .../7_days_to_die/egg-7-days-to-die.json | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 81309ccc..5bdda6f0 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -1,19 +1,19 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-12-22T12:58:29+01:00", + "exported_at": "2023-01-28T14:28:16+01:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=${TELNET_PORT} -TelnetPassword=${PASSWORD} -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 ${TELNET_PORT}; do echo \"Waiting for telnet connection...\"; sleep 5; done && $( [[ -z ${PASSWORD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\" || printf %s \"rcon -t telnet -a 127.0.0.1:${TELNET_PORT} -p {{PASSWORD}}\" )", "config": { @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# 7 days to die Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit \r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,8 @@ "default_value": "8", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Game Difficulty", @@ -46,7 +47,8 @@ "default_value": "2", "user_viewable": true, "user_editable": true, - "rules": "required|integer|between:0,5" + "rules": "required|integer|between:0,5", + "field_type": "text" }, { "name": "Source AppID", @@ -55,7 +57,8 @@ "default_value": "294420", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Auto Update", @@ -64,7 +67,8 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" }, { "name": "ld lib path", @@ -73,7 +77,8 @@ "default_value": ".", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Beta Branch", @@ -82,7 +87,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Telnet Password", @@ -91,7 +97,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:30" + "rules": "nullable|string|max:30", + "field_type": "text" }, { "name": "Telnet Port", @@ -100,7 +107,8 @@ "default_value": "8081", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 62f070e2f7a2342ff820405c58a8f09d2c181728 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 28 Jan 2023 14:58:19 -0500 Subject: [PATCH 042/110] update contribution and pr docs Update contributing.md update pull_request_template.md --- .github/pull_request_template.md | 4 ++- CONTRIBUTING.md | 48 +++++++++++++++++++------------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 417c9009..45b0e976 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,9 +4,11 @@ ## Checklist for all submissions - + * [ ] Have you followed the guidelines in our [Contributing document](https://github.com/parkervcp/eggs/blob/master/CONTRIBUTING.md)? +* [ ] You verify that the start command applied does not use a shell script + * [ ] If some script is needed then it is part of a current yolk or a PR to add one * [ ] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change? * [ ] Have you tested and reviewed your changes with confidence that everything works? * [ ] Did you branch your changes and PR from that branch and not from your master branch? diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 783aad05..6d5a6a10 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,17 +4,25 @@ You can contribute by either creating a new pull request or testing [existing pu ## General rules for eggs -1. Keep it simple. +1. Don't be afraid to submit PR's to the egg repo. + I don't bite. I will work with you on the egg and the required things to run it. Feel free to open a draft PR if you don't quite have the egg finished yet by yourself. + +2. Keep it secure. + No start scripts that a user can edit. + If a start script is needed it should be part of a yolk. + +3. Keep it simple. We don't need 8 miles of the install script. -2. Keep it small. - Only use what is absolutely needed. The [Yolks install images](https://github.com/parkervcp/yolks#installation-images) already contain the most basic packages that speeds up the installation process. +4. Keep it small. + Only use what is absolutely needed. The [yolks install images](https://github.com/parkervcp/yolks#installation-images) already contain the most basic packages that speeds up the installation process. -3. Use the stock images. +5. Use the stock images. If you need something in an image, open a PR in [my yolks repo](https://github.com/parkervcp/yolks) where it can be reviewed and built. Self-hosted or third-party images won't be accepted for security reasons. -4. Don't be afraid to submit PR's to the egg repo. - I don't bite. I will work with you on the egg and the required things to run it. Feel free to open a draft PR if you don't quite have the egg finished yet by yourself. +6. Export eggs from the panel + We ask that you use the panel to manage and export eggs. + This keeps the egg format correctly ### Sources for working on a new egg @@ -31,30 +39,30 @@ We have a collection of [existing install script snippets](https://github.com/pa The Pterodactyl install process is fairly simple once you know it. ```md - 1. Spin up install container - Creates a new container using an install image that's run as root. - Uses a volume mount on `/mnt/server` for the server files, which is the working directory during installation. - The volume will be later mounted as `/home/container` for the server container. Any files outside of `/mnt/server` will be gone after installation. - Install script can pull files or set up all that is needed to run the server, such as writing files, directories or compiling apps. - It is regularly used to just download the files required. Such as server files and configs. +1. Spin up install container + Creates a new container using an install image that's run as root. + Uses a volume mount on `/mnt/server` for the server files, which is the working directory during installation. + The volume will be later mounted as `/home/container` for the server container. Any files outside of `/mnt/server` will be gone after installation. + Install script can pull files or set up all that is needed to run the server, such as writing files, directories or compiling apps. + It is regularly used to just download the files required. Such as server files and configs. - 2. Stop and destroy install container +2. Stop and destroy install container - 3. Start a new container with the server files in /home/container - This is where the server is actually run. No root privileges. - Any dependencies installed during the install process are gone. - The container that is started should have everything you need. - No packages can be installed. Any required dependencies must exist in the used Docker image. +3. Start a new container with the server files in /home/container + This is where the server is actually run. No root privileges. + Any dependencies installed during the install process are gone. + The container that is started should have everything you need. + No packages can be installed. Any required dependencies must exist in the used Docker image. ``` ## Step 2 ### Testing -Make sure your install process is rock solid as I will be testing eggs before they ever hit my repo. +Make sure your install process is rock solid as eggs will be tested before they are merged. -I will make suggestions and changes at will. +Suggestions and changes will be made at will. This is to maintain a clean repo that others can pull and be fully aware of what is being done. ## Step 3 From 67f4e74b7ff0096ffa829796c85a580de24c83ab Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 28 Jan 2023 16:11:56 -0500 Subject: [PATCH 043/110] reorganize pull req template move start command and export message for updating an egg Add start command and export message for adding a new egg --- .github/pull_request_template.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 45b0e976..c6f9007d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -7,13 +7,17 @@ * [ ] Have you followed the guidelines in our [Contributing document](https://github.com/parkervcp/eggs/blob/master/CONTRIBUTING.md)? -* [ ] You verify that the start command applied does not use a shell script - * [ ] If some script is needed then it is part of a current yolk or a PR to add one * [ ] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change? * [ ] Have you tested and reviewed your changes with confidence that everything works? * [ ] Did you branch your changes and PR from that branch and not from your master branch? * If not, why?: + + +* [ ] You verify that the start command applied does not use a shell script + * [ ] If some script is needed then it is part of a current yolk or a PR to add one +* [ ] The egg was exported from the panel + ## New egg Submissions @@ -24,3 +28,6 @@ * [ ] Did you PR the necessary changes to make it work? 3. [ ] Have you added the egg to the main README.md and any other README files in subdirectories of the egg (e.g /game_eggs) according to the alphabetical order? 4. [ ] Have you added a unique README.md for the egg you are adding according to the alphabetical order? +5. [ ] You verify that the start command applied does not use a shell script + * [ ] If some script is needed then it is part of a current yolk or a PR to add one +6. [ ] The egg was exported from the panel \ No newline at end of file From c4f3aba246b2034cf42214003dff8aebbbb6278d Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 09:39:36 +0100 Subject: [PATCH 044/110] add Valheim BepInEx --- README.md | 1 + game_eggs/README.md | 3 +- game_eggs/steamcmd_servers/README.md | 1 + .../valheim/valheim_bepinex/README.md | 36 ++++ .../egg-valheim-bep-i-nex.json | 184 ++++++++++++++++++ 5 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md create mode 100644 game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json diff --git a/README.md b/README.md index 12f6e8a0..c9d4954e 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [V Rising](game_eggs/steamcmd_servers/v_rising) * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) + * [Valheim BepInEx](game_eggs/steamcmd_servers/valheim/valheim_bepinex) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) [Teeworlds](game_eggs/teeworlds) diff --git a/game_eggs/README.md b/game_eggs/README.md index 0851d96a..08719f1e 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -179,8 +179,9 @@ * [Unturned](steamcmd_servers/unturned) * [V Rising](steamcmd_servers/v_rising) * [Valheim](steamcmd_servers/valheim) - * [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus) * [Valheim Vanilla](steamcmd_servers/valheim/valheim_vanilla) + * [Valheim BepInEx](steamcmd_servers/valheim/valheim_bepinex) + * [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus) [Teeworlds](teeworlds) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index fb039375..f3804959 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -238,4 +238,5 @@ This is a collection of servers that use SteamCMD to install. [Valheim](valheim) * [Valheim Vanilla](valheim/valheim_vanilla) + * [Valheim BepInEx](valheim/valheim_bepinex) * [Valheim Plus Mod](valheim/valheim_plus) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md new file mode 100644 index 00000000..c8b1e400 --- /dev/null +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md @@ -0,0 +1,36 @@ +# Valheim BepInEx + +## Author & Contributers +| Name | Github Profile | Buy me a Coffee | +| ------------- |-------------|-------------| +| gOOvER | https://github.com/gOOvER | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B351D0Q) | + +## Valheim + +A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odin’s patronage! +https://store.steampowered.com/app/892970/Valheim/ + +## BepInEx + +BepInEx is a general purpose framework for Unity modding. BepInEx includes tools and libraries to +- load custom code (hereafter plugins) into the game on launch; +- patch in-game methods, classes and even entire assemblies without touching original game files; +- configure plugins and log game to desired outputs like console or file; +- manage plugin dependencies. + +BepInEx is currently one of the most popular modding tools for Unity on GitHub. + +This pack is preconfigured and usable for Valheim modding. +In particular, the changes from base BepInEx releases are: + +- Added preconfigured BepInEx.cfg with console enabled. +- Added unstripped Unity + Mono BCL DLLs for current versions of the game. See this issue comment for more info. +- Updated Doorstop configuration and BepInEx to allow to load unstripped DLLs without having to overwrite game DLLs. +- Added scripts necessary to run both game and dedicated server on Linux machines + +## Server Ports + +| Port | default | +|-------|---------| +| Game | 2456 | +| Query | 2457 | diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json new file mode 100644 index 00000000..3698c861 --- /dev/null +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -0,0 +1,184 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-29T09:34:58+01:00", + "name": "Valheim BepINex", + "author": "info@goover.de", + "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" + }, + "file_denylist": [], + "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates unzip jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "ghcr.io\/pteroforge\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "Name that appears in server browser.", + "env_variable": "SERVER_NAME", + "default_value": "My Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Server password.", + "env_variable": "PASSWORD", + "default_value": "secret", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|min:5|max:20", + "field_type": "text" + }, + { + "name": "World Name", + "description": "Name to load if switching between multiple saved worlds.", + "env_variable": "WORLD", + "default_value": "Dedicated", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Public Server", + "description": "", + "env_variable": "PUBLIC", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Enable Crossplay", + "description": "Enable crossplay support", + "env_variable": "ENABLE_CROSSPLAY", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Beta Branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Backup Interval", + "description": "Change how often the world will save in seconds. Default: 1800 (30 minutes).", + "env_variable": "BACKUP_INTERVAL", + "default_value": "1800", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Count", + "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart. Default: 4.", + "env_variable": "BACKUP_COUNT", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Shorttime", + "description": "Sets the interval between the first automatic backups in seconds. Default: 7200 (2 hours).", + "env_variable": "BACKUP_SHORTTIME", + "default_value": "7200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Longtime", + "description": "Sets the interval between the subsequent automatic backups in seconds. Default: 43200 (12 hours).", + "env_variable": "BACKUP_LONGTIME", + "default_value": "43200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "[System] Console Filter", + "description": "Remove unwanted outputs from the console.", + "env_variable": "CONSOLE_FILTER", + "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", + "user_viewable": false, + "user_editable": false, + "rules": "string", + "field_type": "text" + }, + { + "name": "[System] App ID", + "description": "Valheim steam app id for auto updates.", + "env_variable": "SRCDS_APPID", + "default_value": "896660", + "user_viewable": true, + "user_editable": false, + "rules": "nullable|numeric", + "field_type": "text" + }, + { + "name": "[System] LD Library Path", + "description": "Required to load server libraries.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/linux64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file From a985670de37d0f3322974021a99a73a60bb2d5fa Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 10:25:03 +0100 Subject: [PATCH 045/110] Update egg-valheim-bep-i-nex.json --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index 3698c861..3d3ba8bf 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T09:34:58+01:00", + "exported_at": "2023-01-29T10:24:39+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates unzip jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", - "container": "ghcr.io\/pteroforge\/installers:debian", + "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install wget\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -67,7 +67,7 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "required|boolean", "field_type": "text" }, { From 404a3f802878a74549afad1ce827551eacad1ad7 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 11:28:38 +0100 Subject: [PATCH 046/110] add missing STOP Variable --- .../valheim_bepinex/egg-valheim-bep-i-nex.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index 3d3ba8bf..aecfa657 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T10:24:39+01:00", + "exported_at": "2023-01-29T11:28:22+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -20,7 +20,7 @@ "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", "logs": "{}", - "stop": "^^C" + "stop": "^C" }, "scripts": { "installation": { @@ -179,6 +179,16 @@ "user_editable": false, "rules": "required|string", "field_type": "text" + }, + { + "name": "Shutdown Command", + "description": "", + "env_variable": "STOP", + "default_value": "kill -2 $!; wait;", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From 41a9d44d2c4b47b7b0d05234003d341a2b781a7b Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 11:39:07 +0100 Subject: [PATCH 047/110] small fix --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index aecfa657..da7b76cc 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T11:28:22+01:00", + "exported_at": "2023-01-29T11:38:42+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -181,7 +181,7 @@ "field_type": "text" }, { - "name": "Shutdown Command", + "name": "[System] Shutdown Command", "description": "", "env_variable": "STOP", "default_value": "kill -2 $!; wait;", From c392732c6e74489d68a00a615b971436ec30bf9a Mon Sep 17 00:00:00 2001 From: Edward Date: Mon, 30 Jan 2023 15:17:48 +1100 Subject: [PATCH 048/110] Fix rust staging branch variable not working --- .../steamcmd_servers/rust/rust_staging/egg-rust-staging.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json b/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json index dcb0e2b2..ef5298f5 100644 --- a/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json +++ b/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-26T11:35:36+01:00", + "exported_at": "2023-01-30T15:13:30+11:00", "name": "Rust Staging", "author": "root@smc.li", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", @@ -143,7 +143,7 @@ { "name": "Branch", "description": "Select the branch to install, such as staging or workcart", - "env_variable": "BRANCH", + "env_variable": "SRCDS_BETAID", "default_value": "staging", "user_viewable": true, "user_editable": true, From d446b380ea152e0ad780f4bc5f9b9c1e4dc2f5ac Mon Sep 17 00:00:00 2001 From: gOOvER Date: Tue, 31 Jan 2023 12:00:36 +0100 Subject: [PATCH 049/110] Update egg-FoundryVTT.json --- game_eggs/FoundryVTT/egg-FoundryVTT.json | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/game_eggs/FoundryVTT/egg-FoundryVTT.json b/game_eggs/FoundryVTT/egg-FoundryVTT.json index a61725ca..8613756b 100644 --- a/game_eggs/FoundryVTT/egg-FoundryVTT.json +++ b/game_eggs/FoundryVTT/egg-FoundryVTT.json @@ -1,28 +1,28 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-11-13T13:06:21-08:00", + "exported_at": "2023-01-31T11:59:34+01:00", "name": "Foundry VTT", "author": "pterodactyl@demi.cloud", "description": "Foundry VTT is a standalone application built for experiencing multiplayer tabletop RPGs using a feature-rich and modern self-hosted application where your players connect directly through the browser.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:nodejs_17" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18" + }, "file_denylist": [], "startup": "node .\/app\/resources\/app\/main.js --dataPath=\"\/home\/container\/data\"", "config": { "files": "{\r\n \"data\/Config\/options.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"language\": \"{{server.build.env.FOUNDRY_LANGUAGE}}\",\r\n \"updateChannel\": \"{{server.build.env.UPDATE_CHANNEL}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server started and listening on port\"\r\n}", "logs": "{}", - "stop": "^c" + "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"", + "script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n #rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -35,7 +35,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|url" + "rules": "required|url", + "field_type": "text" }, { "name": "Language", @@ -44,7 +45,8 @@ "default_value": "en.core", "user_viewable": true, "user_editable": true, - "rules": "string|max:20" + "rules": "string|max:20", + "field_type": "text" }, { "name": "Update Channel", @@ -53,7 +55,8 @@ "default_value": "release", "user_viewable": true, "user_editable": true, - "rules": "string|max:256" + "rules": "string|max:256", + "field_type": "text" } ] -} +} \ No newline at end of file From 9b53b2057dbba2758350855861d8546c893361a5 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 13:02:29 +0800 Subject: [PATCH 050/110] Update Rust and frozen flame --- .../frozen_flame/egg-frozen-flame.json | 2 +- .../rust/rust_autowipe/egg-rust-autowipe.json | 60 ++++++++++++------- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index 6ed35e80..fccb2201 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -50,7 +50,7 @@ }, { "name": "Server Name", - "description": "The server nane", + "description": "The server name", "env_variable": "SERVER_NAME", "default_value": "My Frozen Flame Server", "user_viewable": true, diff --git a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json index cb002c52..1534f0f2 100644 --- a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json +++ b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-26T11:35:12+01:00", + "exported_at": "2023-02-03T13:00:17+08:00", "name": "Rust Autowipe", - "author": "support@pterodactyl.io", + "author": "kano@wapriaily.com", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", "features": [ "steam_disk_space" @@ -15,7 +15,7 @@ "ghcr.io\/pterodactyl\/games:rust": "ghcr.io\/pterodactyl\/games:rust" }, "file_denylist": [], - "startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.ip 0.0.0.0 +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"$( if [ -f seed.txt ] && [[ ${WORLD_SEED} == \"0\" ]]; then printf %s $(cat seed.txt); else printf %s '${WORLD_SEED}'; fi )\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}\"", + "startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.queryport {{QUERY_PORT}} +server.identity \"rust\" +rcon.ip 0.0.0.0 +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"$( if [ -f seed.txt ] && [[ ${WORLD_SEED} == \"0\" ]]; then printf %s $(cat seed.txt); else printf %s '${WORLD_SEED}'; fi )\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +app.port {{APP_PORT}} +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Server startup complete\"\r\n}", @@ -30,6 +30,26 @@ } }, "variables": [ + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "258550", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "The maximum amount of players allowed in the server at once.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, { "name": "Server Name", "description": "The name of your server in the public server list.", @@ -100,16 +120,6 @@ "rules": "nullable|string", "field_type": "text" }, - { - "name": "Max Players", - "description": "The maximum amount of players allowed in the server at once.", - "env_variable": "MAX_PLAYERS", - "default_value": "40", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer", - "field_type": "text" - }, { "name": "Server Image", "description": "The header image for the top of your server listing.", @@ -181,13 +191,23 @@ "field_type": "text" }, { - "name": "SRCDS_APPID", - "description": "", - "env_variable": "SRCDS_APPID", - "default_value": "258550", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:20", + "name": "QUERY PORT", + "description": "Port for QUERY connections.", + "env_variable": "QUERY_PORT", + "default_value": "28017", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "APP PORT", + "description": "Port for Rust+ applications. -1 to disable.", + "env_variable": "APP_PORT", + "default_value": "28082", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", "field_type": "text" } ] From 4f77e5a7fdb1c9dc13ec32c47b10b5b1ba7fb740 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 14:34:50 +0800 Subject: [PATCH 051/110] Update --- .../frozen_flame/egg-frozen-flame.json | 44 +++++++++---------- .../rust/rust_autowipe/egg-rust-autowipe.json | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index fccb2201..cb229f4d 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-19T18:35:39+01:00", + "exported_at": "2023-02-03T14:32:26+08:00", "name": "Frozen Flame", - "author": "theblitzbat@gmail.com", + "author": "parker@parkervcp.com", "description": "Frozen Flame Dedicated Server", "features": null, "docker_images": { @@ -38,6 +38,26 @@ "rules": "nullable|numeric", "field_type": "text" }, + { + "name": "Max Players", + "description": "Maximum player count", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "The query port.", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, { "name": "Additional Arguments", "description": "Specify additional launch parameters such as -crossplay. You must include a dash - and separate each parameter with space: -crossplay -exclusivejoin", @@ -68,16 +88,6 @@ "rules": "required|string|max:128", "field_type": "text" }, - { - "name": "Max Players", - "description": "Maximum player count", - "env_variable": "MAX_PLAYERS", - "default_value": "10", - "user_viewable": true, - "user_editable": true, - "rules": "required|numeric", - "field_type": "text" - }, { "name": "Auto Update", "description": "Auto update server software", @@ -87,16 +97,6 @@ "user_editable": true, "rules": "boolean", "field_type": "text" - }, - { - "name": "Query Port", - "description": "The query port.", - "env_variable": "QUERY_PORT", - "default_value": "27015", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|between:1024,65536", - "field_type": "text" } ] } \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json index 1534f0f2..84e4032f 100644 --- a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json +++ b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-02-03T13:00:17+08:00", "name": "Rust Autowipe", - "author": "kano@wapriaily.com", + "author": "parker@parkervcp.com", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", "features": [ "steam_disk_space" From 1930eb72dc265375e697d0133fb2e0d311ed7e95 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 14:37:50 +0800 Subject: [PATCH 052/110] Restore the author --- .../steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json index 84e4032f..eaa55f52 100644 --- a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json +++ b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-02-03T13:00:17+08:00", "name": "Rust Autowipe", - "author": "parker@parkervcp.com", + "author": "support@pterodactyl.io", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", "features": [ "steam_disk_space" From 9f42e907ce34af601a02d3c1a2db1dd646a24402 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 22:23:07 +0800 Subject: [PATCH 053/110] Restore the author --- game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index cb229f4d..f76ca3ff 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-02-03T14:32:26+08:00", "name": "Frozen Flame", - "author": "parker@parkervcp.com", + "author": "theblitzbat@gmail.com", "description": "Frozen Flame Dedicated Server", "features": null, "docker_images": { From f2f76c26320f884d42b9e5a2491da179802c79b4 Mon Sep 17 00:00:00 2001 From: RADICALAdrift <57268573+RADICALAdrift@users.noreply.github.com> Date: Sat, 4 Feb 2023 04:49:47 +0000 Subject: [PATCH 054/110] Update README.md Updated the default game port to the correct default port 3979 --- game_eggs/tycoon_games/openttd/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/tycoon_games/openttd/README.md b/game_eggs/tycoon_games/openttd/README.md index c00a8280..d02d0c3a 100644 --- a/game_eggs/tycoon_games/openttd/README.md +++ b/game_eggs/tycoon_games/openttd/README.md @@ -6,5 +6,5 @@ OpenTTD is a business simulation game in which players try to earn money via tra | Port | Default | |---------|---------| -| Game | 3797 | +| Game | 3979 | | Admin | 3977 | From 49fa64da7204630f1e76f70ef6e9236ad611d890 Mon Sep 17 00:00:00 2001 From: BestRazer <65088083+BestRazer@users.noreply.github.com> Date: Sat, 4 Feb 2023 19:03:07 +0100 Subject: [PATCH 055/110] Added nodejs 18 support to the code server --- software/code-server/egg-code--server.json | 1 + 1 file changed, 1 insertion(+) diff --git a/software/code-server/egg-code--server.json b/software/code-server/egg-code--server.json index 30cdae39..9ed1ec63 100644 --- a/software/code-server/egg-code--server.json +++ b/software/code-server/egg-code--server.json @@ -10,6 +10,7 @@ "description": "Run VS Code on any machine anywhere and access it in the browser.", "features": null, "images": [ + "ghcr.io\/parkervcp\/yolks:nodejs_18", "ghcr.io\/parkervcp\/yolks:nodejs_17", "ghcr.io\/parkervcp\/yolks:nodejs_16", "ghcr.io\/parkervcp\/yolks:nodejs_14", From b1e16c4366178211556a12178d78f0d459520693 Mon Sep 17 00:00:00 2001 From: BestRazer <65088083+BestRazer@users.noreply.github.com> Date: Sat, 4 Feb 2023 23:07:31 +0100 Subject: [PATCH 056/110] Now exported from panel Upon request I have now exported the egg from the panel. --- software/code-server/egg-code--server.json | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/software/code-server/egg-code--server.json b/software/code-server/egg-code--server.json index 9ed1ec63..003341b0 100644 --- a/software/code-server/egg-code--server.json +++ b/software/code-server/egg-code--server.json @@ -1,21 +1,21 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-05-05T19:37:05+02:00", + "exported_at": "2023-02-04T23:01:25+01:00", "name": "Code-Server", "author": "mario.franze@gmail.com", "description": "Run VS Code on any machine anywhere and access it in the browser.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:nodejs_18", - "ghcr.io\/parkervcp\/yolks:nodejs_17", - "ghcr.io\/parkervcp\/yolks:nodejs_16", - "ghcr.io\/parkervcp\/yolks:nodejs_14", - "ghcr.io\/parkervcp\/yolks:nodejs_12" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18", + "ghcr.io\/parkervcp\/yolks:nodejs_17": "ghcr.io\/parkervcp\/yolks:nodejs_17", + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16", + "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14", + "ghcr.io\/parkervcp\/yolks:nodejs_12": "ghcr.io\/parkervcp\/yolks:nodejs_12" + }, "file_denylist": [], "startup": "sh .local\/lib\/code-server-{{VERSION}}\/bin\/code-server", "config": { @@ -39,7 +39,8 @@ "default_value": "changeme", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32" + "rules": "required|string|max:32", + "field_type": "text" }, { "name": "Version", @@ -48,7 +49,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "string|max:20" + "rules": "string|max:20", + "field_type": "text" } ] } From 99147504540d6890b615f1d6feca3ca8dad2576a Mon Sep 17 00:00:00 2001 From: TheLeCrafter <47987588+TheLeCrafter@users.noreply.github.com> Date: Mon, 6 Feb 2023 18:52:29 +0100 Subject: [PATCH 057/110] Fix egg-reposilite.json --- software/reposilite/egg-reposilite.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/software/reposilite/egg-reposilite.json b/software/reposilite/egg-reposilite.json index 585d78bc..9b1cb39a 100644 --- a/software/reposilite/egg-reposilite.json +++ b/software/reposilite/egg-reposilite.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-06-12T18:45:04+02:00", + "exported_at": "2023-02-06T18:51:07+01:00", "name": "Reposilite", "author": "mk@kcra.me", "description": "Lightweight and easy-to-use repository management software dedicated for Maven based artifacts in the JVM ecosystem.", @@ -25,7 +25,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/sh\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Find latest Reposilite version, if needed\r\nif [ \"$REPOSILITE_VERSION\" == \"latest\" ]; then\r\n REPOSILITE_VERSION=$(grep -oPm1 \"(?<=)[^<]+\" <<< \"$(curl -s https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/maven-metadata.xml)\")\r\nfi\r\n# Check if -all suffixed jar is available\r\nstatus_code=$(curl --write-out '%{http_code}' -X HEAD -s -o \/dev\/null https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar)\r\n# Download new Reposilite\r\nif [ \"$status_code\" == 200 ]; then\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar\r\nelse\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}.jar\r\nfi", + "script": "#!\/bin\/sh\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Find latest Reposilite version, if needed\r\nif [ \"$REPOSILITE_VERSION\" == \"latest\" ]; then\r\n REPOSILITE_VERSION=$(grep -oPm1 \"(?<=)[^<]+\" <<< \"$(curl -s https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/maven-metadata.xml)\")\r\nfi\r\n# Check if -all suffixed jar is available\r\nstatus_code=$(curl --write-out '%{http_code}' -X HEAD -s -o \/dev\/null https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar)\r\n# Download new Reposilite\r\nif [ \"$status_code\" == 200 ]; then\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar\r\nelse\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}.jar\r\nfi", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -42,4 +42,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 31e081775081dce14f7c9b3a1c58c4ae457c1c2d Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:46:44 +0100 Subject: [PATCH 058/110] update samp --- game_eggs/gta/samp/egg-s-a--m-p.json | 44 ++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/game_eggs/gta/samp/egg-s-a--m-p.json b/game_eggs/gta/samp/egg-s-a--m-p.json index 0ef670ff..dddea0d1 100644 --- a/game_eggs/gta/samp/egg-s-a--m-p.json +++ b/game_eggs/gta/samp/egg-s-a--m-p.json @@ -1,26 +1,52 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v2", + "update_url": null }, - "exported_at": "2020-10-28T13:03:46+00:00", + "exported_at": "2023-02-08T14:46:07+01:00", "name": "SA-MP", "author": "bl4ckspr4y@protonmail.com", "description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).", - "image": "ghcr.io\/parkervcp\/games:samp", + "features": null, + "docker_images": { + "Samp": "ghcr.io\/parkervcp\/games:samp" + }, + "file_denylist": [], "startup": ".\/samp03svr", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Started server on \",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"samp.log\"\r\n}", - "stop": "^C" + "startup": "{\r\n \"done\": \"Started server on \"\r\n}", + "logs": "{}", + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_R2-1.tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz -C \/mnt\/server\/\r\ncp -r \/mnt\/server\/samp03\/* \/mnt\/server\r\nrm -rf \/mnt\/server\/samp03\/\r\ncd \/mnt\/server\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password changemeplease\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n\r\ncd \/tmp || exit\r\necho \"running: curl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_${VERSION}.tar.gz\"\r\ncurl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_\"${VERSION}\".tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password ${RCON_PASS}\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, - "variables": [] + "variables": [ + { + "name": "Version", + "description": "example: if the download url is http:\/\/files.sa-mp.com\/samp037svr_R2-1.tar.gz then the variable should be: `R2-1`", + "env_variable": "Version", + "default_value": "R2-1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Rcon password", + "description": "", + "env_variable": "RCON_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + } + ] } From 8ecf1cfe90f9674e9d8eaaa83c731f6ecccde6b9 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 8 Feb 2023 15:14:49 +0100 Subject: [PATCH 059/110] samp: auto set rcon password in config --- game_eggs/gta/samp/egg-s-a--m-p.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/gta/samp/egg-s-a--m-p.json b/game_eggs/gta/samp/egg-s-a--m-p.json index dddea0d1..08465d94 100644 --- a/game_eggs/gta/samp/egg-s-a--m-p.json +++ b/game_eggs/gta/samp/egg-s-a--m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-08T14:46:07+01:00", + "exported_at": "2023-02-08T14:50:39+01:00", "name": "SA-MP", "author": "bl4ckspr4y@protonmail.com", "description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).", @@ -15,7 +15,7 @@ "file_denylist": [], "startup": ".\/samp03svr", "config": { - "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\",\r\n \"rcon_password\": \"rcon_password {{server.build.env.RCON_PASS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Started server on \"\r\n}", "logs": "{}", "stop": "^^C" @@ -40,7 +40,7 @@ }, { "name": "Rcon password", - "description": "", + "description": "The password used for rcon", "env_variable": "RCON_PASS", "default_value": "", "user_viewable": true, From 11b9e4f6414d4fd98818f2c7c730c30afccfd300 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 11 Feb 2023 21:54:55 -0500 Subject: [PATCH 060/110] use github release for php use the github release of php for pocketmine update version to pm4 and pm5 --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 6f14d9f5..21933091 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-24T16:28:27+01:00", + "exported_at": "2023-02-11T21:53:10-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastSuccessfulBuild\/artifact\/PHP-8.0-Linux-x86_64-PM4.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastSuccessfulBuild\/artifact\/PHP-8.0-Linux-x86_64-PM4.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -30,13 +30,13 @@ "variables": [ { "name": "Version to install [pm3 or pm4]", - "description": "Latest PocketMine version to install. Valid options: pm3 and pm4", + "description": "Latest PocketMine version to install (default: pm4). Valid options: pm4 and pm5", "env_variable": "VERSION", "default_value": "pm4", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:pm3,pm4", + "rules": "required|string|in:pm4,pm5", "field_type": "text" } ] -} +} \ No newline at end of file From b6166ac6276e802e2fd959ace2dc445387d6bdf7 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 11 Feb 2023 22:30:46 -0500 Subject: [PATCH 061/110] remove pm5 support --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 21933091..8a1d513a 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-11T21:53:10-05:00", + "exported_at": "2023-02-11T22:30:05-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\n# elif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n# DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm5 | grep 'download_url' | cut -d '\"' -f 4)\r\n# PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n# echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n# curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -30,12 +30,12 @@ "variables": [ { "name": "Version to install [pm3 or pm4]", - "description": "Latest PocketMine version to install (default: pm4). Valid options: pm4 and pm5", + "description": "Latest PocketMine version to install.", "env_variable": "VERSION", "default_value": "pm4", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:pm4,pm5", + "rules": "required|string|in:pm4", "field_type": "text" } ] From 44a2eed3c3f6c7e6417e06127dd463fc3f2f4fb3 Mon Sep 17 00:00:00 2001 From: softwarenoob Date: Sun, 12 Feb 2023 09:40:11 +0200 Subject: [PATCH 062/110] feat(pocketmine): rewrite egg for Github releases --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 8a1d513a..7409a5ce 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-11T22:30:05-05:00", + "exported_at": "2023-02-12T02:36:39-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,21 +22,21 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\n# elif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n# DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm5 | grep 'download_url' | cut -d '\"' -f 4)\r\n# PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n# echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n# curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", - "container": "ghcr.io\/pterodactyl\/installers:debian", + "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Sun, 12 Feb 2023 09:55:23 +0200 Subject: [PATCH 063/110] chore(pocketmine): use bullseye install image --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 7409a5ce..609ee1e3 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-12T02:36:39-05:00", + "exported_at": "2023-02-12T02:53:07-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Sun, 12 Feb 2023 22:27:24 -0500 Subject: [PATCH 064/110] add server query port egg was already updated on the panel repo. no further changes necessary --- stock_eggs/rust/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stock_eggs/rust/README.md b/stock_eggs/rust/README.md index da38e57a..2761eb13 100644 --- a/stock_eggs/rust/README.md +++ b/stock_eggs/rust/README.md @@ -15,6 +15,7 @@ Ports required to run the server. | Port | default | |----------------|-----------| -| Game and Query | 28015 UDP | +| Game | 28015 UDP | | RCON | 28016 TCP | +| Query | 28017 UDP | | Rust+ App | 28082 TCP | From 6f5871f18ecb8c16eb912bd779e6eb9cf2ab2066 Mon Sep 17 00:00:00 2001 From: tzanou Date: Sat, 18 Feb 2023 20:40:38 +0100 Subject: [PATCH 065/110] fix: add ServerDisabledNetworkProtocols in env variables to let user manage it if needed --- .../7_days_to_die/egg-7-days-to-die.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 5bdda6f0..03af959e 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=${TELNET_PORT} -TelnetPassword=${PASSWORD} -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 ${TELNET_PORT}; do echo \"Waiting for telnet connection...\"; sleep 5; done && $( [[ -z ${PASSWORD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\" || printf %s \"rcon -t telnet -a 127.0.0.1:${TELNET_PORT} -p {{PASSWORD}}\" )", + "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerDisabledNetworkProtocols=${SERVER_DISABLED_NETWORK_PROTOCOLS} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=${TELNET_PORT} -TelnetPassword=${PASSWORD} -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 ${TELNET_PORT}; do echo \"Waiting for telnet connection...\"; sleep 5; done && $( [[ -z ${PASSWORD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\" || printf %s \"rcon -t telnet -a 127.0.0.1:${TELNET_PORT} -p {{PASSWORD}}\" )", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Connected with 7DTD server\"\r\n}", @@ -109,6 +109,16 @@ "user_editable": true, "rules": "required|string|max:20", "field_type": "text" + }, + { + "name": "Network Protocols", + "description": "Networking protocols that should NOT be used. Separated by comma. Possible values: LiteNetLib, SteamNetworking. Dedicated servers should disable SteamNetworking if there is no NAT router in between your users and the server or when port-forwarding is set up correctly. lets it empty if you are connecting your self hosted server behind a NAT", + "env_variable": "SERVER_DISABLED_NETWORK_PROTOCOLS", + "default_value": "SteamNetworking", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From ea9e01076470cbd9e719631bdbf0032321abb80f Mon Sep 17 00:00:00 2001 From: tzanou Date: Sat, 18 Feb 2023 21:12:45 +0100 Subject: [PATCH 066/110] export egg from panel --- game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 03af959e..39c64524 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-28T14:28:16+01:00", + "exported_at": "2023-02-18T21:10:19+01:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", From 265b72bdc881165726e775024158cf2e4ff2313a Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 18 Feb 2023 23:01:55 -0500 Subject: [PATCH 067/110] update_parkertron update parkertronn to new install and run images --- bots/discord/parkertron/egg-parkertron.json | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/bots/discord/parkertron/egg-parkertron.json b/bots/discord/parkertron/egg-parkertron.json index ce098ba8..933582b1 100644 --- a/bots/discord/parkertron/egg-parkertron.json +++ b/bots/discord/parkertron/egg-parkertron.json @@ -1,13 +1,18 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v2", + "update_url": null }, - "exported_at": "2020-04-03T12:50:58-04:00", + "exported_at": "2023-02-18T22:37:44-05:00", "name": "parkertron", "author": "parker@parkervcp.com", "description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron", - "image": "quay.io\/parkervcp\/pterodactyl-images:bot_parkertron", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:bot_parkertron": "ghcr.io\/parkervcp\/yolks:bot_parkertron" + }, + "file_denylist": [], "startup": ".\/parkertron", "config": { "files": "{}", @@ -17,9 +22,9 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napk add --no-cache --update git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"pulling the parkertron pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\ngo mod download\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"", - "container": "golang:1.14-alpine", - "entrypoint": "ash" + "script": "#!\/bin\/bash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napt update\r\n\r\napt install -y tesseract-ocr tesseract-ocr-eng libtesseract-dev\r\n\r\necho \"pulling the parkertron git repo\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"", + "container": "golang:1.19-bullseye", + "entrypoint": "bash" } }, "variables": [] From 98136fe20852e843a6680af2423223747994c2f8 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 11:01:20 +0100 Subject: [PATCH 068/110] Create placeholder readme --- game_eggs/yuzu-emu/README.md | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 game_eggs/yuzu-emu/README.md diff --git a/game_eggs/yuzu-emu/README.md b/game_eggs/yuzu-emu/README.md new file mode 100644 index 00000000..e20faa8f --- /dev/null +++ b/game_eggs/yuzu-emu/README.md @@ -0,0 +1,46 @@ +# Yuzu Emulator Dedicated Multiplayer Room + + + +## From their [Github](https://github.com/parkervcp/eggs) + +A link to the site that you download the server files from. + +## [Documentation](https://github.com/parkervcp/eggs/blob/master/README.md) + +A link to relevent documentation for the server. + +The description of the server usually provided by the game/server maker. + + +## Install notes + + +Due to rate limiting the console on the panel, it cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. + +## Minimum RAM warning + +Minimum required memory to run the server. + + +## Minumim Sorage warning + +Minimum required storage to run the server. + + + + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 25565 | + +### Notes + + +25565 is the default port, but any port can be used. + +### Mods/Plugins may require ports to be added to the server From 55eac93fed6540574801f4079f54b5b89e952210 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 12:37:18 +0100 Subject: [PATCH 069/110] Add egg definition --- game_eggs/yuzu-emu/yuzu-emu.json | 102 +++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 game_eggs/yuzu-emu/yuzu-emu.json diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json new file mode 100644 index 00000000..bf104560 --- /dev/null +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -0,0 +1,102 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-02-19T12:36:09+01:00", + "name": "YuzuEmu", + "author": "Z3r0byte", + "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/yuzu-room --room-name \"{{ROOM_NAME}}\" --room-description \"{{ROOM_DESCRIPTION}}\" --preferred-game \"{{PREFERRED_GAME}}\" --preferred-game-id {{PREFERRED_GAME_ID}} --port {{SERVER_PORT}} --max_members {{MAX_MEMBERS}} --password \"{{PASSWORD}}\" --token \"{{YUZU_TOKEN}}\" --web-api-url \"https:\/\/api.yuzu-emu.org\/\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Room is open\"\r\n}", + "logs": "{}", + "stop": "Q" + }, + "scripts": { + "installation": { + "script": "# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\n apt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports \r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Room name", + "description": "", + "env_variable": "ROOM_NAME", + "default_value": "My Yuzu Room", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Room description", + "description": "", + "env_variable": "ROOM_DESCRIPTION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:60", + "field_type": "text" + }, + { + "name": "Preferred game", + "description": "", + "env_variable": "PREFERRED_GAME", + "default_value": "Mario Kart 8 Deluxe", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Preferred game ID", + "description": "", + "env_variable": "PREFERRED_GAME_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20|alphanum", + "field_type": "text" + }, + { + "name": "Max members", + "description": "", + "env_variable": "MAX_MEMBERS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|int|max:4|min:1", + "field_type": "text" + }, + { + "name": "Room password", + "description": "Room password. Leave empty for no password.", + "env_variable": "PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Yuzu token", + "description": "Yuzu account token (retrieve yours at https:\/\/profile.yuzu-emu.org\/). Necessary when creating a public (listed) room. Leave empty to create a private room.", + "env_variable": "YUZU_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 7d7a15dc2d99d0a43178a49bee7320f8ad09cd16 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 12:45:37 +0100 Subject: [PATCH 070/110] Update README.md --- game_eggs/yuzu-emu/README.md | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/game_eggs/yuzu-emu/README.md b/game_eggs/yuzu-emu/README.md index e20faa8f..516501f4 100644 --- a/game_eggs/yuzu-emu/README.md +++ b/game_eggs/yuzu-emu/README.md @@ -1,34 +1,27 @@ # Yuzu Emulator Dedicated Multiplayer Room - -## From their [Github](https://github.com/parkervcp/eggs) +## From their [Github](https://github.com/yuzu-emu/yuzu-mainline) -A link to the site that you download the server files from. +## Description -## [Documentation](https://github.com/parkervcp/eggs/blob/master/README.md) - -A link to relevent documentation for the server. - -The description of the server usually provided by the game/server maker. - +This egg can be used to host dedicated multiplayer rooms for the Yuzu emulator. ## Install notes - -Due to rate limiting the console on the panel, it cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. +Running this server requires almost no resources, but the installation involves compiling the binary. This is needed because yuzu unfortunately does not release their server binaries for Linux. Depending on your configuration, the installation part may take 5 minutes or more. + +To update, simply run the installer again. ## Minimum RAM warning -Minimum required memory to run the server. - +8 MiB is enough, but 16 MiB is recommended ## Minumim Sorage warning -Minimum required storage to run the server. - +1MiB is required, but 50 MiB is recommended to have some spare space for core dumps/logs - +Note: the install part requires ~ 5GiB of free space ## Server Ports @@ -36,11 +29,9 @@ Ports required to run the server in a table format. | Port | default | |---------|---------| -| Game | 25565 | +| Game | 24872 | ### Notes - -25565 is the default port, but any port can be used. - -### Mods/Plugins may require ports to be added to the server +- 24872 is the default port, but any port can be used. +- Banlist is currently not supported. Upon startup, an error will be shown about the missing banlist, but the server will work regardless. From b1b1d13e70402e96b96ca153dbb5126e05f9b264 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 12:48:31 +0100 Subject: [PATCH 071/110] Add entry to main readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 31401c12..64daca88 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [Xonotic](game_eggs/xonotic/xonotic) +[YuzuEmu](game_eggs/yuzu-emu) + [FoundryVTT](game_eggs/FoundryVTT) ## [Monitoring](/monitoring/) From 0a5e0ba3c8b50d6d07f020e1256f1f661fff7f2a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:50:23 +0100 Subject: [PATCH 072/110] FiveM: go back to using changelog page Go back to using the FiveM changelog page as specific versions download currently does not work. and it will always download the recommended even if version is set to latest --- game_eggs/gta/fivem/egg-five-m.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 718d2950..5be211df 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T18:22:52+01:00", + "exported_at": "2023-02-19T12:48:20+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i latest | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelse\r\n VERSION_LINK=$(echo $RELEASE_PAGE | grep -i ${FIVEM_VERSION} | grep -o 'href=\".*\"' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## removing the compresed file and run.sh\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\/*.tar.xz\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep -i \"${FIVEM_VERSION}\" | grep -o =.* | tr -d '=')\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -60,7 +60,7 @@ }, { "name": "fivem version", - "description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `6007-f9c407539e79a33772db3cbf47ab8d5e9d57e7a4`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `6013-d8ae399d15680da569022f57ab7f2474d307c821`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", "env_variable": "FIVEM_VERSION", "default_value": "recommended", "user_viewable": true, @@ -68,6 +68,16 @@ "rules": "required|string|max:50", "field_type": "text" }, + { + "name": "Download Link", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/5848-4f71128ee48b07026d6d7229a60ebc5f40f2b9db\/fx.tar.xz", + "env_variable": "DOWNLOAD_URL", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "string|nullable", + "field_type": "text" + }, { "name": "Steam Web Api Key", "description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/", @@ -97,16 +107,6 @@ "user_editable": true, "rules": "required|boolean", "field_type": "text" - }, - { - "name": "Download Link", - "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/`6007-f9c407539e79a33772db3cbf47ab8d5e9d57e7a4\/fx.tar.xz", - "env_variable": "DOWNLOAD_URL", - "default_value": "", - "user_viewable": false, - "user_editable": false, - "rules": "string|nullable", - "field_type": "text" } ] } From c3895b0a57f485b6d2db8d504945fb35c6ae90c0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:55:14 +0100 Subject: [PATCH 073/110] FiveM: update example download link --- game_eggs/gta/fivem/egg-five-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 5be211df..8d68d168 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-19T12:48:20+01:00", + "exported_at": "2023-02-19T12:54:36+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -70,7 +70,7 @@ }, { "name": "Download Link", - "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/5848-4f71128ee48b07026d6d7229a60ebc5f40f2b9db\/fx.tar.xz", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/6013-d8ae399d15680da569022f57ab7f2474d307c821\/fx.tar.xz", "env_variable": "DOWNLOAD_URL", "default_value": "", "user_viewable": false, From 471b9f5537b921e78ddeb2b861dd7be9f7d39cb8 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 13:10:15 +0100 Subject: [PATCH 074/110] parkertron: remove logs Remove logs part as it is not more used --- bots/discord/parkertron/egg-parkertron.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bots/discord/parkertron/egg-parkertron.json b/bots/discord/parkertron/egg-parkertron.json index 933582b1..dca1b5ec 100644 --- a/bots/discord/parkertron/egg-parkertron.json +++ b/bots/discord/parkertron/egg-parkertron.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-18T22:37:44-05:00", + "exported_at": "2023-02-19T13:09:14+01:00", "name": "parkertron", "author": "parker@parkervcp.com", "description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron", @@ -17,7 +17,7 @@ "config": { "files": "{}", "startup": "{\r\n \"done\": \"Bot is now running\"\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "logs": "{}", "stop": "shutdown" }, "scripts": { @@ -28,4 +28,4 @@ } }, "variables": [] -} \ No newline at end of file +} From 49e5009b0dd601697ee8e9a262bbef5b68dfb21a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 13:16:57 +0100 Subject: [PATCH 075/110] remove FlameCord --- README.md | 1 - game_eggs/README.md | 1 - game_eggs/minecraft/README.md | 1 - game_eggs/minecraft/proxy/README.md | 1 - game_eggs/minecraft/proxy/java/README.md | 4 -- .../minecraft/proxy/java/flamecord/README.md | 10 ---- .../proxy/java/flamecord/egg-flamecord.json | 48 ------------------- 7 files changed, 66 deletions(-) delete mode 100644 game_eggs/minecraft/proxy/java/flamecord/README.md delete mode 100644 game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json diff --git a/README.md b/README.md index 31401c12..fe144bb1 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Proxies](game_eggs/minecraft/proxy) Minecraft Server Proxies * [Java](game_eggs/minecraft/proxy/java) - * [FlameCord](game_eggs/minecraft/proxy/java/flamecord) * [Travertine](game_eggs/minecraft/proxy/java/travertine) * [Velocity](game_eggs/minecraft/proxy/java/velocity) * [Waterfall](game_eggs/minecraft/proxy/java/waterfall) diff --git a/game_eggs/README.md b/game_eggs/README.md index 20fdab71..8a483c0e 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -84,7 +84,6 @@ * [GeyserMC](minecraft/proxy/cross_platform/geyser) * [Waterdog](minecraft/proxy/cross_platform/waterdog) * [Java](minecraft/proxy/java) - * [FlameCord](minecraft/proxy/java/flamecord) * [Travertine](minecraft/proxy/java/travertine) * [Velocity](minecraft/proxy/java/velocity) * [VIAaas](minecraft/proxy/java/viaaas) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 1cf5d596..f8834dbb 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -42,7 +42,6 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [GeyserMC](proxy/cross_platform/geyser) * [Waterdog](proxy/cross_platform/waterdog) * [Java](proxy/java) - * [FlameCord](proxy/java/flamecord) * [Travertine](proxy/java/travertine) * [Velocity](proxy/java/velocity) * [VIAaas](proxy/java/viaaas) diff --git a/game_eggs/minecraft/proxy/README.md b/game_eggs/minecraft/proxy/README.md index ff97f822..a1c5b84f 100644 --- a/game_eggs/minecraft/proxy/README.md +++ b/game_eggs/minecraft/proxy/README.md @@ -1,7 +1,6 @@ # Minecraft Proxies * [Java](/game_eggs/minecraft/proxy/java/) - * [FlameCord](/game_eggs/minecraft/proxy/java/flamecord) * [Travertine](/game_eggs/minecraft/proxy/java/travertine) * [Velocity](/game_eggs/minecraft/proxy/java/velocity) * [VIAaaS](/game_eggs/minecraft/proxy/java/viaaas) diff --git a/game_eggs/minecraft/proxy/java/README.md b/game_eggs/minecraft/proxy/java/README.md index 0b736419..6cb3bc02 100644 --- a/game_eggs/minecraft/proxy/java/README.md +++ b/game_eggs/minecraft/proxy/java/README.md @@ -1,10 +1,6 @@ # Minecraft Java Proxies -#### FlameCord -[FlameCord](https://github.com/2lstudios-mc/FlameCord) -FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. - #### Travertine [Travertine](https://papermc.io/downloads#Travertine) Waterfall, with additional support for Minecraft 1.7.10. diff --git a/game_eggs/minecraft/proxy/java/flamecord/README.md b/game_eggs/minecraft/proxy/java/flamecord/README.md deleted file mode 100644 index 8c9f93d8..00000000 --- a/game_eggs/minecraft/proxy/java/flamecord/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Flamecord server -FlameCord is a fork of Travertine that fixes Netty Exploits, keeps your console clean from unnecessary messages and orders your BungeeCord modules in a simpler way. - -## Server Ports -The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. - - -| Port | default | -|-------|---------| -| Game | 25565 | \ No newline at end of file diff --git a/game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json b/game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json deleted file mode 100644 index 73312781..00000000 --- a/game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v2", - "update_url": null - }, - "exported_at": "2022-12-19T17:57:16+01:00", - "name": "Flamecord", - "author": "admin@softwarenoob.com", - "description": "FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. FlameCord aims to fix Netty related exploits to keep your server safe from attacks.", - "features": [ - "eula", - "java_version", - "pid_limit" - ], - "docker_images": { - "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11" - }, - "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", - "config": { - "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Listening on \"\r\n}", - "logs": "{}", - "stop": "end" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n# FlameCord Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl git \r\n\r\nmkdir -p \/mnt\/server\/tmp\r\ncd \/mnt\/server\/tmp\r\n\r\nrm \/mnt\/server\/${SERVER_JARFILE}\r\n# set some needed variables\r\ngit config --global user.email \"you@example.com\"\r\ngit config --global user.name \"Your Name\"\r\n\r\n# Clone the repo \r\necho \"git clone https:\/\/github.com\/2lstudios-mc\/FlameCord.git\"\r\ngit clone https:\/\/github.com\/2lstudios-mc\/FlameCord.git \r\ncd FlameCord\/\r\nchmod +x scripts\/build.sh\r\n\r\n#build the jar\r\necho \"start building\"\r\n.\/scripts\/build.sh --jar\r\n\r\n# Find the jar file and move it\r\nJAR_PATH=$(find . -name FlameCord.jar)\r\nmv ${JAR_PATH} \/mnt\/server\/${SERVER_JARFILE}\r\nrm -rf \/mnt\/server\/tmp\r\n\r\necho \"Install complete\"", - "container": "maven:3.8.6-openjdk-11-slim", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "FlameCord Jar File", - "description": "The name of the jar file to use when running FlameCord.", - "env_variable": "SERVER_JARFILE", - "default_value": "flamecord.jar", - "user_viewable": true, - "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", - "field_type": "text" - } - ] -} \ No newline at end of file From 30cbd107bdd57b597f3a197543ae63041c158ec7 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 13:21:44 +0100 Subject: [PATCH 076/110] Update README.md --- game_eggs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 20fdab71..018fa0ac 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -205,4 +205,6 @@ [Xonotic](xonotic/xonotic) +[YuzuEmu](yuzu-emu) + [FoundryVTT](FoundryVTT) From 35012b41506238be06ee20fa1adeaa8cbb9f8ae3 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 15:18:02 +0100 Subject: [PATCH 077/110] Requested changes --- game_eggs/yuzu-emu/yuzu-emu.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index bf104560..26a24c14 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-19T12:36:09+01:00", + "exported_at": "2023-02-19T15:16:38+01:00", "name": "YuzuEmu", - "author": "Z3r0byte", + "author": "me@basvandenboom.dev", "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", "features": null, "docker_images": { @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\n apt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports \r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", + "script": "#!\/bin\/bash\r\n\r\n# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\napt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports\r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -99,4 +99,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 8e456d0b4f06fa92958d29243681549c699b229e Mon Sep 17 00:00:00 2001 From: tzanou Date: Mon, 20 Feb 2023 02:34:47 +0100 Subject: [PATCH 078/110] make SERVER_DISABLED_NETWORK_PROTOCOLS default value nothing and make it nullable --- .../steamcmd_servers/7_days_to_die/egg-7-days-to-die.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 39c64524..1be67d76 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-18T21:10:19+01:00", + "exported_at": "2023-02-20T02:33:05+01:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", @@ -114,10 +114,10 @@ "name": "Network Protocols", "description": "Networking protocols that should NOT be used. Separated by comma. Possible values: LiteNetLib, SteamNetworking. Dedicated servers should disable SteamNetworking if there is no NAT router in between your users and the server or when port-forwarding is set up correctly. lets it empty if you are connecting your self hosted server behind a NAT", "env_variable": "SERVER_DISABLED_NETWORK_PROTOCOLS", - "default_value": "SteamNetworking", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "nullable|string|max:20", "field_type": "text" } ] From 0fa2df4879a0bcaa837221b18f7396bf0171b378 Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 10:10:39 +0100 Subject: [PATCH 079/110] Add astroneer egg from panel --- .../egg-astroneer-dedicated-server.json | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json diff --git a/game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json b/game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json new file mode 100644 index 00000000..be9cdba6 --- /dev/null +++ b/game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json @@ -0,0 +1,122 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-02-20T09:47:43+01:00", + "name": "Astroneer Dedicated Server", + "author": "melethainiel.aerin@gmail.com", + "description": "A game of aerospace industry and interplanetary exploration.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" + }, + "file_denylist": [], + "startup": "proton run .\/Astro\/Binaries\/Win64\/AstroServer-Win64-Shipping.exe", + "config": { + "files": "{\r\n \"Astro\/Saved\/Config\/WindowsServer\/Engine.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"url.Port\": \"{{server.build.default.port}}\",\r\n \"[SystemSettings].net.AllowEncryption\":\"false\"\r\n }\r\n },\r\n \"Astro\/Saved\/Config\/WindowsServer\/AstroServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/Astro.AstroServerSettings].PublicIP\": \"{{env.PUBLIC_IP}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].OwnerName\": \"{{env.OWNER_NAME}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].OwnerGuid\": \"{{env.OWNER_GUID}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].PlayerProperties\": \"(PlayerFirstJoinName=\\\"{{env.OWNER_NAME}}\\\",PlayerCategory=Admin,PlayerGuid=\\\"{{env.OWNER_GUID}}\\\",PlayerRecentJoinName=\\\"\\\")\",\r\n \"[\/Script\/Astro.AstroServerSettings].ServerPassword\": \"{{env.SERVER_PWD}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].ServerName\": \"{{env.SERVER_NAME}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"nable to use setpriority safely\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Install steamcmd\"\r\necho \"-----------------------------------------\"\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Install game\"\r\necho \"-----------------------------------------\"\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Public IP", + "description": "Public IP to connect to the server.", + "env_variable": "PUBLIC_IP", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Owner Name", + "description": "Steam username of the server owner", + "env_variable": "OWNER_NAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Owner Guid", + "description": "Steam id of the server owner", + "env_variable": "OWNER_GUID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "If specified, players must provide this password to join the server.", + "env_variable": "SERVER_PWD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|alpha_dash|between:1,100", + "field_type": "text" + }, + { + "name": "Automatic Updates", + "description": "Quickly checks for any server updates on startup, and updates if necessary. (1 Enable | 0 Disable)", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[Advanced] Windows Install", + "description": "Windows Install", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Advanced] Steam App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "728470", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "PROTON_LOG", + "description": "", + "env_variable": "PROTON_LOG", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "", + "env_variable": "SERVER_NAME", + "default_value": "Pterodactyl hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60", + "field_type": "text" + } + ] +} \ No newline at end of file From 103a2de34c75375ed9e9989098519a8ec77753d8 Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 10:11:03 +0100 Subject: [PATCH 080/110] updated readme to add astroneer to the list --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 20fdab71..53bdf883 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -114,6 +114,7 @@ * [Arma 3](steamcmd_servers/arma/arma3) * [Arma Reforger](steamcmd_servers/arma/arma_reforger) * [Assetto Corsa](steamcmd_servers/assetto_corsa) +* [Astroneer](steamcmd_servers/astroneer) * [Avorion](steamcmd_servers/avorion) * [Barotrauma](steamcmd_servers/barotrauma) * [Black Mesa](steamcmd_servers/black_mesa) From afac38768d46432b2aca2dd0347eda372f0a975e Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 10:11:17 +0100 Subject: [PATCH 081/110] add readme for the egg --- .../steamcmd_servers/astroneer/README.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 game_eggs/steamcmd_servers/astroneer/README.md diff --git a/game_eggs/steamcmd_servers/astroneer/README.md b/game_eggs/steamcmd_servers/astroneer/README.md new file mode 100644 index 00000000..ea3ee017 --- /dev/null +++ b/game_eggs/steamcmd_servers/astroneer/README.md @@ -0,0 +1,40 @@ +# Astroneer + +Steam description : Explore and reshape distant worlds! Astroneer is set during the gold rush of the 25th century: players must explore the farthest reaches of space, risking their lives and resources in a hostile environment for a chance to become a millionaire. + +## Install notes + +The following variables are required to prevent the server to crash on startup : +* Public IP : Used to register the server. Must be the IP used to join the server. +* Server Owner Name : Steam username of the server owner. It also set the given user as owner and administrator of the server. +* Server Owner Guid : Steam id of the server owner. It also set the given user as owner and administrator of the server. ((Steam FAQ)[https://help.steampowered.com/en/faqs/view/2816-BE67-5B69-0FEC]) + +## Minimum RAM warning + +Astroneer required at least 700MiB to run. If more than one player will connect, 1GiB seems to be a minimum. + +## Minumim Sorage warning + +Astroneer required at least 3GiB. The size may increase with larger save file. + +## Server Ports + +Astroneer requires a single port to run. + +| Port | default | +|-------------|---------| +| Game | 27000 | + +### Notes + +27000 is the default port, but any port can be used. + + +## Client Configuration + +To be able to connect to the server you need to edit Engine.ini (located at %LocalAppData%\Astro\Saved\Config\WindowsNoEditor\Engine.ini) on every player's computer by adding the following : + +``` +[SystemSettings] +net.AllowEncryption=False +``` \ No newline at end of file From fd804a1d4fba03a8a09b7a7c1c8d460c1735dff5 Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 19:40:25 +0100 Subject: [PATCH 082/110] added link into the main readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31401c12..935db02a 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) * [Arma Reforger](game_eggs/steamcmd_servers/arma/arma_reforger) * [Assetto Corsa](game_eggs/steamcmd_servers/assetto_corsa) +* [Astroneer](game_eggs/steamcmd_servers/astroneer) * [Avorion](game_eggs/steamcmd_servers/avorion) * [Barotrauma](game_eggs/steamcmd_servers/barotrauma) * [Black Mesa](game_eggs/steamcmd_servers/black_mesa) From 368c4e3a7c1e4c25e3ef51a9b7ab014d4f3700a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20ARICI?= <34978332+ilkerbey-01@users.noreply.github.com> Date: Thu, 23 Feb 2023 10:25:24 +0300 Subject: [PATCH 083/110] Update egg-tachyon.json fixed some bugs and server not running, cleaned useless files. --- game_eggs/ftl/tachyon/egg-tachyon.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/game_eggs/ftl/tachyon/egg-tachyon.json b/game_eggs/ftl/tachyon/egg-tachyon.json index a2b299d5..3bf25ed7 100644 --- a/game_eggs/ftl/tachyon/egg-tachyon.json +++ b/game_eggs/ftl/tachyon/egg-tachyon.json @@ -1,19 +1,19 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-02-09T11:53:05-08:00", + "exported_at": "2023-02-23T08:24:07+01:00", "name": "Tachyon", "author": "alex.chang-lam@protonmail.com", "description": "A multiplayer version of FTL.", "features": null, - "images": [ - "quay.io\/pterodactyl\/core:java-11" - ], - "file_denylist": "", - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar", + "docker_images": { + "quay.io\/pterodactyl\/core:java-11": "quay.io\/pterodactyl\/core:java-11" + }, + "file_denylist": [], + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar server\/TachyonsCEServer.jar", "config": { "files": "{}", "startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\",\r\n \"userInteraction\": []\r\n}", @@ -22,10 +22,10 @@ }, "scripts": { "installation": { - "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\ncp -r .\/TachyonsCE_${FOLDER}\/server\/* \/mnt\/server\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nchmod +x TachyonsCEServer.jar", + "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\nrm -r .\/client\r\nrm -r .\/JRE\r\nrm -r .\/server\r\n\r\nchmod +x .\/TachyonsCEServer.jar", "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [] -} \ No newline at end of file +} From cf6ac8596c21cc9a9ed15e1dbf23d22221671c42 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:52:53 +0100 Subject: [PATCH 084/110] rewrite Tachyon --- game_eggs/ftl/tachyon/egg-tachyon.json | 29 ++++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/game_eggs/ftl/tachyon/egg-tachyon.json b/game_eggs/ftl/tachyon/egg-tachyon.json index 3bf25ed7..975fb6fc 100644 --- a/game_eggs/ftl/tachyon/egg-tachyon.json +++ b/game_eggs/ftl/tachyon/egg-tachyon.json @@ -4,28 +4,39 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-23T08:24:07+01:00", + "exported_at": "2023-02-23T17:52:24+01:00", "name": "Tachyon", "author": "alex.chang-lam@protonmail.com", "description": "A multiplayer version of FTL.", "features": null, "docker_images": { - "quay.io\/pterodactyl\/core:java-11": "quay.io\/pterodactyl\/core:java-11" + "Java_11": "ghcr.io\/pterodactyl\/yolks:java_11" }, "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar server\/TachyonsCEServer.jar", + "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar", "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\",\r\n \"userInteraction\": []\r\n}", + "files": "{\r\n \"config.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"SERVER_PORT=\": \"SERVER_PORT={{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\"\r\n}", "logs": "{}", "stop": "\/exit" }, "scripts": { "installation": { - "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\nrm -r .\/client\r\nrm -r .\/JRE\r\nrm -r .\/server\r\n\r\nchmod +x .\/TachyonsCEServer.jar", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Dav-Edward\/TachyonsCE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Dav-Edward\/TachyonsCE\/releases\")\r\nMATCH=TachyonsCE\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl --progress-bar -sSL -o ${DOWNLOAD_URL##*\/} ${DOWNLOAD_URL}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf server\/ JRE\/ client\/ *.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, - "variables": [] -} + "variables": [ + { + "name": "Version", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + } + ] +} \ No newline at end of file From a0aa66f4eded34e34d51cbb02157cc66e1a1fc69 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 24 Feb 2023 16:19:16 +0100 Subject: [PATCH 085/110] update gitea --- software/gitea/egg-gitea.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index cd140ac5..fb7f0c88 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-26T18:20:19+01:00", + "exported_at": "2023-02-24T16:18:35+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", + "script": "## Gitea Installscript\r\n\r\n## update system\r\napt update\r\napt -y install --no-install-recommends jq curl ca-certificates\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl -sSL https:\/\/dl.gitea.io\/gitea\/version.json | jq -r .latest.version)\r\n\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\necho -e \"Download url: https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\"\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -sSL -o gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -sSL -o gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -sSL -o gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } @@ -59,4 +59,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From acaa89a612945210e000e8495b3d822aed42743f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 24 Feb 2023 17:59:32 +0100 Subject: [PATCH 086/110] Dart: add 2.18 and 2.18 image as an option --- generic/dart/egg-dart-generic.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/generic/dart/egg-dart-generic.json b/generic/dart/egg-dart-generic.json index 07daec89..5e012d50 100644 --- a/generic/dart/egg-dart-generic.json +++ b/generic/dart/egg-dart-generic.json @@ -4,13 +4,15 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-07T16:11:46-07:00", + "exported_at": "2023-02-24T17:58:34+01:00", "name": "dart generic", "author": "alden@knoban.com", "description": "A generic dart CLI egg.\r\n\r\nThis will clone a dart CLI application. it defaults to master if no branch is specified.\r\n\r\nInstalls the pubspec.yaml packages on run. If you set user_upload then I assume you know what you are doing.", "features": null, "docker_images": { - "ghcr.io/parkervcp/yolks:dart_2.17": "ghcr.io/parkervcp/yolks:dart_2.17" + "Dart_2.19": "ghcr.io\/parkervcp\/yolks:dart_2.19", + "Dart_2.18": "ghcr.io\/parkervcp\/yolks:dart_2.18", + "Dart_2.17": "ghcr.io\/parkervcp\/yolks:dart_2.17" }, "file_denylist": [], "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; dart pub get; dart run", From 0a48aed141886f03fa0d03824f8baf8bc29d45d6 Mon Sep 17 00:00:00 2001 From: Filippo Scatigna Date: Sun, 26 Feb 2023 13:19:07 +0100 Subject: [PATCH 087/110] Changed max members and token field Updated to 12 max members and 60 for token length --- game_eggs/yuzu-emu/yuzu-emu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index 26a24c14..09fe54b4 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -75,7 +75,7 @@ "default_value": "4", "user_viewable": true, "user_editable": true, - "rules": "required|int|max:4|min:1", + "rules": "required|int|max:12|min:1", "field_type": "text" }, { @@ -95,7 +95,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20", + "rules": "nullable|string|max:60", "field_type": "text" } ] From e489860750b4235050d853f662dc6a32b0a3f765 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 26 Feb 2023 13:58:39 +0100 Subject: [PATCH 088/110] export from panel --- game_eggs/yuzu-emu/yuzu-emu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index 09fe54b4..aa571676 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-19T15:16:38+01:00", + "exported_at": "2023-02-26T13:57:20+01:00", "name": "YuzuEmu", "author": "me@basvandenboom.dev", "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", @@ -99,4 +99,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 4f00a8de167859a0774b46fe0b7ec55f1723191a Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 26 Feb 2023 14:38:44 +0100 Subject: [PATCH 089/110] remove cod4x from readme --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a1959f88..230c8bef 100644 --- a/README.md +++ b/README.md @@ -108,8 +108,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [MCGalaxy](game_eggs/classicube/mcgalaxy) -[Call of Duty 4X](game_eggs/cod/cod4x) - [Doom](game_eggs/doom) * [Zandronum](game_eggs/doom/zandronum) From e7ed62d1a4b43a6db52265f270a32cf4cbbef712 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Tue, 28 Feb 2023 10:10:15 -0500 Subject: [PATCH 090/110] fix readmes fixes the readmes for nanolimbo and removes other eggs that have been removed. --- README.md | 2 +- game_eggs/README.md | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 230c8bef..6827d897 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Glowstone](game_eggs/minecraft/java/glowstone) * [Magma](game_eggs/minecraft/java/magma) * [Mohist](game_eggs/minecraft/java/mohist) - * [NanoLimbo](/game_eggs/minecraft/java/nanolimbo) + * [NanoLimbo](game_eggs/minecraft/java/nanolimbo) * [Paper](game_eggs/minecraft/java/paper) * [Purpur](game_eggs/minecraft/java/purpur) * [Spigot](game_eggs/minecraft/java/spigot) diff --git a/game_eggs/README.md b/game_eggs/README.md index 4033d169..8c66cdf4 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -23,7 +23,7 @@ * [Vanilla](factorio/factorio) * [ModUpdate](factorio/factorio-modupdate) -* [Clusterio](game_eggs/factorio/clusterio) +* [Clusterio](factorio/clusterio) [FTL: Tachyon](ftl/tachyon) @@ -53,22 +53,20 @@ * [Bedrock](minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) * [Bedrock](minecraft/bedrock/bedrock) * [gomint](minecraft/bedrock/gomint) - * [LiteLoaderBDS](minecraft/bedrock/LiteLoader-bedrock) + * [LiteLoaderBDS](bedrock/LiteLoader-bedrock) * [Nukkit](minecraft/bedrock/nukkit) * [PocketMine MP](minecraft/bedrock/pocketmine_mp) * [Java](minecraft/java) Servers for Java Minecraft * [Cuberite](minecraft/java/cuberite) - * [CusreForge Generic](minecraft/java/forge/curseforge-generic) * [Fabric](minecraft/java/fabric) * [Feather](minecraft/java/feather) + * [Feed The Beast](minecraft/java/ftb) * [Forge](minecraft/java/forge) * [Glowstone](minecraft/java/glowstone) - * [Feed The Beast](minecraft/java/ftb) - * [Krypton](/minecraft/java/krypton) * [Magma](minecraft/java/magma) * [Mohist](minecraft/java/mohist) - * [NanoLimbo](/minecraft/java/nanolimbo) + * [NanoLimbo](minecraft/java/nanolimbo) * [Paper](minecraft/java/paper) * [Purpur](minecraft/java/purpur) * [Spigot](minecraft/java/spigot) @@ -77,17 +75,19 @@ * [Technic](minecraft/java/technic) * [VanillaCord](minecraft/java/vanillacord) +* [Crossplay](minecraft/crossplay/) servers for crossplay between Bedrock and Java edition + * [Purpur-GeyserMC-Floodgate](minecraft/crossplay/purpur-geysermc-floodgate/) + * [Proxies](minecraft/proxy) Minecraft Server Proxies + * [Java](minecraft/proxy/java) + * [Travertine](minecraft/proxy/java/travertine) + * [Velocity](minecraft/proxy/java/velocity) + * [Waterfall](minecraft/proxy/java/waterfall) * [Bedrock](minecraft/proxy/bedrock) * [Waterdog PE](minecraft/proxy/bedrock/waterdog_pe) * [Cross Platform](minecraft/proxy/cross_platform) * [GeyserMC](minecraft/proxy/cross_platform/geyser) * [Waterdog](minecraft/proxy/cross_platform/waterdog) - * [Java](minecraft/proxy/java) - * [Travertine](minecraft/proxy/java/travertine) - * [Velocity](minecraft/proxy/java/velocity) - * [VIAaas](minecraft/proxy/java/viaaas) - * [Waterfall](minecraft/proxy/java/waterfall) [Minetest](minetest) (including MTG) From 2559d89a267406217930562c4d718be6cfe21e41 Mon Sep 17 00:00:00 2001 From: Enozi <54645039+enozii@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:54:27 +0100 Subject: [PATCH 091/110] Updated to latest version --- .../the_isle/evrima/egg-the-isle.json | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json index 964631b3..1be4183e 100644 --- a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json +++ b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-18T08:34:37+02:00", + "exported_at": "2023-03-02T17:52:48+01:00", "name": "The Isle", "author": "fredrik.johansenfuun@gmail.com", "description": "The Isle is an open beta with an open-world survival game where players choose from three factions in an attempt to survive a fierce island. Hunt. Prey. Survive.", @@ -15,14 +15,14 @@ "file_denylist": [], "startup": "\/home\/container\/steamcmd\/steamcmd.sh +force_install_dir \/home\/container +login Anonymous +app_update 412680 -beta evrima +quit && \/home\/container\/TheIsle\/Binaries\/Linux\/TheIsleServer-Linux-Shipping -Port=$SERVER_PORT -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8", "config": { - "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled={{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Queue system listening on\"\r\n}", + "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled={{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"r.EyeAdaptation.BlackHistogramBucketInfluence =\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\ndiscord=${DISCORD}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -35,7 +35,7 @@ "default_value": "Norden", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:40", + "rules": "required|string|max:70", "field_type": "text" }, { @@ -48,24 +48,14 @@ "rules": "required|numeric|digits_between:1,100", "field_type": "text" }, - { - "name": "Server admin", - "description": "", - "env_variable": "ADMINSTEAMID", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable", - "field_type": "text" - }, { "name": "RCON", - "description": "", + "description": "true or false", "env_variable": "RCON", "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|in:true,false", + "rules": "required|string", "field_type": "text" }, { @@ -97,6 +87,16 @@ "user_editable": true, "rules": "required|numeric", "field_type": "text" + }, + { + "name": "Discord", + "description": "", + "env_variable": "DISCORD", + "default_value": "norden", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" } ] } From 6d9b42b8880c453330ab8fd4fa4326efd5c1d12e Mon Sep 17 00:00:00 2001 From: Enozi <54645039+enozii@users.noreply.github.com> Date: Fri, 3 Mar 2023 09:35:24 +0100 Subject: [PATCH 092/110] Updated Evrima egg to latest version added humans --- .../the_isle/evrima/egg-the-isle.json | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json index 1be4183e..f21a3a6b 100644 --- a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json +++ b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-02T17:52:48+01:00", + "exported_at": "2023-03-03T09:34:18+01:00", "name": "The Isle", "author": "fredrik.johansenfuun@gmail.com", "description": "The Isle is an open beta with an open-world survival game where players choose from three factions in an attempt to survive a fierce island. Hunt. Prey. Survive.", @@ -15,14 +15,14 @@ "file_denylist": [], "startup": "\/home\/container\/steamcmd\/steamcmd.sh +force_install_dir \/home\/container +login Anonymous +app_update 412680 -beta evrima +quit && \/home\/container\/TheIsle\/Binaries\/Linux\/TheIsleServer-Linux-Shipping -Port=$SERVER_PORT -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8", "config": { - "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled={{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled{{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\",\r\n \"bEnableHumans\": \"bEnableHumans{{server.build.env.HUMANS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"r.EyeAdaptation.BlackHistogramBucketInfluence =\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\ndiscord=${DISCORD}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nbEnableHumans=${HUMANS}\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\ndiscord=${DISCORD}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -32,7 +32,7 @@ "name": "Server Name", "description": "Sets the name for the server", "env_variable": "SERVER_NAME", - "default_value": "Norden", + "default_value": "A Pterodactyl server", "user_viewable": true, "user_editable": true, "rules": "required|string|max:70", @@ -52,10 +52,10 @@ "name": "RCON", "description": "true or false", "env_variable": "RCON", - "default_value": "false", + "default_value": "=false", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|in:=true,=false", "field_type": "text" }, { @@ -97,6 +97,16 @@ "user_editable": true, "rules": "nullable|string|max:20", "field_type": "text" + }, + { + "name": "Humans", + "description": "Enable or disable humans. true or false", + "env_variable": "HUMANS", + "default_value": "=false", + "user_viewable": true, + "user_editable": true, + "rules": "required|in:=true,=false", + "field_type": "text" } ] } From 3d64fb4b80e096a4e64888719d81a005d55d02d3 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 3 Mar 2023 16:16:28 +0100 Subject: [PATCH 093/110] fixed public Server variable --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 4 ++-- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index da7b76cc..b2f3879f 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T11:38:42+01:00", + "exported_at": "2023-03-03T16:16:01+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -63,7 +63,7 @@ { "name": "Public Server", "description": "", - "env_variable": "PUBLIC", + "env_variable": "PUBLIC_SERVER", "default_value": "1", "user_viewable": true, "user_editable": true, diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 5015436d..82968fc1 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-15T11:43:15+01:00", + "exported_at": "2023-03-03T16:15:23+01:00", "name": "Valheim Plus Mod", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", @@ -63,7 +63,7 @@ { "name": "Public Server", "description": "Public visibility of your server. Set it to false to make the server invisible and only joinable via the 'Join IP'-button.", - "env_variable": "PUBLIC", + "env_variable": "PUBLIC_SERVER", "default_value": "1", "user_viewable": true, "user_editable": true, From a7a592351b50c7069d0b148132ae9d8d0ad45edc Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 4 Mar 2023 15:05:57 +0100 Subject: [PATCH 094/110] Update egg-among-us--impostor-server.json --- .../impostor_server/egg-among-us--impostor-server.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json index f49ff629..ba3d3b54 100644 --- a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json +++ b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-18T15:43:34+01:00", + "exported_at": "2023-03-04T15:04:21+01:00", "name": "Among Us - Impostor Server", "author": "info@goover.de", "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", @@ -23,7 +23,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=linux-x64\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH} | head -1)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from ${DOWNLOAD_LINK}\"\r\ncurl sSL -o imposter-server.tar.gz ${DOWNLOAD_LINK}\r\n\r\ntar xvf imposter-server.tar.gz\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from $DOWNLOAD_URL\"\r\ncurl -sSL -o imposter-server.tar.gz $DOWNLOAD_URL\r\n\r\n\r\necho -e \"\\nUnpacking .tar.gz\"\r\ntar xvf imposter-server.tar.gz\r\n\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } From 706e84fc9d402a70a45f8fb9600e8338c9798160 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 5 Mar 2023 16:14:13 +0100 Subject: [PATCH 095/110] add Portal Knights --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../steamcmd_servers/portal_knights/README.md | 22 +++ .../portal_knights/egg-portal-knights.json | 164 ++++++++++++++++++ 5 files changed, 192 insertions(+) create mode 100644 game_eggs/steamcmd_servers/portal_knights/README.md create mode 100644 game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json diff --git a/README.md b/README.md index 6827d897..6d5d9350 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Open Fortress](game_eggs/steamcmd_servers/open_fortress) * [Pavlov VR](game_eggs/steamcmd_servers/pavlov_vr) * [PixARK](game_eggs/steamcmd_servers/pixark) +* [Portal Knights](game_eggs/steamcmd_servers/portal_knights) * [Post Scriptum](game_eggs/steamcmd_servers/post_scriptum) * [Project Zomboid](game_eggs/steamcmd_servers/project_zomboid) * [Quake Live](game_eggs/steamcmd_servers/quake_live) diff --git a/game_eggs/README.md b/game_eggs/README.md index 8c66cdf4..9ee98e57 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -143,6 +143,7 @@ * [Open Fortress](steamcmd_servers/open_fortress) * [Pavlov VR](steamcmd_servers/pavlov_vr) * [PixARK](steamcmd_servers/pixark) +* [Portal Knights](steamcmd_servers/portal_knights) * [Post Scriptum](steamcmd_servers/post_scriptum) * [Project Zomboid](steamcmd_servers/project_zomboid) * [Quake Live](steamcmd_servers/quake_live) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 5ddce746..e46946c7 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -130,6 +130,10 @@ This is a collection of servers that use SteamCMD to install. [PixARK](pixark) +## Portal Knights + +[Portal Knights](portal_knights) + ## Post Scriptum [Post Scriptum](post_scriptum) diff --git a/game_eggs/steamcmd_servers/portal_knights/README.md b/game_eggs/steamcmd_servers/portal_knights/README.md new file mode 100644 index 00000000..24cf948c --- /dev/null +++ b/game_eggs/steamcmd_servers/portal_knights/README.md @@ -0,0 +1,22 @@ +# Portal Knights + +The world of Elysia needs YOU! Join this cooperative, 3D sandbox action RPG to level up your character, craft epic weapons, conquer enemies in real-time, and build almost anything! Craft your adventure. Forge your hero. Become the ultimate Portal Knight! + +## Server + +Because the server files are not in a dedicated Steam app id this egg installs the whole game and then unpacks the .zip with the dedicated server files. + +**Because of this a steam account is required that own the game and has Steam guard off** + +## WineHQ + +The server is running with wine. So the console output can be a litte strange but it does work. + +## Server Ports + +Portal Knights requires 1 port + +| Port | default | +|-------|---------| +| Game | 16365 | + diff --git a/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json new file mode 100644 index 00000000..076d1ba4 --- /dev/null +++ b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json @@ -0,0 +1,164 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-03-05T15:53:22+01:00", + "name": "Portal Knights", + "author": "josdekurk@gmail.com", + "description": "The world of Elysia needs YOU! Join this cooperative, 3D sandbox action RPG to level up your character, craft epic weapons, conquer enemies in real-time, and build almost anything! Craft your adventure. Forge your hero. Become the ultimate Portal Knight!", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "cd \/home\/container\/dedicated_server; xvfb-run --auto-servernum wine pk_dedicated_server.exe -config server_config.json -log server.log", + "config": { + "files": "{\r\n \"dedicated_server\/server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"basicServerData.name\":\"{{server.build.env.SERVER_NAME}}\",\r\n \"basicServerData.ipv4\":\"0.0.0.0\",\r\n \"basicServerData.port\":\"{{server.build.default.port}}\",\r\n \"basicServerData.saveFolderPath\":\".\/savedata\",\r\n \"admins.credentials.password\":\"{{server.build.env.ADMIN_PASS}}\",\r\n \"users.credentials.password\":\"{{server.build.env.USER_PASS}}\",\r\n \"guests.credentials.password\":\"{{server.build.env.GUEST_PASS}}\",\r\n \"gameplayMode\":\"{{server.build.env.GAMEMODE}}\",\r\n \"universeSize\":\"{{server.build.env.UNIVERSE_SIZE}}\",\r\n \"hideConsoleWindow\":\"true\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Listening on\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nunzip -o dedicated_server.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam user", + "description": "", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Steam password", + "description": "", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Install windows version", + "description": "", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "App id", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "374040", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:374040", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update server on startup.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:win32,win64", + "field_type": "text" + }, + { + "name": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "The name off the server", + "env_variable": "SERVER_NAME", + "default_value": "Servername", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Admin password", + "description": "", + "env_variable": "ADMIN_PASS", + "default_value": "admin_password_please_change", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "User password", + "description": "", + "env_variable": "USER_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Guest password", + "description": "", + "env_variable": "GUEST_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Game mode", + "description": "The game play mode for the dedicated server.", + "env_variable": "GAMEMODE", + "default_value": "Adventure", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:Adventure,Creative", + "field_type": "text" + }, + { + "name": "Universe size", + "description": "The universe size for the dedicated server.", + "env_variable": "UNIVERSE_SIZE", + "default_value": "Normal", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:Small,Normal,Large", + "field_type": "text" + } + ] +} \ No newline at end of file From 0908ad2fbbd2b9435077d00f27007039526fa5b7 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 5 Mar 2023 17:29:33 +0100 Subject: [PATCH 096/110] fix unzip + add storage to readme --- game_eggs/steamcmd_servers/portal_knights/README.md | 4 ++++ .../portal_knights/egg-portal-knights.json | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/portal_knights/README.md b/game_eggs/steamcmd_servers/portal_knights/README.md index 24cf948c..0692eef2 100644 --- a/game_eggs/steamcmd_servers/portal_knights/README.md +++ b/game_eggs/steamcmd_servers/portal_knights/README.md @@ -12,6 +12,10 @@ Because the server files are not in a dedicated Steam app id this egg installs t The server is running with wine. So the console output can be a litte strange but it does work. +## Storage + +This server will at least needs 12GB of storage allocated to be able to start + ## Server Ports Portal Knights requires 1 port diff --git a/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json index 076d1ba4..064cbe10 100644 --- a/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json +++ b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-05T15:53:22+01:00", + "exported_at": "2023-03-05T17:26:48+01:00", "name": "Portal Knights", "author": "josdekurk@gmail.com", "description": "The world of Elysia needs YOU! Join this cooperative, 3D sandbox action RPG to level up your character, craft epic weapons, conquer enemies in real-time, and build almost anything! Craft your adventure. Forge your hero. Become the ultimate Portal Knight!", @@ -17,14 +17,14 @@ "file_denylist": [], "startup": "cd \/home\/container\/dedicated_server; xvfb-run --auto-servernum wine pk_dedicated_server.exe -config server_config.json -log server.log", "config": { - "files": "{\r\n \"dedicated_server\/server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"basicServerData.name\":\"{{server.build.env.SERVER_NAME}}\",\r\n \"basicServerData.ipv4\":\"0.0.0.0\",\r\n \"basicServerData.port\":\"{{server.build.default.port}}\",\r\n \"basicServerData.saveFolderPath\":\".\/savedata\",\r\n \"admins.credentials.password\":\"{{server.build.env.ADMIN_PASS}}\",\r\n \"users.credentials.password\":\"{{server.build.env.USER_PASS}}\",\r\n \"guests.credentials.password\":\"{{server.build.env.GUEST_PASS}}\",\r\n \"gameplayMode\":\"{{server.build.env.GAMEMODE}}\",\r\n \"universeSize\":\"{{server.build.env.UNIVERSE_SIZE}}\",\r\n \"hideConsoleWindow\":\"true\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Listening on\"\r\n}", + "files": "{\r\n \"dedicated_server\/server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"basicServerData.name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"basicServerData.ipv4\": \"0.0.0.0\",\r\n \"basicServerData.port\": \"{{server.build.default.port}}\",\r\n \"basicServerData.saveFolderPath\": \".\/savedata\",\r\n \"admins.credentials.password\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"users.credentials.password\": \"{{server.build.env.USER_PASS}}\",\r\n \"guests.credentials.password\": \"{{server.build.env.GUEST_PASS}}\",\r\n \"gameplayMode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"universeSize\": \"{{server.build.env.UNIVERSE_SIZE}}\",\r\n \"hideConsoleWindow\": \"true\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\":[\r\n \"Listening on\",\r\n \"ReadyToServe\",\r\n \"has started\"\r\n ]\r\n}", "logs": "{}", "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nunzip -o dedicated_server.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\ndir=\/mnt\/server\/dedicated_server\r\nif [[ ! -e $dir ]]; then\r\n mkdir -p $dir\r\nfi\r\n\r\ncd \/mnt\/server\/dedicated_server\r\nunzip -o ..\/dedicated_server.zip\r\ncurl -sSL -o server_config.json https:\/\/pteropaste.com\/f8p6yx0yj07d\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 3b484aba36a67436df7ef0ed000c16824f20f82c Mon Sep 17 00:00:00 2001 From: Kamisoi Date: Wed, 8 Mar 2023 22:14:39 +0100 Subject: [PATCH 097/110] feat: add support for unstable and pre --- game_eggs/vintage_story/README.md | 2 + .../vintage_story/egg-vintage-story.json | 52 +++++++++++++------ 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/game_eggs/vintage_story/README.md b/game_eggs/vintage_story/README.md index 827a8b9c..8770402d 100644 --- a/game_eggs/vintage_story/README.md +++ b/game_eggs/vintage_story/README.md @@ -4,6 +4,8 @@ The server supports mods +Egg supports following branches for server files: [pre](http://api.vintagestory.at/pre.json), [unstable](http://api.vintagestory.at/unstable.json), [stable](http://api.vintagestory.at/stable.json) + ### from the developers Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index 0538ec60..b389d0d7 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -1,13 +1,18 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v2", + "update_url": null }, - "exported_at": "2020-03-20T23:54:00+01:00", - "name": "Vintage Story", - "author": "mail@wuffy.eu", + "exported_at": "2023-03-08T21:10:40+00:00", + "name": "Vintage Story - Custom", + "author": "kamisoi@meowstard.cat", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete", + "features": null, + "docker_images": { + "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete" + }, + "file_denylist": [], "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", "config": { "files": "{}", @@ -17,38 +22,51 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y screen wget curl jq\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=`curl -s 'http:\/\/api.vintagestory.at\/stable.json' | jq -r '[.[]] | .[0].server.urls.cdn'`;\r\n# Use specified server release\r\nelse\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nDEBIAN_FRONTEND=noninteractive apt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [ { - "name": "Start Options", + "name": "Start options", "description": "", "env_variable": "OPTIONS", "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "max:200" + "user_viewable": true, + "user_editable": true, + "rules": "max:200", + "field_type": "text" + }, + { + "name": "Release branch", + "description": "", + "env_variable": "FILES_BRANCH", + "default_value": "stable", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:stable,unstable,pre", + "field_type": "text" }, { "name": "Version", "description": "", "env_variable": "RELEASE_VERSION", "default_value": "latest", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Max Clients", "description": "", "env_variable": "MAX_CLIENTS", "default_value": "16", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|integer|max:2000" + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|max:256", + "field_type": "text" } ] -} +} \ No newline at end of file From 4f0da38cdf4dc3e4e42f469831d88268f29d5b23 Mon Sep 17 00:00:00 2001 From: Kamisoi Date: Wed, 8 Mar 2023 22:53:22 +0100 Subject: [PATCH 098/110] fix: address collaborator comments --- game_eggs/vintage_story/egg-vintage-story.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index b389d0d7..7284489f 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-08T21:10:40+00:00", - "name": "Vintage Story - Custom", - "author": "kamisoi@meowstard.cat", + "exported_at": "2023-03-08T21:52:27+00:00", + "name": "Vintage Story", + "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", "features": null, "docker_images": { - "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete" + "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" }, "file_denylist": [], "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nDEBIAN_FRONTEND=noninteractive apt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -49,7 +49,7 @@ "field_type": "text" }, { - "name": "Version", + "name": "Release version", "description": "", "env_variable": "RELEASE_VERSION", "default_value": "latest", From 68dd5da9d5cd750647fa39e9642de681ffbdee32 Mon Sep 17 00:00:00 2001 From: Kamisoi Date: Thu, 9 Mar 2023 19:24:27 +0100 Subject: [PATCH 099/110] fix: address collaborator comments --- game_eggs/vintage_story/egg-vintage-story.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index 7284489f..3772ad33 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-08T21:52:27+00:00", + "exported_at": "2023-03-09T18:23:31+00:00", "name": "Vintage Story", "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "debian:buster-slim", "entrypoint": "bash" } From 33d7b802a040a8c32fcb0c25660ca07a6c6857d8 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 9 Mar 2023 19:42:16 +0100 Subject: [PATCH 100/110] Vintage_Story: cleanup --- game_eggs/vintage_story/egg-vintage-story.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index 3772ad33..aad82472 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-09T18:23:31+00:00", + "exported_at": "2023-03-09T19:41:11+01:00", "name": "Vintage Story", "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", @@ -16,14 +16,14 @@ "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Dedicated Server now running on Port \",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \".\/data\/Logs\/server-debug.txt\"\r\n}", + "startup": "{\r\n \"done\": \"Dedicated Server now running on Port \"\r\n}", + "logs": "{}", "stop": "\/stop" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -35,7 +35,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "max:200", + "rules": "nullable|string|max:200", "field_type": "text" }, { From a11ef1d92bdac08e40a07736b0ebedc093dfa9ac Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 9 Mar 2023 20:07:50 +0100 Subject: [PATCH 101/110] cleanup: The Isle --- .../the_isle/evrima/egg-the-isle.json | 52 +++++++++++++++---- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json index f21a3a6b..cee68026 100644 --- a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json +++ b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-03T09:34:18+01:00", + "exported_at": "2023-03-09T20:07:00+01:00", "name": "The Isle", "author": "fredrik.johansenfuun@gmail.com", "description": "The Isle is an open beta with an open-world survival game where players choose from three factions in an attempt to survive a fierce island. Hunt. Prey. Survive.", @@ -15,14 +15,14 @@ "file_denylist": [], "startup": "\/home\/container\/steamcmd\/steamcmd.sh +force_install_dir \/home\/container +login Anonymous +app_update 412680 -beta evrima +quit && \/home\/container\/TheIsle\/Binaries\/Linux\/TheIsleServer-Linux-Shipping -Port=$SERVER_PORT -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8", "config": { - "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled{{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\",\r\n \"bEnableHumans\": \"bEnableHumans{{server.build.env.HUMANS}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled={{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\",\r\n \"bEnableHumans\": \"bEnableHumans={{server.build.env.HUMANS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"r.EyeAdaptation.BlackHistogramBucketInfluence =\"\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "logs": "{}", "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nbEnableHumans=${HUMANS}\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\ndiscord=${DISCORD}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\n\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) validate +quit \r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nbEnableHumans=${HUMANS}\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\ndiscord=${DISCORD}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -50,12 +50,12 @@ }, { "name": "RCON", - "description": "true or false", + "description": "Enable RCON", "env_variable": "RCON", - "default_value": "=false", + "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|in:=true,=false", + "rules": "required|string|in:true,false", "field_type": "text" }, { @@ -100,13 +100,43 @@ }, { "name": "Humans", - "description": "Enable or disable humans. true or false", + "description": "Enable humans", "env_variable": "HUMANS", - "default_value": "=false", + "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|in:=true,=false", + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Auto update on restart", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "App id", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "412680", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:412680", + "field_type": "text" + }, + { + "name": "Beta ID", + "description": "Beta branch of a steam app.", + "env_variable": "SRCDS_BETAID", + "default_value": "evrima", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", "field_type": "text" } ] -} +} \ No newline at end of file From 7c4436e97b69928fa6f0d17fb4b4742451e4a771 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:47:20 +0100 Subject: [PATCH 102/110] Xfvb and steamcmd image update --- .../core_keeper/egg-core-keeper.json | 50 ++++++++----------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 1038261c..62c9f95d 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T22:17:05+01:00", + "exported_at": "2023-03-13T17:15:33+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -12,10 +12,10 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH}; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\n#echo \"-----------------------------------------\"\r\n#echo \"Installation completed...\"\r\n#echo \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -82,42 +82,32 @@ }, { "name": "World Mode", - "description": "Whether to use normal (0) or hard (1) mode for world. Default: 0.", + "description": "Whether to use normal (0) or hard (1) mode for world.", "env_variable": "WORLD_MODE", "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|integer|min:0|max:1", - "field_type": "text" - }, - { - "name": "Steam App ID", - "description": "Steam App ID of Core Keeper Dedicated Server. Found here: https:\/\/steamdb.info\/search\/?a=app&q=core+keeper&type=5&category=0", - "env_variable": "SRCDS_APPID", - "default_value": "1963720", - "user_viewable": false, - "user_editable": false, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "Auto Update", - "description": "Enable automatic updates on boot: Default: true", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, "rules": "required|boolean", "field_type": "text" }, { - "name": "XVFB", - "description": "Enable virtual framebuffer. Fix: 1", - "env_variable": "XVFB", - "default_value": "1", + "name": "Steam App ID", + "description": "Steam App ID of Core Keeper Dedicated Server", + "env_variable": "SRCDS_APPID", + "default_value": "1963720", "user_viewable": false, "user_editable": false, - "rules": "required|integer", + "rules": "required|string|in:1963720", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", "field_type": "text" }, { From 500e04a6777aa47d059639f76554a86c1c4f14fe Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:52:47 +0100 Subject: [PATCH 103/110] Updated startup cmd because auf Xvfb --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 62c9f95d..e1bc2c2c 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH}; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "Xvfb :99 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} -nolisten tcp &; DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 60311fba32c980ba464d4f117f305410c0b5cf2e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:05:08 +0100 Subject: [PATCH 104/110] Startcmd changed --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index e1bc2c2c..19bcbf68 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T17:15:33+01:00", + "exported_at": "2023-03-13T19:04:07+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "Xvfb :99 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} -nolisten tcp &; DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 48cbcd53da1b1e85f9bb74e628a17d42b02dd382 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:21:12 +0100 Subject: [PATCH 105/110] Startup command updated --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 19bcbf68..97cdf1fa 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T19:04:07+01:00", + "exported_at": "2023-03-13T19:20:35+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 9f74453f8de9b06f37b8e89567c5c5c3f01e6c33 Mon Sep 17 00:00:00 2001 From: Tim Slager <41442518+Timtendo12@users.noreply.github.com> Date: Thu, 16 Mar 2023 22:29:31 +0100 Subject: [PATCH 106/110] Update README.md --- software/rabbitmq/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/software/rabbitmq/README.md b/software/rabbitmq/README.md index 8679398e..35eb863f 100644 --- a/software/rabbitmq/README.md +++ b/software/rabbitmq/README.md @@ -12,6 +12,8 @@ When setting up a server, the latest RabbitMQ version will be used by default. With pretty new and old versions of RabbitMQ, you might have to adjust the used Erlang version. This can be archived by adjusting the version number of the used image (e. g. `ghcr.io/pterodactyl/yolks:erlang_22` instead of `ghcr.io/parkervcp/yolks:erlang_24`). +The latest version as of now requires you to use atleast ghcr.io/pterodactyl/yolks:erlang_25 + ## Configuration Configuring RabbitMQ in Pterodactyl is only possible using the config files. From 9df35627fc398a8cc358086c7242670288a82c3f Mon Sep 17 00:00:00 2001 From: Tim Slager <41442518+Timtendo12@users.noreply.github.com> Date: Thu, 16 Mar 2023 22:30:58 +0100 Subject: [PATCH 107/110] Update egg-rabbit-m-q.json --- software/rabbitmq/egg-rabbit-m-q.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/software/rabbitmq/egg-rabbit-m-q.json b/software/rabbitmq/egg-rabbit-m-q.json index 41125ca4..f00a6a7a 100644 --- a/software/rabbitmq/egg-rabbit-m-q.json +++ b/software/rabbitmq/egg-rabbit-m-q.json @@ -10,6 +10,8 @@ "description": "RabbitMQ is a feature rich, multi-protocol messaging broker.", "features": null, "images": [ + "ghcr.io\/parkervcp\/yolks:erlang_26", + "ghcr.io\/parkervcp\/yolks:erlang_25", "ghcr.io\/parkervcp\/yolks:erlang_24", "ghcr.io\/parkervcp\/yolks:erlang_23", "ghcr.io\/parkervcp\/yolks:erlang_22" From bb2425abf2b83c5618936d39e0eefbe8ef0016e2 Mon Sep 17 00:00:00 2001 From: Imad <63809553+imadqadri@users.noreply.github.com> Date: Thu, 16 Mar 2023 17:02:42 -0700 Subject: [PATCH 108/110] fix: 'variabe' typo --- game_eggs/steamcmd_servers/rust/rust_autowipe/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md b/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md index d2e8763b..828c2636 100644 --- a/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md +++ b/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md @@ -6,7 +6,7 @@ Adds variables to wipe files based on a list you set. Reinstall to perform the w The variable `REGEN_SERVER` was added, default 0, set to 1 to generate a random seed and remove old files on reinstall. -Files listed in the `REMOVE_FILES` variabe, space separated, will be removed. +Files listed in the `REMOVE_FILES` variable, space separated, will be removed. ## Minimum RAM warning From cb56d8795e244a8a48e77487363d2a8e72a3e221 Mon Sep 17 00:00:00 2001 From: Tim Slager <41442518+Timtendo12@users.noreply.github.com> Date: Fri, 17 Mar 2023 19:25:12 +0100 Subject: [PATCH 109/110] exported via panel. --- software/rabbitmq/egg-rabbit-m-q.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/software/rabbitmq/egg-rabbit-m-q.json b/software/rabbitmq/egg-rabbit-m-q.json index f00a6a7a..57a785f8 100644 --- a/software/rabbitmq/egg-rabbit-m-q.json +++ b/software/rabbitmq/egg-rabbit-m-q.json @@ -1,21 +1,21 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-08-02T15:24:45+02:00", + "exported_at": "2023-03-17T19:22:21+01:00", "name": "RabbitMQ", "author": "p.zarrad@outlook.de", "description": "RabbitMQ is a feature rich, multi-protocol messaging broker.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:erlang_26", - "ghcr.io\/parkervcp\/yolks:erlang_25", - "ghcr.io\/parkervcp\/yolks:erlang_24", - "ghcr.io\/parkervcp\/yolks:erlang_23", - "ghcr.io\/parkervcp\/yolks:erlang_22" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:erlang_26": "ghcr.io\/parkervcp\/yolks:erlang_26", + "ghcr.io\/parkervcp\/yolks:erlang_25": "ghcr.io\/parkervcp\/yolks:erlang_25", + "ghcr.io\/parkervcp\/yolks:erlang_24": "ghcr.io\/parkervcp\/yolks:erlang_24", + "ghcr.io\/parkervcp\/yolks:erlang_23": "ghcr.io\/parkervcp\/yolks:erlang_23", + "ghcr.io\/parkervcp\/yolks:erlang_22": "ghcr.io\/parkervcp\/yolks:erlang_22" + }, "file_denylist": [], "startup": ".\/sbin\/rabbitmq-server", "config": { @@ -39,7 +39,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] } From 02362c996f48d6837ae4aded88aca9b8e46aa787 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sun, 19 Mar 2023 13:38:24 +0100 Subject: [PATCH 110/110] Core-Keeper: Updated startup check after server update (#2192) Core-Keeper: Updated startup check after server update --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 97cdf1fa..87a087c4 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T19:20:35+01:00", + "exported_at": "2023-03-18T23:18:52+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -18,7 +18,7 @@ "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", + "startup": "{\r\n \"done\": \"Started session\"\r\n}", "logs": "{}", "stop": "^C" },