diff --git a/README.md b/README.md index 17e8d3ce..ef388044 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,9 @@ If you are reading this it looks like you are looking to add an egg to your serv * [rabbitmq](/software/rabbitmq) +### 5e Tools +* [5e Tools](/software/5e-tools) + ### Reposilite * [Reposilite](/software/reposilite) diff --git a/database/nosql/mongodb/egg-mongo-d-b.json b/database/nosql/mongodb/egg-mongo-d-b.json index 45257138..311f157b 100644 --- a/database/nosql/mongodb/egg-mongo-d-b.json +++ b/database/nosql/mongodb/egg-mongo-d-b.json @@ -8,7 +8,7 @@ "author": "parker@parkervcp.com", "description": "MongoDB is a general purpose, document-based, distributed database built for modern application developers and for my butt era.", "image": "quay.io\/parkervcp\/pterodactyl-images:db_mongo-4", - "startup": "mongod --fork --dbpath \/home\/container\/mongodb\/ --port ${SERVER_PORT} --bind_ip 0.0.0.0 --logpath \/home\/container\/logs\/mongo.log -f \/home\/container\/mongod.conf; until nc -z -v -w5 127.0.0.1 ${SERVER_PORT}; do echo 'Waiting for mongodb connection...'; sleep 5; done && mongo --username ${MONGO_USER} --auth --password ${MONGO_USER_PASS} --host 127.0.0.1:${SERVER_PORT} && mongo --eval \"db.getSiblingDB('admin').shutdownServer()\" 127.0.0.1:${SERVER_PORT}", + "startup": "mongod --fork --dbpath \/home\/container\/mongodb\/ --port ${SERVER_PORT} --bind_ip 0.0.0.0 --logpath \/home\/container\/logs\/mongo.log -f \/home\/container\/mongod.conf; until nc -z -v -w5 127.0.0.1 ${SERVER_PORT}; do echo 'Waiting for mongodb connection...'; sleep 5; done && mongo --username ${MONGO_USER} --password ${MONGO_USER_PASS} --host 127.0.0.1:${SERVER_PORT} && mongo --eval \"db.getSiblingDB('admin').shutdownServer()\" 127.0.0.1:${SERVER_PORT}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"child process started successfully\"\r\n}", diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index e10d63b2..3e8fca16 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -13,39 +13,39 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, ## [Java](java) Servers for Java Minecraft -* [Airplane](minecraft/java/airplane) -* [Cuberite](minecraft/java/cuberite) -* [Fabric](minecraft/java/fabric) -* [Feather](minecraft/java/feather) -* [Forge](minecraft/java/forge) - * [Forge](minecraft/java/forge/forge) - * [CusreForge Generic](minecraft/java/forge/curseforge-generic) -* [Feed The Beast](minecraft/java/ftb) -* [Glowstone](/minecraft/java/glowstone) -* [Krypton](/minecraft/java/krypton) -* [Magma](minecraft/java/magma) -* [Mohist](minecraft/java/mohist) -* [NanoLimbo](/minecraft/java/nanolimbo) -* [Paper](minecraft/java/paper) -* [Purpur](minecraft/java/purpur) -* [Spigot](minecraft/java/spigot) -* [SpongeForge](minecraft/java/spongeforge) -* [SpongeVanilla](minecraft/java/spongevanilla) -* [Technic](minecraft/java/technic) -* [Tuinity](minecraft/java/tuinity) -* [VanillaCord](minecraft/java/vanillacord) +* [Airplane](java/airplane) +* [Cuberite](java/cuberite) +* [Fabric](java/fabric) +* [Feather](java/feather) +* [Forge](java/forge) + * [Forge](java/forge/forge) + * [CusreForge Generic](java/forge/curseforge-generic) +* [Feed The Beast](java/ftb) +* [Glowstone](java/glowstone) +* [Krypton](java/krypton) +* [Magma](java/magma) +* [Mohist](java/mohist) +* [NanoLimbo](java/nanolimbo) +* [Paper](java/paper) +* [Purpur](java/purpur) +* [Spigot](java/spigot) +* [SpongeForge](java/spongeforge) +* [SpongeVanilla](/java/spongevanilla) +* [Technic](java/technic) +* [Tuinity](java/tuinity) +* [VanillaCord](java/vanillacord) ## [Proxies](proxy) Minecraft Server Proxies -* [Bedrock](minecraft/proxy/bedrock) - * [Waterdog PE](minecraft/proxy/bedrock/waterdog_pe) -* [Cross Platform](minecraft/proxy/cross_platform) - * [GeyserMC](minecraft/proxy/cross_platform/geyser) - * [Waterdog](minecraft/proxy/cross_platform/waterdog) -* [Java](minecraft/proxy/java) - * [FlameCord](minecraft/proxy/java/flamecord) - * [Travertine](minecraft/proxy/java/travertine) - * [TyphoonLimbo](minecraft/proxy/java/typhoonlimbo) - * [Velocity](minecraft/proxy/java/velocity) - * [VIAaas](minecraft/proxy/java/viaaas) - * [Waterfall](minecraft/proxy/java/waterfall) \ No newline at end of file +* [Bedrock](proxy/bedrock) + * [Waterdog PE](proxy/bedrock/waterdog_pe) +* [Cross Platform](proxy/cross_platform) + * [GeyserMC](proxy/cross_platform/geyser) + * [Waterdog](proxy/cross_platform/waterdog) +* [Java](proxy/java) + * [FlameCord](proxy/java/flamecord) + * [Travertine](proxy/java/travertine) + * [TyphoonLimbo](proxy/java/typhoonlimbo) + * [Velocity](proxy/java/velocity) + * [VIAaas](proxy/java/viaaas) + * [Waterfall](proxy/java/waterfall) diff --git a/game_eggs/minecraft/java/magma/README.md b/game_eggs/minecraft/java/magma/README.md index 009ea1ca..f786b921 100644 --- a/game_eggs/minecraft/java/magma/README.md +++ b/game_eggs/minecraft/java/magma/README.md @@ -2,7 +2,7 @@ Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability. -[Magma Website](https://magmefoundation.org/) +[Magma Website](https://magmafoundation.org/) ## Server Ports diff --git a/game_eggs/steamcmd_servers/arma/arma3/egg-arma3.json b/game_eggs/steamcmd_servers/arma/arma3/egg-arma3.json index 9c72ea16..c4bc36b3 100644 --- a/game_eggs/steamcmd_servers/arma/arma3/egg-arma3.json +++ b/game_eggs/steamcmd_servers/arma/arma3/egg-arma3.json @@ -165,6 +165,15 @@ "user_editable": true, "rules": "nullable|string" }, + { + "name": "[Advanced] Optional Client-Side Mods", + "description": "A semicolon-separated list of optional mods to load into the keys folder, but not include in server's mod parameter. Useful for allowing clients to connect to the server with or without the mod loaded. Mods in this list must be in \"@workshopID\" form (ex. @123456789;@987654321;). These will also be included in Automatic Updates (if enabled).", + "env_variable": "OPTIONALMODS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, { "name": "[Advanced] Extra Flags for SteamCMD", "description": "[This will override \"Download Creator DLCs\" if used] Only used when checking for server updates, and typically used for grabbing beta builds. Example: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3", diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index 79b49fed..ccd22a4f 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -3,7 +3,7 @@ ***Updating your Egg?**: Ensure any existing servers have the latest Startup Command, new Startup Variables are set, **and you reinstall server!*** ___ -## Authors / Contributors +### Authors / Contributors @@ -77,22 +77,24 @@ ___ - *[Experimental]* Max player configuration. - Autosave amount and interval configuration. - Disable crash reporting if desired. +- Disable seasonal events if desired. - ...and other advanced networking and server branch configurable settings. ___ ### Server Ports -- Default server ports are listed below, but all three ports can be changed freely. +- Default server ports are listed below, but all three ports can be changed freely (\*some exceptions apply below). + - All three ports must be unique; they cannot currently be shared on one port (this may change in the future). + - It is recommended to distance ports of other running Satisfactory servers in Pterodactyl by **increments of 100** (it is currently unknown what the minimum increment is, but an increment of +1 caused cross-server talk in testing). Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). - **Note:** The Primary/Default/Game Port for your server in Pterodactyl will be Satisfactory's `-Port=????` game port, even though clients will **connect with the Query port**. -- It is recommended to distance ports of other running Satisfactory servers in Pterodactyl by **increments of 100** (it is currently unknown what the minimum increment is, but an increment of +1 caused cross-server talk in testing). Also, your internal ports **must match** your external ports on your network (ie. you can't have an external port of 7778 forwarded to your 7777 internal port; they must match). - ***All three ports are required to be open/allocated for normal server behavior!*** | Port | Default (UDP) | |---------|---------| | **Game (Primary Port in Pterodactyl)** | 7777 | | Beacon | 15000 | -| Server Query | 15777 | +| Server Query (Port clients connect with) | 15777 | ___ @@ -126,7 +128,8 @@ ___ ### Save Files An existing save file (including single-player saves) can currently be uploaded to the server via two different methods: -- "Manage Saves" tab via a client in-game (Recommended) + +- "Manage Saves" tab via an admin client in-game (Recommended) - Manually via the File Manager or SFTP Save files are located in this directory: @@ -149,12 +152,13 @@ ___ ### Console Commands -As of v0.5.1.2, the console tab in the client server manager is the only way to execute commands. Entering commands via Pterodactyl do nothing. +As of v0.5.1.10, the console tab in the client server manager is the only way to execute commands. Entering commands via Pterodactyl do nothing. [List of known commands can be found via the Wiki.](https://satisfactory.fandom.com/wiki/Dedicated_servers#Console_commands) + ___ -### Errors/Warnings +### Known Errors/Warnings The following errors or warnings you see in the console can safely be ignored: @@ -164,13 +168,13 @@ steamclient.so: cannot open shared object file: No such file or directory LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. ``` -The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#SteamAPI_Init.28.29:_Sys_LoadModule_filed_to_load:_.2Fpath.2Fto.2F.steam.2Fsdk64.2Fsteamclient.so)). +↑ The local file of 'steamclient.so' was attempted to be loaded, but could not because it is not present, causing the warning message. However, the backup `/home/container/.steam/sdk64/steamclient.so` is loaded successfully (this is the correct behavior according to the [Wiki](https://satisfactory.fandom.com/wiki/Dedicated_servers#SteamAPI_Init.28.29:_Sys_LoadModule_filed_to_load:_.2Fpath.2Fto.2F.steam.2Fsdk64.2Fsteamclient.so)). ```log Warning: failed to init SDL thread priority manager: SDL not found ``` -This is a common error with Steam related software on Linux, but can safely be ignored. +↑ This is a common error with Steam related software on Linux, but can safely be ignored. ```log ...Error: Couldn't find file for package... @@ -188,4 +192,4 @@ This is a common error with Steam related software on Linux, but can safely be i LogStreaming: Warning: Failed to read file '../../../FactoryGame/Saved/SaveGames/GameAnalytics.sav' error. ``` -These seem to be common error messages with the current experimental version of the game. +↑ These seem to be common error messages with the current experimental version of the game. diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index 3d8f7889..cc82ea88 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -1,5 +1,5 @@ { - "_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2021-11-29", + "_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2022-02-07", "meta": { "version": "PTDL_v1", "update_url": null @@ -14,7 +14,7 @@ "ghcr.io\/parkervcp\/games:source" ], "file_denylist": [], - "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0", + "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", "config": { "files": "{\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n },\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/Engine.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"mNumRotatingAutosaves\": \"mNumRotatingAutosaves={{server.build.env.NUM_AUTOSAVES}}\",\r\n \"bImplicitSend\": \"bImplicitSend={{server.build.env.UPLOAD_CRASH_REPORT}}\",\r\n \"InitialConnectTimeout\": \"InitialConnectTimeout={{server.build.env.INIT_CONNECT_TIMEOUT}}\",\r\n \"ConnectionTimeout\": \"ConnectionTimeout={{server.build.env.CONNECT_TIMEOUT}}\"\r\n }\r\n },\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"mFloatValues\": \"mFloatValues=((\\\"FG.AutosaveInterval\\\", {{server.build.env.AUTOSAVE_INTERVAL}}))\",\r\n \"mIntValues\": \"mIntValues=((\\\"FG.NetworkQuality\\\", {{server.build.env.NETWORK_QUALITY}}))\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Engine Initialization\"\r\n}", @@ -92,6 +92,15 @@ "user_editable": true, "rules": "required|string|in:true,false" }, + { + "name": "Disable Seasonal Events", + "description": "Accepted values are \"true\" or \"false\". Setting to \"true\" will disable any currently active seasonal events.", + "env_variable": "DISABLE_SEASONAL", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false" + }, { "name": "[Experimental] Max Players", "description": "[Requires server re-install to change default value!] The server and client are currently not optimized to support more than 4 players. However, you can override this value here at your own risk of poor performance.", diff --git a/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json b/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json index 446b9485..6ff877ef 100644 --- a/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json +++ b/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-08-18T21:29:22+02:00", + "exported_at": "2022-04-23T15:20:19+02:00", "name": "Subnautica", "author": "tueye@tuworld.de", "description": "Subnautica is an open world survival action-adventure video game developed and published by Unknown Worlds Entertainment. In it, players are free to explore the ocean on an alien planet, known as planet 4546B, after their spaceship, the Aurora, crashes on the planet's surface.\r\n\r\nNote: NitroxMod version >=1.5.0.0 is required", @@ -12,7 +12,7 @@ "steam_disk_space" ], "images": [ - "quay.io\/pterodactyl\/core:mono" + "ghcr.io\/parkervcp\/yolks:mono_latest" ], "file_denylist": [], "startup": "mono .\/nitrox\/NitroxServer-Subnautica.exe", @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates libsdl2-2.0-0:i386\r\n\r\n## Get latest Nitrox-Mod build\r\nlatest_NitroxMod=$(curl --silent \"https:\/\/api.github.com\/repos\/SubnauticaNitrox\/Nitrox\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/')\r\n\r\nif [ -z \"${NITROX_VERSION}\" ] || [ \"${NITROX_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_NitroxMod\r\nelse\r\n DL_VERSION=${NITROX_VERSION}\r\nfi\r\n\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n[ ! -d \"$HOME\/subnautica\" ] && mkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n\r\n## Download and extract Nitrox\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\nmkdir $HOME\/nitrox\r\ncd $HOME\/nitrox\r\ncurl -sL https:\/\/github.com\/SubnauticaNitrox\/Nitrox\/releases\/download\/${DL_VERSION}\/Nitrox.${DL_VERSION}.zip -o Nitrox.${DL_VERSION}.zip\r\nunzip $HOME\/nitrox\/Nitrox.${DL_VERSION}.zip\r\n\r\n\r\n## Create path files to Subnautica Install-Dir\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\n\r\n\r\n## Create config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat < $HOME\/server.cfg\r\n # Server settings can be changed here\r\n # Leave blank for a random spawn position\r\n Seed=\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n # Command to run following a successful world save (e.g. .exe, .bat, or PowerShell script). \r\n PostSaveCommandPath=\r\n MaxConnections=100\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=JSON\r\n # Possible values: NONE, PLAYER, MODERATOR, ADMIN, CONSOLE\r\n DefaultPlayerPerm=PLAYER\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\n # If set to true, the server will try to open port on your router via UPnP\r\n AutoPortForward=False\r\nEOT\r\nfi", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl jq unzip libstdc++6 ca-certificates libsdl2-2.0-0:i386\r\n\r\n## Get latest Nitrox-Mod build\r\n#latest_NitroxMod=$(curl --silent \"https:\/\/api.github.com\/repos\/SubnauticaNitrox\/Nitrox\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/')\r\n\r\n#if [ -z \"${NITROX_VERSION}\" ] || [ \"${NITROX_VERSION}\" == \"latest\" ]; then\r\n# DL_VERSION=$latest_NitroxMod\r\n#else\r\n# DL_VERSION=${NITROX_VERSION}\r\n#fi\r\n\r\n## get release info and download links\r\nGITHUB_PACKAGE=\"SubnauticaNitrox\/Nitrox\"\r\nVERSION=${NITROX_VERSION}\r\nMATCH=\"Nitrox\"\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n[ ! -d \"$HOME\/subnautica\" ] && mkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Download and extract Nitrox\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\nmkdir $HOME\/nitrox\r\ncd $HOME\/nitrox\r\ncurl -sL $DOWNLOAD_URL -o Nitrox.zip\r\nunzip $HOME\/nitrox\/Nitrox.zip\r\n\r\n\r\n## Create path files to Subnautica Install-Dir. Needed for versions pre 1.6.0\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\n\r\n## Create mono registry entry for Subnautica Install-Dir. Needed for versions since 1.6.0\r\nmkdir -p $HOME\/.mono\/registry\/CurrentUser\r\n cat < $HOME\/.mono\/registry\/CurrentUser\/values.xml\r\n \r\n \/home\/container\/subnautica<\/value>\r\n <\/values>\r\nEOT\r\n\r\n\r\n## Create config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat < $HOME\/server.cfg\r\n # Server settings can be changed here\r\n # Set to true to Cache entities for the whole map on next run. \r\n # WARNING! Will make server load take longer on the cache run but players will gain a performance boost when entering new areas.\r\n CreateFullEntityCache=False\r\n # Leave blank for a random spawn position\r\n Seed=\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n # Command to run following a successful world save (e.g. .exe, .bat, or PowerShell script). \r\n PostSaveCommandPath=\r\n MaxConnections=100\r\n InitialSyncTimeout=300000\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=JSON\r\n # Possible values: NONE, PLAYER, MODERATOR, ADMIN, CONSOLE\r\n DefaultPlayerPerm=PLAYER\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\n # If set to true, the server will try to open port on your router via UPnP\r\n AutoPortForward=False\r\nEOT\r\nfi", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -118,7 +118,7 @@ "default_value": "PleaseChangeMe", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|between:3,12" + "rules": "required|string|between:3,16" }, { "name": "Game Mode", @@ -148,4 +148,4 @@ "rules": "required|string|in:PROTOBUF,JSON" } ] -} +} \ No newline at end of file diff --git a/software/5e-tools/README.md b/software/5e-tools/README.md new file mode 100644 index 00000000..b8ffb15b --- /dev/null +++ b/software/5e-tools/README.md @@ -0,0 +1,4 @@ +# 5e Tools +> A suite of tools for 5th Edition Dungeons & Dragons players and Dungeon Masters. + +This is a self-hosted mirror of https://5e.tools. It will clone a github repository mirror on install and update on container reboot. diff --git a/software/5e-tools/egg-5e-tools.json b/software/5e-tools/egg-5e-tools.json new file mode 100644 index 00000000..7643cad4 --- /dev/null +++ b/software/5e-tools/egg-5e-tools.json @@ -0,0 +1,41 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-11-15T13:39:55-08:00", + "name": "5e Tools", + "author": "pterodactyl@demi.cloud", + "description": "A suite of tools for 5th Edition Dungeons & Dragons players and Dungeon Masters.", + "features": null, + "images": [ + "ghcr.io\/parkervcp\/yolks:debian" + ], + "file_denylist": [], + "startup": "cd ~\/5e-tools && git pull && cd && .\/caddy run -config ~\/caddy.json", + "config": { + "files": "{\r\n \"caddy.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"apps.http.servers.srv0.listen.0\": \":{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"serving initial configuration\",\r\n \"userInteraction\": []\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# 5e Tools install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR=\"\/mnt\/server\"\r\ndeclare -r CADDY_INSTALL_URL=\"https:\/\/caddyserver.com\/api\/download?os=linux&arch=amd64&idempotency=41554620449867\"\r\ndeclare -r LOCAL_REPO=\"${DIR}\/5e-tools\"\r\n\r\ndie() {\r\n local message=\"$1\"\r\n printf \"\\n%s\\n\" \"${message}\"\r\n exit 2\r\n}\r\ncd_error() {\r\n die \"ERROR: installation encountered an error while trying to change directory\"\r\n}\r\n\r\nmain() {\r\n local git_origin\r\n apt update\r\n apt install -y wget\r\n cd \"${DIR}\" || cd_error\r\n printf \"\\nInstalling Caddy...\\n\"\r\n wget \"${CADDY_INSTALL_URL}\" -O .\/caddy\r\n chmod +x .\/caddy\r\n printf \"\\nGenerating Caddy configuration...\\n\"\r\n # this is a default config\r\n # key variables, such as the port, will get overwritten with the pterodactyl\r\n # configuration parser\r\n cat <\"${DIR}\/caddy.json\"\r\n{\r\n \"apps\": {\r\n \"http\": {\r\n \"servers\": {\r\n \"srv0\": {\r\n \"listen\": [\r\n \":8080\"\r\n ],\r\n \"routes\": [\r\n {\r\n \"handle\": [\r\n {\r\n \"handler\": \"vars\",\r\n \"root\": \"\/home\/container\/5e-tools\"\r\n },\r\n {\r\n \"encodings\": {\r\n \"gzip\": {},\r\n \"zstd\": {}\r\n },\r\n \"handler\": \"encode\",\r\n \"prefer\": [\r\n \"zstd\",\r\n \"gzip\"\r\n ]\r\n },\r\n {\r\n \"handler\": \"file_server\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n}\r\nEOF\r\n git config --global pull.ff only\r\n if [[ ! -d \"${LOCAL_REPO}\" ]]; then\r\n printf \"\\nCloning latest version (this may take a while)...\\n\"\r\n # $REPOSITORY is passed via environment variable from pterodactyl\r\n git clone \"${REPOSITORY}\" \"${LOCAL_REPO}\"\r\n else\r\n cd \"${LOCAL_REPO}\" || cd_error\r\n git_origin=\"$(git config --get remote.origin.url)\"\r\n cd \"${DIR}\" || cd_error\r\n printf \"\\n\\ngit origin is %s\\n\\n\" \"${git_origin}\"\r\n # if the user hasn't change the repository variable\r\n if [[ \"${git_origin}\" == \"${REPOSITORY}\" ]]; then\r\n cd \"${LOCAL_REPO}\" || cd_error\r\n printf \"\\nRepository already installed - updating...\\n\"\r\n git fetch --all\r\n git reset --hard origin\/master\r\n git pull\r\n cd \"${DIR}\" || cd_error\r\n else\r\n printf \"\\nRepository variable changed since last update\\n...\\n\"\r\n rm -rf \"${LOCAL_REPO}\"\r\n git clone \"${REPOSITORY}\" \"${LOCAL_REPO}\"\r\n fi\r\n fi\r\n printf \"\\nInstallation Complete\\n\"\r\n}\r\nmain \"@\"", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "5e Tools Repository", + "description": "Git Repository to use for cloning 5e Tools", + "env_variable": "REPOSITORY", + "default_value": "https:\/\/github.com\/5etools-mirror-1\/5etools-mirror-1.github.io", + "user_viewable": false, + "user_editable": false, + "rules": "required|url" + } + ] +} diff --git a/voice_servers/lavalink/egg-lavalink.json b/voice_servers/lavalink/egg-lavalink.json index 29b3a673..5fee7eba 100644 --- a/voice_servers/lavalink/egg-lavalink.json +++ b/voice_servers/lavalink/egg-lavalink.json @@ -10,7 +10,7 @@ "description": "Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.\r\nDescription taken from https:\/\/github.com\/Frederikam\/Lavalink", "features": null, "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-13" + "ghcr.io/parkervcp/yolks:java_11" ], "file_denylist": [], "startup": "java -jar Lavalink.jar", @@ -23,9 +23,9 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -L -o Lavalink.jar https:\/\/github.com\/freyacodes\/Lavalink\/releases\/latest\/download\/Lavalink.jar\r\n\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/freyacodes\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "debian:buster-slim", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, "variables": [] -} \ No newline at end of file +}