From 4a4d62e616181055e5384fa6ecc370e6d2703c63 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Fri, 16 Feb 2018 01:56:27 -0500 Subject: [PATCH] 3 new eggs Factorio, Terraria, Minecraft. Factorio - default service basic variables Terraria - Tshock modded game server Spigot - Builds the spigot jar from scratch on each install. Installs take some time to complete due to this. Bonus - New README --- Factorio/egg-factorio.json | 63 ++++++++++++++++++++++++++++++++ Minecraft/spigot/egg-spigot.json | 54 +++++++++++++++++++++++++++ README.md | 27 +++++++++++++- Terraria/tshock/egg-t-shock.json | 63 ++++++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 Factorio/egg-factorio.json create mode 100644 Minecraft/spigot/egg-spigot.json create mode 100644 Terraria/tshock/egg-t-shock.json diff --git a/Factorio/egg-factorio.json b/Factorio/egg-factorio.json new file mode 100644 index 00000000..40e2d1b9 --- /dev/null +++ b/Factorio/egg-factorio.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2018-02-15T17:03:01-05:00", + "name": "Factorio", + "author": "parker@parkervcp.com", + "description": "The vanilla Factorio server.\r\n\r\nhttps:\/\/www.factorio.com\/", + "image": "quay.io\/pterodactyl\/core:glibc", + "startup": ".\/bin\/x64\/factorio --port {{SERVER_PORT}} --start-server {{SAVE_NAME}}.zip", + "config": { + "files": "{\r\n \"factorio\/data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"game_password\": \"{{server.build.env.SERVER_PASS}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"factorio-current.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl tar xz\r\n\r\nlatest_stable=`curl https:\/\/updater.factorio.com\/get-available-versions | grep stable | grep -o -E '([0-9]\\.[0-9][0-9]\\.[0-9][0-9]|[0-9]\\.[0-9][0-9]\\.[0-9])'`\r\nlatest_experimental=`curl https:\/\/updater.factorio.com\/get-available-versions | grep to | grep -o -E '([0-9]\\.[0-9][0-9]\\.[0-9][0-9]|[0-9]\\.[0-9][0-9]\\.[0-9])' | tail -1`\r\n\r\nif [ -z \"$F_VERSION\" ] || [ \"$F_VERSION\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"$F_VERSION\" == \"experimental\"]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=$F_VERSION\r\nfi\r\n\r\necho \"\\n running 'curl -L https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}.tar.gz' \\n\"\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -L https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}.tar.gz\r\n\r\ntar -xf factorio-${DL_VERSION}.tar.gz --strip-components=1 -C \/mnt\/server\r\n\r\nrm factorio-${DL_VERSION}.tar.gz\r\n\r\nmv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nmv data\/server-settings.example.json data\/server-settings.json\r\n\r\n.\/bin\/x64\/factorio --create ${SAVE_NAME}", + "container": "frolvlad\/alpine-glibc", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Factorio Version", + "description": "Which version of Factorio to install and use.", + "env_variable": "FACTORIO_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|between:3,12" + }, + { + "name": "Maximum Slots", + "description": "Total number of slots to allow on the server.", + "env_variable": "MAX_SLOTS", + "default_value": "20", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "Server Password", + "description": "Password to log onto the server.", + "env_variable": "SERVER_PASS", + "default_value": "password", + "user_viewable": 1, + "user_editable": 1, + "rules": "alpha_dash|between:1,100" + }, + { + "name": "Save Name", + "description": "The save name for the server.", + "env_variable": "SAVE_NAME", + "default_value": "gamesave", + "user_viewable": 1, + "user_editable": 1, + "rules": "alpha_dash|between:1,100" + } + ] +} \ No newline at end of file diff --git a/Minecraft/spigot/egg-spigot.json b/Minecraft/spigot/egg-spigot.json new file mode 100644 index 00000000..ca91d1a3 --- /dev/null +++ b/Minecraft/spigot/egg-spigot.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2018-02-15T16:00:42-05:00", + "name": "Spigot", + "author": "support@pterodactyl.io", + "description": "Spigot is the most widely-used modded Minecraft server software in the world. It powers many of the top Minecraft server networks around to ensure they can cope with their huge player base and ensure the satisfaction of their players. Spigot works by reducing and eliminating many causes of lag, as well as adding in handy features and settings that help make your job of server administration easier.", + "image": "quay.io\/pterodactyl\/core:java-glibc", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Spigot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n apk update\r\n apk add curl\r\n\r\n cd \/mnt\/server\r\n\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n curl -sSL -o ${SERVER_JARFILE} ${MODIFIED_DOWNLOAD}\r\nelse\r\n apk add --no-cache curl git openjdk8 openssl\r\n \r\n cd \/srv\/\r\n \r\n wget https:\/\/hub.spigotmc.org\/jenkins\/job\/BuildTools\/lastSuccessfulBuild\/artifact\/target\/BuildTools.jar\r\n \r\n mv BuildTools.jar \/srv\/\r\n\r\n java -jar BuildTools.jar --rev ${SPIGOT_VERSION}\r\n\r\n mv spigot-*.jar \/mnt\/server\/${SERVER_JARFILE}\r\nfi", + "container": "alpine:3.7", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Spigot Version", + "description": "The version of Spigot to download (using the --rev tag). Use \"latest\" for latest.", + "env_variable": "SPIGOT_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|between:3,7" + }, + { + "name": "Download Path", + "description": "A URL to use to download Spigot rather than building it on the server. This is not user viewable. Use {{DL_VERSION}}<\/code> in the URL to automatically insert the assigned version into the URL. If you do not enter a URL Spigot will build directly in the container (this will fail on low memory containers).", + "env_variable": "DL_PATH", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "nullable|string" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 732c85a1..7f9c18d0 100644 --- a/README.md +++ b/README.md @@ -1 +1,26 @@ -eggs +# Parkers Pterodactyl eggs repo + +I am working on adding a large collection of public eggs for the Pterodactyl community. + +With that I am also accepting PR's for new service and also updates to the current ones. + +If you are submitting PR's try and keep names and titles the same. + + +## Current Game Eggs +### GTA +#### FiveM +The [FiveM](https://fivem.net/) GTA 5 dedicated server + +### Factorio +#### factorio +The [Factorio](https://factorio.com/) dedicated server + +### Terraria +#### tShock +The [tShock](https://tshock.co) modded server + +### Minecraft +#### Spigot +This is a direct fork of the default spigot service with the added benefit of being able to build the spigot jar. +(It's noted that building the jar is intensive and time consuming) \ No newline at end of file diff --git a/Terraria/tshock/egg-t-shock.json b/Terraria/tshock/egg-t-shock.json new file mode 100644 index 00000000..179b2b4b --- /dev/null +++ b/Terraria/tshock/egg-t-shock.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2018-02-16T01:54:29-05:00", + "name": "tShock", + "author": "parker@parkervcp.com", + "description": "The tShock modded terraria server.\r\n\r\nhttps:\/\/tshock.co\/", + "image": "quay.io\/pterodactyl\/core:mono", + "startup": "mono TerrariaServer.exe -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -world {{WORLD_NAME}}.wld -autocreate {{WORLD_SIZE}}", + "config": { + "files": "{\r\n \"tshock\/config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {}\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"ServerLog.txt\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Vanilla T-shock Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"Downloading and installing ${TSHOCK_VERSION}\"\r\n\r\necho -e \"running wget https:\/\/github.com\/Pryaxis\/TShock\/releases\/download\/v${TSHOCK_VERSION}\/tshock_${TSHOCK_VERSION}.zip\"\r\nwget https:\/\/github.com\/Pryaxis\/TShock\/releases\/download\/v${TSHOCK_VERSION}\/tshock_${TSHOCK_VERSION}.zip\r\n\r\nunzip tshock_${TSHOCK_VERSION}.zip", + "container": "alpine:3.7", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Max Players", + "description": "The maximum number of players a server will hold.", + "env_variable": "MAX_PLAYERS", + "default_value": "8", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "World Size", + "description": "Defines the worlds size. 3 sizes 1 (small), 2 (medium), 3 (large).", + "env_variable": "WORLD_SIZE", + "default_value": "1", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "World Name", + "description": "The name for the world file.", + "env_variable": "WORLD_NAME", + "default_value": "world", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Tshock Version", + "description": "The version on tshock that will be installed.", + "env_variable": "TSHOCK_VERSION", + "default_value": "4.3.25", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file