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
This commit is contained in:
Michael (Parker) Parker 2018-02-16 01:56:27 -05:00
parent b950c56b2c
commit 4a4d62e616
4 changed files with 206 additions and 1 deletions

View File

@ -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"
}
]
}

View File

@ -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 <code>{{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"
}
]
}

View File

@ -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)

View File

@ -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"
}
]
}