From d9c28e23ad82c7fae8a50fa3f84e6543a628dd43 Mon Sep 17 00:00:00 2001 From: HyperBeats Date: Thu, 23 Jun 2022 16:08:08 +0200 Subject: [PATCH 01/31] 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 02/31] 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 03/31] 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 8e9a223051e00daa6dda0b36bab0060d669c3d9e Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 13:54:45 +0100 Subject: [PATCH 04/31] 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 05/31] 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 06/31] 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 07/31] 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 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 08/31] 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 09/31] 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 d446b380ea152e0ad780f4bc5f9b9c1e4dc2f5ac Mon Sep 17 00:00:00 2001 From: gOOvER Date: Tue, 31 Jan 2023 12:00:36 +0100 Subject: [PATCH 10/31] 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 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 11/31] 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 12/31] 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 13/31] 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 14/31] 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 15/31] 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 16/31] 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 17/31] 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 18/31] 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 19/31] 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 20/31] 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 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 21/31] 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 22/31] 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 23/31] 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 24/31] 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 8e456d0b4f06fa92958d29243681549c699b229e Mon Sep 17 00:00:00 2001 From: tzanou Date: Mon, 20 Feb 2023 02:34:47 +0100 Subject: [PATCH 25/31] 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 26/31] 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 27/31] 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 28/31] 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 29/31] 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 30/31] 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 31/31] 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