215 Commits

90 changed files with 2117 additions and 426 deletions
+24 -16
View File
@@ -24,13 +24,14 @@ If you are reading this it looks like you are looking to add an egg to your serv
## Please read the CONTRIBUTING.md before submitting PRs ## Please read the CONTRIBUTING.md before submitting PRs
## Bot Eggs ## [Bots](/bots/)
[Discord](/bots/discord/) [Discord](/bots/discord/)
* [ATL Bot](/bots/discord/atlbot/) Node JS * [ATL Bot](/bots/discord/atlbot/) Node JS
* [Bastion](/bots/discord/bastion/) * [Bastion](/bots/discord/bastion/)
* [CorpBot](/bots/discord/corpbot/) Python * [CorpBot](/bots/discord/corpbot/) Python
* [discord.js](bots/discord/discord.js/) Node JS generic * [discord.js](bots/discord/discord.js/) Node JS generic
* [discord.py](bots/discord/discord.py/) Python generic
* [fragbot](/bots/discord/fragbot/) Golang * [fragbot](/bots/discord/fragbot/) Golang
* [jmusicbot](/bots/discord/jmusicbot) Java * [jmusicbot](/bots/discord/jmusicbot) Java
* [parkertron](/bots/discord/parkertron/) Golang * [parkertron](/bots/discord/parkertron/) Golang
@@ -38,19 +39,21 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Red](/bots/discord/redbot/) Python * [Red](/bots/discord/redbot/) Python
* [Sinusbot](/bots/discord/sinusbot/) * [Sinusbot](/bots/discord/sinusbot/)
[Twitch](/bots/twitch) * [Twitch](/bots/twitch)
* [PhantomBot](/bots/twitch/phantombot/) * [PhantomBot](/bots/twitch/phantombot/)
[TeamSpeak3](bots/teamspeak3) * [TeamSpeak3](bots/teamspeak3)
* [JTS3ServerMod](/bots/teamspeak3/jts3servermod/) * [JTS3ServerMod](/bots/teamspeak3/jts3servermod/)
## Database Eggs ## [Database](/database/)
### SQL Databases ### [SQL] Databases
[MariaDB](/database/mariadb/) * [MariaDB](/database/sql/mariadb/)
[PostgreSQL](/database/postgres/) * [PostgreSQL](/database/sql/postgres/)
### In-Memory Databases ### In-Memory Databases
[Redis](/database/redis/) [Redis](/database/redis/)
* [Redis 5](/database/redis/redis-5)
* [Redis 6](/database/redis/redis-6)
## Game Eggs ## Game Eggs
[ET Legacy](/enemy_territory/etlegacy/) [ET Legacy](/enemy_territory/etlegacy/)
@@ -66,16 +69,16 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Multi Theft Auto](/gta/mtasa/) * [Multi Theft Auto](/gta/mtasa/)
* [SA-MP](/gta/samp/) * [SA-MP](/gta/samp/)
[Mindusrty](/mindustry/) [Mindustry](/mindustry/)
[Minecraft](/minecraft/) [Minecraft](/minecraft/)
* [Minecraft Bedrock](/minecraft/bedrock/) * [Bedrock](/minecraft/bedrock/)
* [Bedrock](/minecraft/bedrock/bedrock/) * [Bedrock](/minecraft/bedrock/bedrock/)
* [DragonProxy](/minecraft/bedrock/dragonproxy/) * [DragonProxy](/minecraft/bedrock/dragonproxy/)
* [Nukkit](/minecraft/bedrock/nukkit/) * [Nukkit](/minecraft/bedrock/nukkit/)
* [PocketMine MP](/minecraft/bedrock/pocketmine_mp/) * [PocketMine MP](/minecraft/bedrock/pocketmine_mp/)
* [Minecraft Java](/minecraft/java/) Servers for Java Minecraft * [Java](/minecraft/java/) Servers for Java Minecraft
* [Cuberite](/minecraft/java/cuberite/) * [Cuberite](/minecraft/java/cuberite/)
* [feather](/minecraft/feather/) * [feather](/minecraft/feather/)
* [Feed The Beast](/minecraft/java/ftb/) * [Feed The Beast](/minecraft/java/ftb/)
@@ -86,12 +89,13 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [spongeforge](/minecraft/java/spongeforge/) * [spongeforge](/minecraft/java/spongeforge/)
* [SpongeVanilla](/minecraft/java/spongevanilla/) * [SpongeVanilla](/minecraft/java/spongevanilla/)
* [Technic](/minecraft/java/technic/) * [Technic](/minecraft/java/technic/)
* [VanillaCord](/minecraft/java/vanillacord/)
* [Tuinity](/minecraft/java/tuinity/) * [Tuinity](/minecraft/java/tuinity/)
* [VanillaCord](/minecraft/java/vanillacord/)
* [Minecraft Proxies](/minecraft/proxy/) (these are for the java version of minecraft) * [Proxies](/minecraft/proxy/) (these are for the java version of minecraft)
* [Waterfall](/minecraft/proxy/waterfall/) * [Waterfall](/minecraft/proxy/waterfall/)
* [TyphoonLimbo](/minecraft/proxy/typhoonlimbo/) * [TyphoonLimbo](/minecraft/proxy/typhoonlimbo/)
* [Travertine](/minecraft/proxy/travertine/) Java
* [Velocity](/minecraft/proxy/velocity/) * [Velocity](/minecraft/proxy/velocity/)
[Red Dead Redemption](/rdr/) [Red Dead Redemption](/rdr/)
@@ -105,27 +109,31 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Arma 3 HC](/steamcmd_servers/arma/arma3_headless_client/) * [Arma 3 HC](/steamcmd_servers/arma/arma3_headless_client/)
* [Citadel: Forged with Fire](/steamcmd_servers/citadel) * [Citadel: Forged with Fire](/steamcmd_servers/citadel)
* [Conan Exiles](/steamcmd_servers/conan_exiles) * [Conan Exiles](/steamcmd_servers/conan_exiles)
* [Dead Matter](/steamcmd_servers/dead_matter)
* [Don't Starve](/steamcmd_servers/dont_starve) * [Don't Starve](/steamcmd_servers/dont_starve)
* [ECO](/steamcmd_servers/eco/) * [ECO](/steamcmd_servers/eco/)
* [HLDS server](/steamcmd_servers/hlds_server) * [HLDS server](/steamcmd_servers/hlds_server)
* [Hurtworld](/steamcmd_servers/hurtworld) * [Hurtworld](/steamcmd_servers/hurtworld)
* [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm)
* [Killing Floor 2](/steamcmd_servers/killingfloor2)
* [Mordhau](/steamcmd_servers/mordhau) * [Mordhau](/steamcmd_servers/mordhau)
* [Onset](/steamcmd_servers/onset) * [Onset](/steamcmd_servers/onset)
* [PixARK](/steamcmd_servers/pixark/) * [PixARK](/steamcmd_servers/pixark/)
* [Project Zomboid](/steamcmd_servers/project_zomboid/)
* [Rust Staging Branch](/steamcmd_servers/rust_staging/) * [Rust Staging Branch](/steamcmd_servers/rust_staging/)
* [SCP: Secret Laboratory](/steamcmd_servers/scpsl/) * [SCP: Secret Laboratory](/steamcmd_servers/scpsl/)
* [dedicated](/steamcmd_servers/scpsl/dedicated/) * [dedicated](/steamcmd_servers/scpsl/dedicated/)
* [multiadmin](/steamcmd_servers/scpsl/multiadmin/) * [multiadmin](/steamcmd_servers/scpsl/multiadmin/)
* [SSoldat](/steamcmd_servers/soldat/) * [SSoldat](/steamcmd_servers/soldat/)
* [Starbound](/steamcmd_servers/starbound) * [Starbound](/steamcmd_servers/starbound)
* [Stationeers](/steamcmd_servers/Stationeers/) * [Stationeers](/steamcmd_servers/stationeers/)
* [Sven Co-op](/steamcmd_servers/svencoop) * [Sven Co-op](/steamcmd_servers/svencoop)
* [Squad](/steamcmd_servers/squad/) * [Squad](/steamcmd_servers/squad/)
* [Unturned](/steamcmd_servers/unturned/) * [Unturned](/steamcmd_servers/unturned/)
* [RocketMod](/steamcmd_servers/unturned/rocketmod/)
* [Unturned](/steamcmd_servers/unturned/unturned/) * [Unturned](/steamcmd_servers/unturned/unturned/)
[Terraria](/terraria/) [Terraria](/terraria/)
* [vanilla](/terraria/vanilla)
* [tmodloader](/terraria/tmodloader) * [tmodloader](/terraria/tmodloader)
* [tshock](/terraria/tshock/) * [tshock](/terraria/tshock/)
+4
View File
@@ -18,6 +18,10 @@ Give awesome perks to your Discord server!
[discord.js](https://discord.js.org/) [discord.js](https://discord.js.org/)
A generic discord.js egg for running discord bots. A generic discord.js egg for running discord bots.
#### DiscordPY
[discord.py](https://discordpy.readthedocs.io/en/latest/)
A generic discord.py egg for running discord bots.
#### MusicBot #### MusicBot
[jagrosh/MusicBot](https://github.com/jagrosh/MusicBot) [jagrosh/MusicBot](https://github.com/jagrosh/MusicBot)
A Discord music bot that's easy to set up and run yourself! A Discord music bot that's easy to set up and run yourself!
+4
View File
@@ -5,5 +5,9 @@ Give awesome perks to your Discord server!
### Install notes ### Install notes
Due to rate limiting the console on the panel cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. Due to rate limiting the console on the panel cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log.
## Running the bot
You need to enable both `Privileged Gateway Intents` for the bot to run.
Enable this from `https://discord.com/developers/applications/<applicationid>/bot`
### Server Ports ### Server Ports
No Ports are required for the bastion bot. No Ports are required for the bastion bot.
+43 -16
View File
@@ -3,35 +3,26 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-05-06T23:13:44-04:00", "exported_at": "2020-06-20T13:11:43-04:00",
"name": "Bastion", "name": "Bastion",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "Bastion is an all-in-one multipurpose Discord bot that can do a whole bunch of things and its features are expanding daily. Bastion does everything most people will ever need it to do. Check out some feature highlights below to get a peek into the vast feature list of Bastion. And if you think Bastion lacks some feature, please send a suggestion and we will add it to Bastion as soon as possible.", "description": "Bastion is an all-in-one multipurpose Discord bot that can do a whole bunch of things and its features are expanding daily. Bastion does everything most people will ever need it to do. Check out some feature highlights below to get a peek into the vast feature list of Bastion. And if you think Bastion lacks some feature, please send a suggestion and we will add it to Bastion as soon as possible.",
"image": "quay.io\/parkervcp\/pterodactyl-images:bot_bastion", "image": "quay.io\/parkervcp\/pterodactyl-images:bot_bastion",
"startup": "node -r .\/utils\/globals.js .", "startup": "\"rmv() { echo -e \"stopping nodejs\"; for i in $(pgrep node); do kill $i; done; echo -e \"stopping mongo\"; mongo --eval \\\"db.getSiblingDB('admin').shutdownServer()\\\" ; }; trap \\'echo -e \\\"ctrl-c caught\\\" && rmv\\'; mongod --fork --dbpath \/home\/container\/mongodb\/ --port 27017 --logpath \/home\/container\/mongod.log && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done && yarn start\"",
"config": { "config": {
"files": "{\r\n \"settings\/credentials.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"botId\": \"{{server.build.env.BOT_ID}}\",\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"settings\/credentials.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n },\r\n \"settings\/configurations.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"presence.status\": \"{{server.build.env.STATUS}}\",\r\n \"presence.activity.type\": \"{{server.build.env.ACTIVITY}}\",\r\n \"presence.activity.name\": \"{{server.build.env.PLAYING}}\",\r\n \"presence.activity.url\": \"{{server.build.env.STREAM_URL}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"I'm ready to roll!\"\r\n}", "startup": "{\r\n \"done\": \"Systems Ready!\"\r\n}",
"logs": "{}", "logs": "{}",
"stop": "^C" "stop": "^C"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n## Install Requirements\r\napk --no-cache add python g++ make git\r\n\r\n## Move to install folder\r\ncd \/mnt\/server\/\r\n\r\n## Clone repo\r\ngit clone -b stable -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\n## Install node_modules\r\nyarn install --only=production\r\n\r\n## Move config files.\r\nmv settings\/credentials.example.yaml settings\/credentials.yaml\r\nmv settings\/configurations.example.yaml settings\/configurations.yaml", "script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\ncd \/mnt\/server\/\r\n\r\n## Clone repo\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\n## Install node_modules\r\nyarn install --only=production\r\n\r\n## Move config files.\r\nmv settings\/credentials.example.yaml settings\/credentials.yaml\r\nmv settings\/configurations.example.yaml settings\/configurations.yaml\r\n\r\n## make folders for mongodb\r\nmkdir mongodb\/",
"container": "node:10-alpine", "container": "node:12-buster",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
{
"name": "Bot ID",
"description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/",
"env_variable": "BOT_ID",
"default_value": "GETABOTID",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:32"
},
{ {
"name": "Bot Token", "name": "Bot Token",
"description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/", "description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/",
@@ -40,6 +31,42 @@
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "required|string|max:64" "rules": "required|string|max:64"
},
{
"name": "Bot Status",
"description": "valid values are `online`, `idle`, `dnd` and `invisible`",
"env_variable": "STATUS",
"default_value": "online",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "Activity Type",
"description": "valid options are `PLAYING`, `LISTENING`, `WATCHING` and `STREAMING`",
"env_variable": "ACTIVITY",
"default_value": "PLAYING",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:9"
},
{
"name": "ACTIVITY",
"description": "What the bot is doing",
"env_variable": "PLAYING",
"default_value": "on a pterodactyl server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
},
{
"name": "Stream URL",
"description": "If the bot activity is set to `STREAMING`",
"env_variable": "STREAM_URL",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:64"
} }
] ]
} }
@@ -3,12 +3,12 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-03-26T16:10:33+01:00", "exported_at": "2020-07-18T23:13:34-04:00",
"name": "discord.js generic", "name": "discord.js generic",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", "description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12",
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi && \/usr\/local\/bin\/npm install --production && \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}", "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install --production; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"change this part\"\r\n}", "startup": "{\r\n \"done\": \"change this part\"\r\n}",
@@ -17,9 +17,9 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#\/bin\/ash\r\n\r\napk add --no-cache git make gcc g++ python\r\n\r\ncd \/mnt\/server\r\n\r\nif [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\nfi\r\n\r\necho -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n\techo -e \"assuming user knows what they are doing have a good day.\"\r\n\texit 0\r\nelse\r\n\tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n\t\techo -e \"\/mnt\/server directory is not empty.\"\r\n\t if [ -d .git ]; then\r\n\t\t\techo -e \".git directory exists\" \r\n\t\t\tif [ -f .git\/config ]; then\r\n\t\t\t\techo -e \"loading info from git config\"\r\n\t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n\t\t\telse\r\n\t\t\t\techo -e \"files found with no git config\"\r\n\t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n\t\t\t\texit 10\r\n\t\t\tfi\r\n\t\tfi\r\n\t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n\t\t\techo \"pulling latest from github\"\r\n\t\t\tgit pull \r\n\t\t\techo -e \"updating local npm modules\"\r\n\t\t\t\/usr\/local\/bin\/npm install --production\r\n\t\tfi\r\n\telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n\t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n\t\t\techo -e \"assuming master branch\"\r\n\t\t\tINSTALL_BRANCH=master\r\n\t\tfi\r\n \r\n\t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n\t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n\t\techo -e \"install npm modules locally\"\r\n\t\t\/usr\/local\/bin\/npm install --production\r\n\tfi\r\nfi \r\n\r\necho -e \"install complete\"\r\nexit 0", "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 make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\nfi\r\n\r\necho -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n\techo -e \"assuming user knows what they are doing have a good day.\"\r\n\texit 0\r\nelse\r\n\tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n\t\techo -e \"\/mnt\/server directory is not empty.\"\r\n\t if [ -d .git ]; then\r\n\t\t\techo -e \".git directory exists\" \r\n\t\t\tif [ -f .git\/config ]; then\r\n\t\t\t\techo -e \"loading info from git config\"\r\n\t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n\t\t\telse\r\n\t\t\t\techo -e \"files found with no git config\"\r\n\t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n\t\t\t\texit 10\r\n\t\t\tfi\r\n\t\tfi\r\n\t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n\t\t\techo \"pulling latest from github\"\r\n\t\t\tgit pull \r\n\t\tfi\r\n\telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n\t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n\t\t\techo -e \"assuming master branch\"\r\n\t\t\tINSTALL_BRANCH=master\r\n\t\tfi\r\n \r\n\t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n\t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n\tfi\r\nfi \r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "node:10-alpine", "container": "node:12-buster-slim",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
@@ -67,6 +67,15 @@
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "required|string" "rules": "required|string"
},
{
"name": "Additional Node packages",
"description": "Install additional node packages.\r\n\r\nUse spaces to separate",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
} }
] ]
} }
+6
View File
@@ -0,0 +1,6 @@
# discord.py generic
This egg was designed to allow a user to pull their own python discord bot from a repo.
There is an option to allow a user to upload their own files to run a bot.
The startup configs and commands may need changing to actually function properly.
@@ -0,0 +1,81 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-08-02T14:36:53-04:00",
"name": "discord.py generic",
"author": "parker@parkervcp.com",
"description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8",
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${PY_PACKAGES} ]]; then pip install -U --target \/home\/container\/ ${PY_PACKAGES}; fi; if [[ -f \/home\/container\/requirements.txt ]]; then pip install -U --target \/home\/container\/ -r requirements.txt; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"change this part\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Python Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git gcc g++ libffi-dev make\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\nfi\r\n\r\necho -e \"working on installing a discord.py bot from ${INSTALL_REPO}\"\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n\techo -e \"assuming user knows what they are doing have a good day.\"\r\n\texit 0\r\nelse\r\n\tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n\t\techo -e \"\/mnt\/server directory is not empty.\"\r\n\t if [ -d .git ]; then\r\n\t\t\techo -e \".git directory exists\" \r\n\t\t\tif [ -f .git\/config ]; then\r\n\t\t\t\techo -e \"loading info from git config\"\r\n\t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n\t\t\telse\r\n\t\t\t\techo -e \"files found with no git config\"\r\n\t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n\t\t\t\texit 10\r\n\t\t\tfi\r\n\t\tfi\r\n\t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n\t\t\techo \"pulling latest from github\"\r\n\t\t\tgit pull \r\n\t\tfi\r\n\telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n\t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n\t\t\techo -e \"assuming master branch\"\r\n\t\t\tINSTALL_BRANCH=master\r\n\t\tfi\r\n \r\n\t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n\t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n\tfi\r\nfi \r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/ -r requirements.txt\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "python:3.8-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Install Repo",
"description": "The git repo to clone and install the discord js bot from",
"env_variable": "INSTALL_REPO",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
},
{
"name": "Install Branch",
"description": "The branch of the bot to install",
"env_variable": "INSTALL_BRANCH",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install cruft is you are just letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
},
{
"name": "Auto Update",
"description": "When using a git repo pull the latest files on startup.",
"env_variable": "AUTO_UPDATE",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
},
{
"name": "Bot py file",
"description": "The file that starts the bot.",
"env_variable": "BOT_PY_FILE",
"default_value": "bot.py",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Additional Python packages",
"description": "Install additional python packages.\r\n\r\nUse spaces to separate",
"env_variable": "PY_PACKAGES",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
}
]
}
+2 -2
View File
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-02-21T13:00:39-05:00", "exported_at": "2020-06-15T17:43:44-04:00",
"name": "JMusicBot", "name": "JMusicBot",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "A Discord music bot that's easy to set up and run yourself!", "description": "A Discord music bot that's easy to set up and run yourself!",
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nGITHUB_PACKAGE=\"jagrosh\/MusicBot\"\r\nMATCH=\"All\"\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i config)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i config)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n fi\r\nfi\r\n\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\ncurl -Lo JMusicBot.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"config found\"\r\nelse\r\n echo -e \"config not found getting default\"\r\n curl -Lo config.txt ${CONFIG_LINK}\r\nfi\r\n\r\necho \"Job's Done\"", "script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nGITHUB_PACKAGE=\"jagrosh\/MusicBot\"\r\nMATCH=\"Linux\"\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i config)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i config)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n fi\r\nfi\r\n\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\ncurl -Lo JMusicBot.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"config found\"\r\nelse\r\n echo -e \"config not found getting default\"\r\n curl -Lo config.txt ${CONFIG_LINK}\r\nfi\r\n\r\necho \"Job's Done\"",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "\/bin\/bash" "entrypoint": "\/bin\/bash"
} }
+5
View File
@@ -5,4 +5,9 @@ A multifunction Discord bot
### Server Ports ### Server Ports
No port are required to run Red. No port are required to run Red.
### Additional Requirements
When using the Audio Cog the bot will attempt to save files to /tmp resulting in a disk space error. To resolve this error you must increase the size of `tmpfs` using custom container policy.
For additional details see: https://pterodactyl.io/daemon/0.6/configuration.html#container-policy
#### Mods/Plugins may require ports to be added to the server. #### Mods/Plugins may require ports to be added to the server.
+1 -2
View File
@@ -3,5 +3,4 @@
### Some of these bots support other services but are primarily Twitch bots ### Some of these bots support other services but are primarily Twitch bots
#### PhantomBot [Homepage](https://phantombot.tv) [Egg](/bots/twitch/phantombot/) #### PhantomBot [Homepage](https://phantombot.tv) [Egg](/bots/twitch/phantombot/)
#### sogeBot [Homepage](https://sogebot.xyz) [Egg](/bots/twitch/sogebots/)
PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.
+4 -13
View File
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-03-03T02:51:46+01:00", "exported_at": "2020-04-26T14:11:30+02:00",
"name": "PhantomBot", "name": "PhantomBot",
"author": "mail@wuffy.eu", "author": "mail@wuffy.eu",
"description": "PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.", "description": "PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.",
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# PhantomBot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl ca-certificates unzip\r\n\r\ncd \/tmp\r\n\r\n# Fetching last github release\r\nif [ -n \"${DOWNLOAD_PATH}\" ]; then\r\n echo -e \"Using download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DOWNLOAD_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest release version\"\r\n RELEASE_VERSION=$(curl -s \"https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/latest\" | grep -o '[0-9].[0-9].[0-9]')\r\n else\r\n echo -e \"Using custom release version\"\r\n fi\r\n\r\n# DOWNLOAD_URL=https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/download\/v${RELEASE_VERSION}\/PhantomBot-${RELEASE_VERSION}.zip\r\n DOWNLOAD_URL=https:\/\/raw.githubusercontent.com\/PhantomBot\/nightly-build\/master\/PhantomBot-nightly-lin.zip\r\nfi\r\n\r\n# Downloading\r\ncurl -LJO ${DOWNLOAD_URL}\r\nunzip -o PhantomBot-*.zip\r\n\r\n# Moveing unziped files into the server folder\r\ncp -f -r .\/PhantomBot-*\/* \/mnt\/server\/\r\n\r\n# Creating default config\r\nif [ ! -f \/mnt\/server\/config\/botlogin.txt ]; then\r\n echo -e \"Creating config\/botlogin.txt\"\r\n cat << EOF > \/mnt\/server\/config\/botlogin.txt\r\n #PhantomBot Configuration File\r\n #\r\n # Here is a list wiht all config values:\r\n # https:\/\/community.phantom.bot\/t\/settings-for-botlogin-txt\/78\r\n #\r\n apioauth=\r\n baseport=\r\n channel=\r\n oauth=\r\n owner=\r\n panelpassword=\r\n paneluser=\r\n user=\r\n youtubekey=\r\n discord_token=\r\nEOF\r\nfi", "script": "#!\/bin\/bash\r\n# PhantomBot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl ca-certificates unzip\r\n\r\ncd \/tmp\r\n\r\n# Fetching last github release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"master\" ]; then\r\n echo -e \"Using latest Github Master version\"\r\n DOWNLOAD_URL=https:\/\/raw.githubusercontent.com\/PhantomBot\/nightly-build\/master\/PhantomBot-nightly-lin.zip\r\nelse\r\n if [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest release version\"\r\n RELEASE_VERSION=$(curl -s \"https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/latest\" | grep -o '[0-9].[0-9].[0-9]')\r\n fi\r\n DOWNLOAD_URL=https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/download\/v${RELEASE_VERSION}\/PhantomBot-${RELEASE_VERSION}.zip\r\nfi\r\n\r\n# Downloading\r\ncurl -LJO ${DOWNLOAD_URL}\r\nunzip -o PhantomBot-*.zip\r\n\r\n# Moveing unziped files into the server folder\r\ncp -f -r .\/PhantomBot-*\/* \/mnt\/server\/\r\n\r\n# Creating default config\r\nif [ ! -f \/mnt\/server\/config\/botlogin.txt ]; then\r\n echo -e \"Creating config\/botlogin.txt\"\r\n cat << EOF > \/mnt\/server\/config\/botlogin.txt\r\n #PhantomBot Configuration File\r\n #\r\n # Here is a list wiht all config values:\r\n # https:\/\/community.phantom.bot\/t\/settings-for-botlogin-txt\/78\r\n #\r\n apioauth=\r\n baseport=\r\n channel=\r\n oauth=\r\n owner=\r\n panelpassword=\r\n paneluser=\r\n user=\r\n youtubekey=\r\n discord_token=\r\nEOF\r\nfi",
"container": "ubuntu:16.04", "container": "ubuntu:16.04",
"entrypoint": "bash" "entrypoint": "bash"
} }
@@ -25,21 +25,12 @@
"variables": [ "variables": [
{ {
"name": "Version", "name": "Version",
"description": "", "description": "latest = Latest Stable\r\nmaster = latest Github",
"env_variable": "RELEASE_VERSION", "env_variable": "RELEASE_VERSION",
"default_value": "latest", "default_value": "latest",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "max:9" "rules": "required|string|max:9"
},
{
"name": "Download Path",
"description": "Using the latest nightly build:\r\nhttps:\/\/raw.githubusercontent.com\/PhantomBot\/nightly-build\/master\/PhantomBot-nightly-lin.zip\r\n\r\nWhen you use the latest nightly build you need to change the docker image to:\r\nquay.io\/parkervcp\/pterodactyl-images:debian_openjdk-13",
"env_variable": "DOWNLOAD_PATH",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "max:512"
}, },
{ {
"name": "Twitch Channel Name", "name": "Twitch Channel Name",
+15
View File
@@ -0,0 +1,15 @@
# PhantomBot
### Their [Site](https://www.sogebot.xyz)
sogBot is an actively developed open source interactive Twitch bot that provides entertainment and moderation for your channel,
allowing you to focus on what matters the most to you - your game and your viewers.
### Server Ports
1 port is required to run sogeBot.
| Port | default |
|---------------------|---------|
| Game (HTTP Server) | 20000 |
#NOTES
The installation take a long time, because a lot of things must be compiled. It can take 5 or more minutes !!!
+36
View File
@@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-05-01T11:41:48+02:00",
"name": "SogeBot",
"author": "panel@mgc4you.de",
"description": "sogeBot - Free Twitch Bot built on Node.js https:\/\/sogebot.xyz\/",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12",
"startup": "npm start",
"config": {
"files": "{\r\n \".env\": {\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\": \"WebPanel is available at\"\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#\/bin\/ash\r\napk update\r\napk add --no-cache git make gcc g++ python autoconf automake nasm build-base zlib zlib-dev libtool ca-certificates curl unzip sqlite gettext\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n RELEASE_VERSION=$(curl -s \"https:\/\/api.github.com\/repos\/sogehige\/sogeBot\/releases\/latest\" | awk -F '\"' '\/tag_name\/{print $4}')\r\n DOWNLOAD_URL=https:\/\/github.com\/sogehige\/sogeBot\/releases\/download\/${RELEASE_VERSION}\/sogeBot-${RELEASE_VERSION}.zip\r\n curl -L -o sogebot.zip ${DOWNLOAD_URL}\r\n unzip -o sogebot.zip\r\n rm sogebot.zip\r\n \r\nrm -rf \/mnt\/server\/.env\r\ncat <<EOT > \/mnt\/server\/.env\r\nTYPEORM_CONNECTION=sqlite\r\nTYPEORM_DATABASE=.\/sogebot.db\r\nPORT=20000\r\n\r\n# DON'T CHANGE ANYTHING BELOW THIS LINE\r\nTYPEORM_ENTITIES=dest\/database\/entity\/*.js\r\nTYPEORM_MIGRATIONS=dest\/database\/migration\/sqlite\/*.js\r\nTYPEORM_SUBSCRIBERS=dest\/database\/entity\/*.js\r\n\r\nTYPEORM_ENTITIES_DIR=src\/bot\/database\/entity\r\nTYPEORM_MIGRATIONS_DIR=src\/bot\/database\/migration\/sqlite\r\nTYPEORM_SUBSCRIBERS_DIR=src\/bot\/database\/entity\r\nEOT\r\n \r\nelif [ \"${RELEASE_VERSION}\" == \"master\" ]; then\r\n git clone https:\/\/github.com\/sogehige\/sogeBot.git .\r\n cp src\/bot\/data\/.* .\r\n \r\nrm -rf \/mnt\/server\/.env\r\ncat <<EOT > \/mnt\/server\/.env\r\nTYPEORM_CONNECTION=sqlite\r\nTYPEORM_DATABASE=.\/sogebot.db\r\nPORT=20000\r\n \r\n# DON'T CHANGE ANYTHING BELOW THIS LINE\r\nTYPEORM_ENTITIES=dest\/database\/entity\/*.js\r\nTYPEORM_MIGRATIONS=dest\/database\/migration\/sqlite\/*.js\r\nTYPEORM_SUBSCRIBERS=dest\/database\/entity\/*.js\r\n\r\nTYPEORM_ENTITIES_DIR=src\/bot\/database\/entity\r\nTYPEORM_MIGRATIONS_DIR=src\/bot\/database\/migration\/sqlite\r\nTYPEORM_SUBSCRIBERS_DIR=src\/bot\/database\/entity\r\nEOT\r\n \r\nelse\r\n DOWNLOAD_URL=https:\/\/github.com\/sogehige\/sogeBot\/releases\/download\/${RELEASE_VERSION}\/sogeBot-${RELEASE_VERSION}.zip\r\n curl -L -o sogebot.zip ${DOWNLOAD_URL}\r\n unzip -o sogebot.zip\r\n rm sogebot.zip\r\n \r\nrm -rf \/mnt\/server\/.env\r\ncat <<EOT > \/mnt\/server\/.env\r\nTYPEORM_CONNECTION=sqlite\r\nTYPEORM_DATABASE=.\/sogebot.db\r\nPORT=20000\r\n \r\n# DON'T CHANGE ANYTHING BELOW THIS LINE\r\nTYPEORM_ENTITIES=dest\/database\/entity\/*.js\r\nTYPEORM_MIGRATIONS=dest\/database\/migration\/sqlite\/*.js\r\nTYPEORM_SUBSCRIBERS=dest\/database\/entity\/*.js\r\n\r\nTYPEORM_ENTITIES_DIR=src\/bot\/database\/entity\r\nTYPEORM_MIGRATIONS_DIR=src\/bot\/database\/migration\/sqlite\r\nTYPEORM_SUBSCRIBERS_DIR=src\/bot\/database\/entity\r\nEOT\r\n\r\nfi\r\n\r\nnpm install -g npm@latest\r\n\r\n#\/usr\/local\/bin\/npm install sqlite3 --save\r\n#\/usr\/local\/bin\/npm install --save-dev electron-rebuild\r\n\r\nif [ \"${RELEASE_VERSION}\" == \"master\" ]; then\r\n echo -e \"## Compiling SourceCode with make && Downloading npm components\"\r\n make\r\nelse\r\n echo -e \"## Downloading npm components\"\r\n \/usr\/local\/bin\/npm ci\r\nfi\r\n\r\nexit 0",
"container": "node:12-alpine3.10",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Version",
"description": "Use: \"latest\" => latest official Version of SogeBot | \"master\" => Latest master branch Version |\"10.x.x\" other Version",
"env_variable": "RELEASE_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "max:9"
}
]
}
+16
View File
@@ -0,0 +1,16 @@
# Redis
### From their [Website](https://redis.io/)
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
### Minimum RAM warning
It's recommended to have 4gb of RAM for redis
See here https://docs.redislabs.com/latest/rs/administering/designing-production/hardware-requirements/
### Server Ports
Ports required to run the server in a table format.
| Port | default |
|---------|---------|
| Server | 6379 |
+36
View File
@@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-07-11T00:34:47-04:00",
"name": "Redis-6",
"author": "parker@parkervcp.com",
"description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.",
"image": "quay.io\/parkervcp\/pterodactyl-images:db_redis-6",
"startup": "\/usr\/local\/bin\/redis-server \/home\/container\/redis.conf --save 60 1 --dir \/home\/container\/ --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}}; redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Configuration loaded\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Redis Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add --no-cache curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ ! -d \/mnt\/server\/redis.conf ]; then\r\n curl https:\/\/raw.githubusercontent.com\/redis\/redis\/6.0\/redis.conf -o redis.conf\r\nfi\r\n\r\nsleep 5\r\necho -e \"Install complete. Made this to not have issues.\"",
"container": "alpine:3.10",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Redis Password",
"description": "The password redis should use to secure the server.",
"env_variable": "SERVER_PASSWORD",
"default_value": "P@55w0rd",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
}
]
}
@@ -17,10 +17,10 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit", "script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/sql\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/sql\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/sql\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit",
"container": "mariadb:10.3", "container": "mariadb:10.3",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
"variables": [] "variables": []
} }
@@ -186,4 +186,4 @@ key_buffer = 16M
# The files must end with '.cnf', otherwise they'll be ignored. # The files must end with '.cnf', otherwise they'll be ignored.
# #
!include /etc/mysql/mariadb.cnf !include /etc/mysql/mariadb.cnf
!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/conf.d/
@@ -187,4 +187,4 @@ key_buffer = 16M
# The files must end with '.cnf', otherwise they'll be ignored. # The files must end with '.cnf', otherwise they'll be ignored.
# #
!include /etc/mysql/mariadb.cnf !include /etc/mysql/mariadb.cnf
!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/conf.d/
+6 -6
View File
@@ -3,11 +3,11 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-08-18T21:02:25+02:00", "exported_at": "2020-06-26T12:55:32-04:00",
"name": "Factorio", "name": "Factorio",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "The vanilla Factorio server.\r\n\r\nhttps:\/\/www.factorio.com\/", "description": "The vanilla Factorio server.\r\n\r\nhttps:\/\/www.factorio.com\/",
"image": "quay.io\/parkervcp\/pterodactyl-images:glibc", "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian",
"startup": ".\/bin\/x64\/factorio --port {{SERVER_PORT}} --server-settings data\/server-settings.json --start-server {{SAVE_NAME}}.zip", "startup": ".\/bin\/x64\/factorio --port {{SERVER_PORT}} --server-settings data\/server-settings.json --start-server {{SAVE_NAME}}.zip",
"config": { "config": {
"files": "{\r\n \"data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"description\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\",\r\n \"username\": \"{{server.build.env.SERVER_USERNAME}}\",\r\n \"token\": \"{{server.build.env.SERVER_TOKEN}}\",\r\n \"autosave_interval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"autosave_slots\": \"{{server.build.env.SAVE_SLOTS}}\",\r\n \"afk_autokick_interval\": \"{{server.build.env.AFK_KICK}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"description\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\",\r\n \"username\": \"{{server.build.env.SERVER_USERNAME}}\",\r\n \"token\": \"{{server.build.env.SERVER_TOKEN}}\",\r\n \"autosave_interval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"autosave_slots\": \"{{server.build.env.SAVE_SLOTS}}\",\r\n \"afk_autokick_interval\": \"{{server.build.env.AFK_KICK}}\"\r\n }\r\n }\r\n}",
@@ -17,9 +17,9 @@
}, },
"scripts": { "scripts": {
"installation": { "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 jq\r\n\r\nlatest_stable=`curl -sL https:\/\/updater.factorio.com\/get-available-versions | jq -r '.[\"core-linux_headless64\"] | .[] | .[\"stable\"] | select(. != null)'`\r\nlatest_experimental=`curl -sL https:\/\/www.factorio.com\/download-headless\/experimental | grep -m 1 -o -E '([0-9]\\.[0-9]*\\.[0-9]*)'`\r\n\r\nif [ -z \"${FACTORIO_VERSION}\" ] || [ \"${FACTORIO_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"${FACTORIO_VERSION}\" == \"experimental\" ]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=${FACTORIO_VERSION}\r\nfi\r\n\r\necho -e \"\\n running 'curl -sL 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 -sL 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\nif [ -e data\/map-gen-settings.json ]; then\r\n echo \"map-gen exists\"\r\nelse\r\n echo \"copying map-gen default settings\"\r\n mv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nfi\r\n\r\nif [ -e data\/server-settings.json ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"copying server default settings\"\r\n mv data\/server-settings.example.json data\/server-settings.json\r\nfi\r\n\r\nif [ -e map-settings.json ]; then\r\n echo \"map settings exists\"\r\nelse\r\n echo \"copying map default settings\"\r\n mv data\/map-settings.example.json data\/map-settings.json\r\nfi\r\n\r\nif [ -e ${SAVE_NAME}.zip ]; then\r\n echo \"save file exists\"\r\nelse\r\n .\/bin\/x64\/factorio --create ${SAVE_NAME}\r\n chmod o+w ${SAVE_NAME}.zip\r\nfi", "script": "#!\/bin\/bash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update \r\napt install -y curl tar xz-utils jq\r\n\r\nVERSION_JSON=$(curl -sSL https:\/\/factorio.com\/api\/latest-releases)\r\n\r\nlatest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')\r\nlatest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')\r\n\r\nif [ -z \"${FACTORIO_VERSION}\" ] || [ \"${FACTORIO_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"${FACTORIO_VERSION}\" == \"experimental\" ]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=${FACTORIO_VERSION}\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n running 'curl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}' \\n\"\r\n\r\ncurl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}\r\n\r\ntar -xf factorio-${DL_VERSION} --strip-components=1 -C \/mnt\/server\r\n\r\nrm factorio-${DL_VERSION}\r\n\r\nif [ -e data\/map-gen-settings.json ]; then\r\n echo \"map-gen exists\"\r\nelse\r\n echo \"copying map-gen default settings\"\r\n mv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nfi\r\n\r\nif [ -e data\/server-settings.json ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"copying server default settings\"\r\n mv data\/server-settings.example.json data\/server-settings.json\r\nfi\r\n\r\nif [ -e map-settings.json ]; then\r\n echo \"map settings exists\"\r\nelse\r\n echo \"copying map default settings\"\r\n mv data\/map-settings.example.json data\/map-settings.json\r\nfi\r\n\r\nif [ -e ${SAVE_NAME}.zip ]; then\r\n echo \"save file exists\"\r\nelse\r\n .\/bin\/x64\/factorio --create ${SAVE_NAME}\r\n chmod o+w ${SAVE_NAME}.zip\r\nfi",
"container": "frolvlad\/alpine-glibc", "container": "debian:buster-slim",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
@@ -114,4 +114,4 @@
"rules": "required|numeric|digits_between:1,3" "rules": "required|numeric|digits_between:1,3"
} }
] ]
} }
File diff suppressed because one or more lines are too long
+20 -15
View File
@@ -1,23 +1,28 @@
# FiveM # FiveM
## From the [FiveM](https://fivem.net/) Site
# Notice
This is to inform all users that the4 fivem team has enabled cloudflare ddos protection and the install script is now broken due to this.
You will need to have a self hosted version of the server files to curl in the install script.
I have added a `DOWNLOAD_URL` variable that needs to point to a `fx.tar.xz` file as I am too lazy to update the entire script.
### From the [FiveM](https://fivem.net/) Site
FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers. FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers.
### Install notes # Notice
- Only installs latest version versions are not selectable. Currently the script can get versions from the builds site.
### Server Ports The `FIVEM_VERSION` variable.
* Defaults to `latest` which is the latest recommended
* Can be set to a specific version Ex. `2431-350dd7bd5c0176216c38625ad5b1108ead44674d`.
The `DOWNLOAD_URL` only needs to be used if they turn on ddos protection. The variable needs to point to a `fx.tar.xz` file as I am too lazy to update the entire script.
# txAdmin
txAdmin is now supported and disabled by default. You set `TXADMIN_ENABLED` to `1` to enable it.
The last update to the egg changes the server to use txadmin to run. On first startup it will print a key to use to sign into the txadmin panel.
### Your server will not go online until it's started from txadmin.
## Server Ports
Ports required to run the server in a table format. Ports required to run the server in a table format.
| Port | default | | Port | default |
|---------|---------| |---------|---------|
| Game | 30210 | | Game | 30110 |
| Game+1 | 30211 | | Game+1 | 30120 |
| txAdmin | 40120 |
+34 -16
View File
@@ -3,23 +3,23 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-11-03T20:45:20-05:00", "exported_at": "2020-06-24T18:49:06-04:00",
"name": "FiveM", "name": "FiveM",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "A new FiveM egg for the latest builds due to recent changes in FiveM", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", "image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine",
"startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg", "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +set serverProfile default +set txAdminPort {{TXADMIN_PORT}} $( [ \"$TXADMIN_ENABLE\" == \"1\" ] || printf %s '+exec server.cfg' )",
"config": { "config": {
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"set sv_licenseKey\": \"set sv_licenseKey {{server.build.env.FIVEM_LICENSE}}\",\r\n \"set steam_webApiKey\": \"set steam_webApiKey {{server.build.env.STEAM_WEBAPIKEY}}\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}", "startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "^C" "stop": "^C"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add openssl tar xz curl wget git file --no-cache\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\n\r\nif [ \"${FIVEM_VERSION}\" == \"latest\" ] || [ -z ${FIVEM_VERSION} ] ; then\r\n LATEST_RECOMMENDED=$(echo -e \"${RELEASE_PAGE}\" | grep \"LATEST RECOMMENDED\" -B1 | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1')\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${LATEST_RECOMMENDED})\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${FIVEM_VERSION})\r\n if [ \"${VERSION_LINK}\" == \"\" ]; then\r\n echo -e \"defaulting to latest as the version requested was invalid.\"\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. Exeting\"\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 \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"", "script": "#!\/bin\/ash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils curl git file\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\n\r\nif [ \"${FIVEM_VERSION}\" == \"latest\" ] || [ -z ${FIVEM_VERSION} ] ; then\r\n LATEST_RECOMMENDED=$(echo -e \"${RELEASE_PAGE}\" | grep \"LATEST RECOMMENDED\" -B1 | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1')\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${LATEST_RECOMMENDED})\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${FIVEM_VERSION})\r\n if [ \"${VERSION_LINK}\" == \"\" ]; then\r\n echo -e \"defaulting to latest as the version requested was invalid.\"\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 \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"",
"container": "alpine:3.10", "container": "debian:buster-slim",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
@@ -32,15 +32,6 @@
"user_editable": 1, "user_editable": 1,
"rules": "required|string|max:32" "rules": "required|string|max:32"
}, },
{
"name": "Steam Web Api Key",
"description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/",
"env_variable": "STEAM_WEBAPIKEY",
"default_value": "none",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{ {
"name": "Max Players", "name": "Max Players",
"description": "Set the fivem max play count", "description": "Set the fivem max play count",
@@ -76,6 +67,33 @@
"user_viewable": 0, "user_viewable": 0,
"user_editable": 0, "user_editable": 0,
"rules": "string|nullable" "rules": "string|nullable"
},
{
"name": "Steam Web Api Key",
"description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/",
"env_variable": "STEAM_WEBAPIKEY",
"default_value": "none",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "txAdmin Port",
"description": "The port for the txAdmin panel",
"env_variable": "TXADMIN_PORT",
"default_value": "40120",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|max:20"
},
{
"name": "Enable txadmin",
"description": "Enables txadmin.\r\n\r\nset to 1 to enable. (default is 0 for false)",
"env_variable": "TXADMIN_ENABLE",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|bool"
} }
] ]
} }
+56 -33
View File
@@ -1,52 +1,75 @@
# only change these if you're using a server with multiple network interfaces ### AUTOMATICALY SET BY PTERODACTYL ###
# Only change the IP if you're using a server with multiple network interfaces, otherwise change the port only.
endpoint_add_tcp "0.0.0.0:30120" endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120" endpoint_add_udp "0.0.0.0:30120"
start mapmanager # Set your server's hostname
start chat sv_hostname "New FiveM Server with Pterodactyl"
start spawnmanager
start sessionmanager
start fivem
start hardcap
start rconlog
start scoreboard
start playernames
# allow client mods such as Lamda Menu? # Server player slot limit (must be between 1 and 32, unless using OneSync)
sv_scriptHookAllowed 1 sv_maxclients 32
# change this # Steam Web API key, if you want to use Steam authentication (https://steamcommunity.com/dev/apikey)
#rcon_password yay # -> replace "" with the key
set steam_webApiKey ""
# a comma-separated list of tags for your server # License key for your server (https://keymaster.fivem.net)
# for example: sets tags "drifting, cars, racing" or sets tags "roleplay, military, tanks" set sv_licenseKey
########################################
# These resources will start by default.
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure fivem
ensure hardcap
ensure rconlog
# This allows players to use scripthook-based plugins such as the legacy Lambda Menu.
# Set this to 1 to allow scripthook. Do note that this does _not_ guarantee players won't be able to use external plugins.
sv_scriptHookAllowed 0
# Uncomment this and set a password to enable RCON. Make sure to change the password - it should look like rcon_password "YOURPASSWORD"
#rcon_password ""
# A comma-separated list of tags for your server.
# For example:
# - sets tags "drifting, cars, racing"
# Or:
# - sets tags "roleplay, military, tanks"
sets tags "default" sets tags "default"
sv_hostname "My new FXServer!" # A valid locale identifier for your server's primary language.
# For example "en-US", "fr-CA", "nl-NL", "de-DE", "en-GB", "pt-BR"
sets locale "root-AQ"
# please DO replace root-AQ on the line ABOVE with a real language! :)
# nested configs! # Set an optional server info and connecting banner image url.
#exec server_internal.cfg # Size doesn't matter, any banner sized image will be fine.
#sets banner_detail "https://url.to/image.png"
#sets banner_connecting "https://url.to/image.png"
# loading a server icon (96x96 PNG file) # Nested configs!
#exec resources.cfg
# Loading a server icon (96x96 PNG file)
#load_server_icon myLogo.png #load_server_icon myLogo.png
# convars for use from script # convars which can be used in scripts
set temp_convar "hey world!" #set temp_convar "hey world!"
# Uncomment to DISABLE your server coming up in the server list # Uncomment this line if you do not want your server to be listed in the server browser.
# Do not edit it if you *do* want your server listed.
#sv_master1 "" #sv_master1 ""
# want to only allow players authenticated with a third-party provider like Steam (don't forget, Social Club is a third party provider too!)? # Add system admins
#sv_authMaxVariance 1
#sv_authMinTrust 5
# add system admins
add_ace group.admin command allow # allow all commands add_ace group.admin command allow # allow all commands
add_ace group.admin command.quit deny # but don't allow quit add_ace group.admin command.quit deny # but don't allow quit
add_principal identifier.steam:110000112345678 group.admin # add the admin to the group add_principal identifier.fivem:1 group.admin # add the admin to the group
# remove the # to hide player endpoints in external log output # Hide player endpoints in external log output.
#sv_endpointprivacy true sv_endpointprivacy true
# server slots limit (must be between 1 and 32) # enable OneSync with default configuration (required for server-side state awareness)
sv_maxclients 32 onesync_enabled true
+2 -2
View File
@@ -1,7 +1,7 @@
# Mindustry # Mindustry
**PLEASE READ** **PLEASE READ**
Due to Mindustry not accepting command line arguments you MUST set the port once you start the game, buy using the command `port <port>`. Due to Mindustry not accepting command line arguments you MUST set the port once you start the game, by using the command `port <port>`.
This only has to be done once. This only has to be done once.
@@ -18,4 +18,4 @@ Mindustry requires a single port
| Port | Default | | Port | Default |
|---------|---------| |---------|---------|
| Game | 6567 | | Game | 6567 |
+3 -3
View File
@@ -3,11 +3,11 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-03-01T10:26:07-05:00", "exported_at": "2020-07-22T18:01:10+02:00",
"name": "Mindustry", "name": "Mindustry",
"author": "unknown@unknown.com", "author": "unknown@unknown.com",
"description": "Mindustry is a hybrid tower-defense sandbox factory game. Create elaborate supply chains of conveyor belts to feed ammo into your turrets, produce materials to use for building, and defend your structures from waves of enemies.", "description": "Mindustry is a hybrid tower-defense sandbox factory game. Create elaborate supply chains of conveyor belts to feed ammo into your turrets, produce materials to use for building, and defend your structures from waves of enemies.",
"image": "quay.io\/parkervcp\/pterodactyl-image:debian_openjdk-11", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server-release.jar port {{SERVER_PORT}},name {{SERVER_NAME}},host {{MAPNAME}}", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server-release.jar port {{SERVER_PORT}},name {{SERVER_NAME}},host {{MAPNAME}}",
"config": { "config": {
"files": "{}", "files": "{}",
@@ -51,4 +51,4 @@
"rules": "required|string" "rules": "required|string"
} }
] ]
} }
+29 -22
View File
@@ -1,24 +1,31 @@
* [Minecraft Bedrock](bedrock/) # Minecraft
* [Bedrock](bedrock/bedrock/)
* [DragonProxy](bedrock/dragonproxy/)
* [Nukkit](bedrock/nukkit/)
* [PocketMine MP](bedrock/pocketmine_mp/)
* [Minecraft Java](java/) Servers for Java Minecraft Its a game about placing blocks and going on adventures
* [Cuberite](java/cuberite/)
* [feather](feather/)
* [Feed The Beast](java/ftb/)
* [Forge](java/forge/)
* [Magma](java/magma/)
* [Paper](java/paper)
* [Spigot](java/spigot/)
* [spongeforge](java/spongeforge/)
* [SpongeVanilla](java/spongevanilla/)
* [Technic](java/technic/)
* [VanillaCord](java/vanillacord/)
* [Tuinity](java/tuinity/)
* [Minecraft Proxies](proxy/) (these are for the java version of minecraft) Its set in infinitely-generated worlds of wide open terrain - icy mountains, swampy bayous, vast pastures and much more - filled with secrets, wonders and peril!
* [Waterfall](proxy/waterfall/)
* [TyphoonLimbo](proxy/typhoonlimbo/) [Bedrock](/minecraft/bedrock/) Servers for Bedrock Minecraft (Windows 10, mobile, console)
* [Velocity](proxy/velocity/) * [Bedrock](/minecraft/bedrock/bedrock/)
* [DragonProxy](/minecraft/bedrock/dragon_proxy/)
* [Nukkit](/minecraft/bedrock/nukkit/)
* [PocketMine MP](/minecraft/bedrock/pocketmine_mp/)
[Java](/minecraft/java/) Servers for Java Minecraft
* [Cuberite](/minecraft/java/cuberite/)
* [Feather](/minecraft/java/feather/)
* [Feed The Beast](/minecraft/java/ftb/)
* [Forge](/minecraft/java/forge/)
* [Magma](/minecraft/java/magma/)
* [Paper](/minecraft/java/paper)
* [Spigot](/minecraft/java/spigot/)
* [spongeforge](/minecraft/java/spongeforge/)
* [SpongeVanilla](/minecraft/java/spongevanilla/)
* [Technic](/minecraft/java/technic/)
* [Tuinity](/minecraft/java/tuinity/)
* [VanillaCord](/minecraft/java/vanillacord/)
[Proxies](/minecraft/proxy/) Minecraft Server Proxies
* [Waterfall](/minecraft/proxy/waterfall/) Java
* [TyphoonLimbo](/minecraft/proxy/typhoonlimbo/) Java
* [Travertine](/minecraft/proxy/travertine/) Java
* [Velocity](/minecraft/proxy/velocity/) Java
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-01-24T08:59:24-05:00", "exported_at": "2020-07-14T22:15:06-04:00",
"name": "PocketmineMP", "name": "PocketmineMP",
"author": "info@swisscrafting.ch", "author": "info@swisscrafting.ch",
"description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)",
@@ -17,9 +17,9 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n\r\napk add --no-cache curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n downloading pocketmine MP build ${PMMP_VERSION}\"\r\nif [ -z \"$PMMP_VERSION\" ] || [ \"$PMMP_VERSION\" == \"latest\" ]; then\r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/Stable\/artifact\/PocketMine-MP.phar\r\nelse \r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/${PMMP_VERSION}\/artifact\/PocketMine-MP.phar\r\nfi\r\n\r\necho -e \"\\n downloading latest php7.3 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.3-Linux-x86_64\/lastSuccessfulBuild\/artifact\/PHP_Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n getting default server.properties\"\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/pocketmine_mp\/server.properties > server.properties\r\n\r\necho -e \"\\n unpacking php7 binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing pvp7 packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.tx banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs", "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n downloading pocketmine MP build ${PMMP_VERSION}\"\r\nif [ -z \"$PMMP_VERSION\" ] || [ \"$PMMP_VERSION\" == \"latest\" ]; then\r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/Stable\/artifact\/PocketMine-MP.phar\r\nelse \r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/${PMMP_VERSION}\/artifact\/PocketMine-MP.phar\r\nfi\r\n\r\necho -e \"\\n downloading latest php7.3 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.3-Linux-x86_64\/lastSuccessfulBuild\/artifact\/PHP_Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n getting default server.properties\"\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/pocketmine_mp\/server.properties > server.properties\r\n\r\necho -e \"\\n unpacking php7 binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing pvp7 packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.tx banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs",
"container": "alpine:3.10", "container": "debian:buster-slim",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
+28 -2
View File
@@ -28,7 +28,30 @@ A generic service to pull forge mod packs from the curseforge site.
A generic service to pull forge mod packs from the FTB site. A generic service to pull forge mod packs from the FTB site.
Supply values to 2 variables to use Supply values to 2 variables to use
- MODPACK_URL: from the url to the pack https://www.feed-the-beast.com/projects/{MODPACK_URL} - MODPACK_URL: from the url to the pack https://www.feed-the-beast.com/projects/{MODPACK_URL}
- MODPACK_VERSION: version of the modpack to install - MODPACK_VERSION: version of the modpack to install
[FTB Modpacks through modpacks.ch](https://api.modpacks.ch)
A generic service to pull FTB modpacks from api.modpacks.ch.
There are 2 ways to install a server through this service.
The first method only requires you to know the modpacks name and version.
The second method requires you to know the id for both the modpack and version in the api.
**Method 1 (Recommended)**
- FTB_SEARCH_TERM: the modpack name to query for, must be at least 4 characters long.
EX: for FTB: Interactions you would do "interactions".
- FTB_VERSION_STRING: the string version that you want to install.
EX: for FTB: Interactions 2.0.2, you would put "2.0.2".
**Method 2**
- FTB_MODPACK_ID: the id that directs to the modpack in the api.
EX: for FTB: Interactions the id would be "5". https://api.modpacks.ch/public/modpack/5
- FTB_MODPACK_VERSION_ID: the version id in the api.
EX: for FTB: Interactions 2.0.2 the id is "86". https://api.modpacks.ch/public/modpack/5/86
**NOTE**
**Not all FTB packs come with a server.properties file, due to this the server.properties file
may not get updated with the correct ip address and port at first launch.
Please restart the server after first launch to fix this.**
[FTB Revelation](https://www.feed-the-beast.com/projects/ftb-revelation) [FTB Revelation](https://www.feed-the-beast.com/projects/ftb-revelation)
Revelation is a general all-purpose modpack with optimal FPS, server performance and stability. Revelation is a general all-purpose modpack with optimal FPS, server performance and stability.
@@ -63,7 +86,10 @@ Gear up and set forth on a campaign worthy of legend, for Hexxit has been uneart
Blightfall is a combination modpack and adventure map about surviving on an alien planet. Blightfall is a combination modpack and adventure map about surviving on an alien planet.
[Tekkit Legends](https://www.technicpack.net/modpack/tekkit-legends) [Tekkit Legends](https://www.technicpack.net/modpack/tekkit-legends)
The ancient power of Tekkits past return in this legendary pack! The ancient power of Tekkits past return in this legendary pack!
[Tekkit Classic](https://www.technicpack.net/modpack/tekkit.552560)
The official Tekkit Classic modpack. Build factories, automate crafting!
## Tuinity ## Tuinity
Fork of Paper aimed at improving server performance at high playercounts. Fork of Paper aimed at improving server performance at high playercounts.
File diff suppressed because one or more lines are too long
@@ -3,12 +3,12 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-04-22T19:49:57-04:00", "exported_at": "2020-06-01T21:19:06-04:00",
"name": "Forge Enhanced", "name": "Forge Enhanced",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.",
"image": "quay.io\/pterodactyl\/core:java", "image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": { "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}", "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}", "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}",
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nJSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\nif [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n\tBUILD_TYPE=recommended\r\nfi\r\n\r\nif [ \"${BUILD_TYPE}\" != \"recommended\" ] && [ \"${BUILD_TYPE}\" != \"latest\" ]; then\r\n BUILD_TYPE=recommended\r\nfi\r\n\r\necho -e \"minecraft version: ${MC_VERSION}\"\r\necho -e \"build type: ${BUILD_TYPE}\"\r\n\r\n## some variables for getting versions and things\r\nFILE_SITE=$(echo -e ${JSON_DATA} | jq -r '.homepage' | sed \"s\/http:\/https:\/g\")\r\nVERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n## locating the forge version\r\nif [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"recommended\"))')\r\nfi\r\n\r\n## Error if the mc version set wasn't valid.\r\nif [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\r\n\techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n\texit 1\r\nfi\r\n\r\nFORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\nif [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ]; then\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\r\n fi\r\nelse\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\r\nfi\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\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 -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\nmv $FORGE_JAR $SERVER_JARFILE\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${FORGE_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}\r\nelse\r\n JSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\n if [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n \tBUILD_TYPE=recommended\r\n fi\r\n\r\n if [ \"${BUILD_TYPE}\" != \"recommended\" ] && [ \"${BUILD_TYPE}\" != \"latest\" ]; then\r\n BUILD_TYPE=recommended\r\n fi\r\n\r\n echo -e \"minecraft version: ${MC_VERSION}\"\r\n echo -e \"build type: ${BUILD_TYPE}\"\r\n\r\n ## some variables for getting versions and things\r\n FILE_SITE=$(echo -e ${JSON_DATA} | jq -r '.homepage' | sed \"s\/http:\/https:\/g\")\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n ## locating the forge version\r\n if [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"recommended\"))')\r\n fi\r\n\r\n ## Error if the mc version set wasn't valid.\r\n if [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\r\n \techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n \texit 1\r\n fi\r\n\r\n FORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ]; then\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\r\n fi\r\n else\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\r\n fi\r\nfi\r\n\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link closing out\"\r\n exit 3\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n\r\nmv $FORGE_JAR $SERVER_JARFILE\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar",
"container": "openjdk:8-jdk-slim", "container": "openjdk:8-jdk-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@@ -49,6 +49,15 @@
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "required|string|max:20" "rules": "required|string|max:20"
},
{
"name": "Forge Version",
"description": "Gets an exact version.\r\n\r\nEx. 1.15.2-31.2.4\r\n\r\nOverrides MC_VERSION and BUILD_TYPE. If it fails to download the server files it will fail to install.",
"env_variable": "FORGE_VERSION",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:20"
} }
] ]
} }
@@ -0,0 +1,63 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-07-15T18:19:27-04:00",
"name": "FTB-modpacks.ch Server",
"author": "runemaster580@gmail.com",
"description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar forge-server.jar",
"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\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq dos2unix\r\n}\r\n\r\n\r\nfunction get_download {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ \"${FTB_SEARCH_TERM}\" != \"\" ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ \"${FTB_VERSION_STRING}\" != \"\" ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n \r\n echo -e \"ID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID}\"\r\n \r\n cd \/mnt\/server\r\n \r\n curl https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID}\/${FTB_MODPACK_VERSION_ID}\/server\/linux --output serversetup\r\n chmod +x .\/serversetup\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} <<< 'y'\r\n}\r\n\r\nfunction cleanup {\r\n rm -rf serversetup\r\n mv forge-*.jar forge-server.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\ncleanup",
"container": "openjdk:8-jdk-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "FTB Pack search term",
"description": "the search term for finding the modpack. needs to be at least 4 characters long.\r\nFind out what term is needed by using the ftb app and searching with the term. make sure it only returns 1 result.\r\ncan also be searched for via: https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term={SEARCHTERM}\r\n\r\nonly needed if the modpack id and modpack version id is unknown.",
"env_variable": "FTB_SEARCH_TERM",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:99|min:4"
},
{
"name": "FTB modpack ID",
"description": "The FTB Api modpack ID.\r\nNeeded if not using the search variable\r\n\r\nExample: FTB Interactions ID is 5.\r\nhttps:\/\/api.modpacks.ch\/public\/modpack\/5",
"env_variable": "FTB_MODPACK_ID",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:20"
},
{
"name": "FTB Pack Version",
"description": "what version of the modpack to install. leave empty if using the modpack version id variable.",
"env_variable": "FTB_VERSION_STRING",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:20"
},
{
"name": "FTB Pack Version ID",
"description": "The modpack api version ID.\r\nneeded if not using the string for the version.\r\n\r\nExample FTB Revelations version id for version \"2.0.2\" is 86.\r\nwhich would come out as: https:\/\/api.modpacks.ch\/public\/modpack\/5\/86",
"env_variable": "FTB_MODPACK_VERSION_ID",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:20"
}
]
}
+1 -1
View File
@@ -60,4 +60,4 @@
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"",
"container": "openjdk:8-jre-slim", "container": "openjdk:8-jre-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# spongeVanilla Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n## check spongevanilla version and default to recommended if it's invalid\r\nif [ -z ${SV_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/${SV_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SV_VERSION=\"recommended\"\r\nfi\r\n\r\n## handle getting download linsk for sponge\r\nif [ \"${SV_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended spongevanilla version\"\r\n SV_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found spongevanilla Version ${SV_VERSION}\"\r\n SV_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\nelif [ \"${SV_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SV_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found spongevanilla Version ${SV_VERSION}\"\r\nelse\r\n echo -e \"found spongevanilla Version ${SV_VERSION}\"\r\n SV_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/${SV_VERSION} | jq -r '.artifacts.\"\".url')\r\nfi\r\n\r\nif [ -f ${SERVER_JARFILE} ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/recommended | jq -r '.artifacts.\"\".sha1') ]; then\r\n echo -e \"Already have the correct spongevanilla version\"\r\nelse\r\n echo -e \"Downloading spongevanilla version ${SV_VERSION}\"\r\n echo -e \"running: curl -s ${SV_DL_LINK} -o \/mnt\/server\/mods\/spongevanilla-${SV_VERSION}.jar\"\r\n curl -s ${SV_DL_LINK} -o \/mnt\/server\/${SERVER_JARFILE}\r\nfi\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -s -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi\r\n\r\necho -e \"Install for spongevanilla is complete\"", "script": "#!\/bin\/bash\r\n# spongeVanilla Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n## check spongevanilla version and default to recommended if it's invalid\r\nif [ -z ${SV_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/${SV_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SV_VERSION=\"recommended\"\r\nfi\r\n\r\n## handle getting download linsk for sponge\r\nif [ \"${SV_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended spongevanilla version\"\r\n SV_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found spongevanilla Version ${SV_VERSION}\"\r\n SV_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\nelif [ \"${SV_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SV_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found spongevanilla Version ${SV_VERSION}\"\r\nelse\r\n echo -e \"found spongevanilla Version ${SV_VERSION}\"\r\n SV_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/${SV_VERSION} | jq -r '.artifacts.\"\".url')\r\nfi\r\n\r\nif [ -f ${SERVER_JARFILE} ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongevanilla\/downloads\/recommended | jq -r '.artifacts.\"\".sha1') ]; then\r\n echo -e \"Already have the correct spongevanilla version\"\r\nelse\r\n echo -e \"Downloading spongevanilla version ${SV_VERSION}\"\r\n echo -e \"running: curl -s ${SV_DL_LINK} -o \/mnt\/server\/mods\/spongevanilla-${SV_VERSION}.jar\"\r\n curl -s ${SV_DL_LINK} -o \/mnt\/server\/${SERVER_JARFILE}\r\nfi\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -s -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_java\/server.properties\r\nfi\r\n\r\necho -e \"Install for spongevanilla is complete\"",
"container": "debian:stable-slim", "container": "debian:stable-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
+7 -5
View File
@@ -15,8 +15,10 @@ If you are reading this it looks like you are looking to add an egg to your serv
## Technic Eggs ## Technic Eggs
[Technic](/minecraft/java/technic/) [Technic](/minecraft_java/technic/)
* [Blightfall](/minecraft/java/technic/blightfall/) * [Attack of the B-Team](/minecraft_java/technic/attack-of-the-bteam/)
* [Hexxit](/minecraft/java/technic/hexxit/) * [Blightfall](/minecraft_java/technic/blightfall/)
* [Tekkit Legends](/minecraft/java/technic/tekkit-legends/) * [Hexxit](/minecraft_java/technic/hexxit/)
* [Attack of the B-Team](/minecraft/java/technic/attack-of-the-bteam/) * [Tekkit Classic](/minecraft_java/technic/tekkit-classic/)
* [Tekkit Legends](/minecraft_java/technic/tekkit-legends/)
* [The 1.7.10 Pack](/minecraft_java/technic/the-1-7-10-pack/)
@@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-04-30T21:51:06+02:00",
"name": "Tekkit Classic",
"author": "geoffrey@remedygaming.net",
"description": "Created by the Technic team, Tekkit Classic is a modpack for the record breaking sandbox construction game Minecraft. \r\nIt brings together some of the best mods from the Minecraft community for automating, industrializing and powering your worlds and bundles them into one easy download!",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar Tekkit.jar",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \")! For help, type \"\r\n}",
"logs": "{}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -sS http:\/\/servers.technicpack.net\/Technic\/servers\/tekkit\/Tekkit_Server_$MODPACK_VERSION.zip -o Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nunzip Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm -rf Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm launch.bat\r\n\r\nrm launch.sh\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_java\/server.properties\r\nfi",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Modpack Version",
"description": "",
"env_variable": "MODPACK_VERSION",
"default_value": "3.1.2",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
}
]
}
@@ -0,0 +1,13 @@
# Minecraft: The 1.7.10 Pack
A very good modpack!
https://www.technicpack.net/modpack/the-1710-pack.453902
## 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 |
@@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-04-19T18:58:27+02:00",
"name": "The 1.7.10 Pack",
"author": "contact@sweplox.se",
"description": "The 1.7.10 Pack",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar forge-*.jar",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -sS http:\/\/solder.endermedia.com\/repository\/downloads\/the-1710-pack\/the-1710-pack_$MODPACK_VERSION.zip -o the-1710-pack_$MODPACK_VERSION.zip\r\n\r\nunzip the-1710-pack_$MODPACK_VERSION.zip\r\n\r\nrm -rf the-1710-pack_$MODPACK_VERSION.zip",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Modpack Version",
"description": "Version of the modpack to use",
"env_variable": "MODPACK_VERSION",
"default_value": "0.9.8d",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
}
]
}
+10
View File
@@ -0,0 +1,10 @@
# Travertine server
Waterfall, with additional support for Minecraft 1.7.10.
## 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 |
@@ -0,0 +1,63 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-08-11T15:24:12-04:00",
"name": "Travertine",
"author": "parker@parkervcp.com",
"description": "Travertine is a fork of the well-known Waterfall server teleportation suite.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -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 \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"proxy.log.0\"\r\n}",
"stop": "end"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n echo -e \"getting latest supported mc version and latest paper build\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/travertine | jq -r '.versions[0]')\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n VER_EXISTS=true\r\n else\r\n echo -e \"checking if version ${MINECRAFT_VERSION} exists\"\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/travertine | jq -r --arg VERSION ${MINECRAFT_VERSION} '.versions[] | contains($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest travertine version\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/travertine | jq -r '.versions[0]')\r\n fi\r\n \r\n BUILD_EXISTS=$(curl -sSL https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | contains($BUILD)' | grep true)\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build for version ${MINECRAFT_VERSION}\"\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/travertine\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\nif [ -z ${SERVER_JARFILE} ]; then\r\n SERVER_JARFILE=server.jar\r\nfi\r\n\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading travertine config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/travertine\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Minecraft Version",
"description": "The version of Minecraft that water was built to support.",
"env_variable": "MINECRAFT_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|alpha_num|between:1,6"
},
{
"name": "Waterfall Jar File",
"description": "The name of the Jarfile to use when running Waterfall.",
"env_variable": "SERVER_JARFILE",
"default_value": "waterfall.jar",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Download Link",
"description": "A link to the server jar to download the waterfall jar.",
"env_variable": "DL_LINK",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
},
{
"name": "Waterfall build number",
"description": "Default is latest.\r\n\r\nif set to latest or an invalid version will grab the latest build number.",
"env_variable": "BUILD_NUMBER",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
}
]
}
@@ -3,11 +3,11 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-07-15T23:01:54-04:00", "exported_at": "2020-06-20T11:37:02-04:00",
"name": "TyphoonLimbo", "name": "TyphoonLimbo",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "Lightweight minecraft limbo server", "description": "Lightweight minecraft limbo server",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian",
"startup": "`sleep 2 && .\/TyphoonLimbo`", "startup": "`sleep 2 && .\/TyphoonLimbo`",
"config": { "config": {
"files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"listen_address\": \":{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"listen_address\": \":{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
@@ -17,9 +17,9 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# TyphoonLimbo 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\napk add --no-cache --update git curl\r\n\r\ncd \/tmp\/\r\n\r\necho \"pulling the TyphoonLimbo pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/TyphoonMC\/TyphoonLimbo.git\r\ncd TyphoonLimbo\r\n\r\ngo get github.com\/TyphoonMC\/TyphoonCore\r\n\r\necho -e \"building TyphoonLimbo\"\r\ngo build\r\n\r\nmv TyphoonLimbo \/mnt\/server\/\r\n\r\nif [ -f \/mnt\/server\/config.json ]; then\r\n\techo -e \"config exists nothing to do\"\r\nelse\r\n\techo -e \"copying default config over\"\r\n\tcp config.json \/mnt\/server\/\r\nfi\r\n\r\necho -e \"install complete\"", "script": "#!\/bin\/bash\r\n# TyphoonLimbo 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\napt update\r\napt install -y git curl\r\n\r\ncd \/tmp\/\r\n\r\necho \"pulling the TyphoonLimbo pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/TyphoonMC\/TyphoonLimbo.git\r\ncd TyphoonLimbo\r\n\r\ngo get github.com\/TyphoonMC\/TyphoonCore\r\n\r\necho -e \"building TyphoonLimbo\"\r\ngo build\r\n\r\nmv TyphoonLimbo \/mnt\/server\/\r\n\r\nif [ -f \/mnt\/server\/config.json ]; then\r\n\techo -e \"config exists nothing to do\"\r\nelse\r\n\techo -e \"copying default config over\"\r\n\tcp config.json \/mnt\/server\/\r\nfi\r\n\r\necho -e \"install complete\"",
"container": "golang:1.12-alpine", "container": "golang:1.14-buster",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [] "variables": []
+10
View File
@@ -0,0 +1,10 @@
# Waterfall server
Paper fork of the BungeeCord software, with improved Forge support and more features.
## 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 |
+5 -5
View File
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-12-23T13:23:16-04:00", "exported_at": "2020-06-03T16:13:49-04:00",
"name": "Waterfall", "name": "Waterfall",
"author": "hostmaster@waterfallgaming.net", "author": "hostmaster@waterfallgaming.net",
"description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.",
@@ -17,9 +17,9 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n else\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | contains ([$VERSION])')\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n fi\r\n \r\n if [ ! ${BUILD_NUMBER} == \"latest\" ] ; then\r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_WATERFALL_VERSION}\r\n fi\r\n fi\r\n \r\n echo \"Version being downloaded: ${BUILD_NUMBER}\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", "script": "#!\/bin\/bash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n echo -e \"getting latest supported mc version and latest paper build\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n VER_EXISTS=true\r\n else\r\n echo -e \"checking if version ${MINECRAFT_VERSION} exists\"\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION ${MINECRAFT_VERSION} '.versions[] | contains($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=$(curl -sSL https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | contains($BUILD)' | grep true)\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build for version ${MINECRAFT_VERSION}\"\r\n BUILD_NUMBER=$(curl -sSL https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\nif [ -z ${SERVER_JARFILE} ]; then\r\n SERVER_JARFILE=server.jar\r\nfi\r\n\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"container": "alpine:3.10", "container": "debian:buster-slim",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
@@ -60,4 +60,4 @@
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }
+12 -1
View File
@@ -3,6 +3,17 @@
# #
# Server Files: /mnt/server # Server Files: /mnt/server
# Image to install with is 'debian:buster-slim' # Image to install with is 'debian:buster-slim'
##
#
# Variables
# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.
# WINDOWS_INSTALL - if it's a windows server you want to install set to 1
# SRCDS_APPID - steam app id ffound here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.
#
##
apt -y update apt -y update
apt -y --no-install-recommends install curl lib32gcc1 ca-certificates apt -y --no-install-recommends install curl lib32gcc1 ca-certificates
@@ -30,7 +41,7 @@ chown -R root:root /mnt
export HOME=/mnt/server export HOME=/mnt/server
## install game using steamcmd ## install game using steamcmd
./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6 ./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
## set up 32 bit libraries ## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32 mkdir -p /mnt/server/.steam/sdk32
+10 -2
View File
@@ -19,6 +19,9 @@ This is a collection of servers that use steamcmd to install.
## Conan Exiles ## Conan Exiles
[conan_exiles](conan_exiles/) [conan_exiles](conan_exiles/)
## Dead Matter
[dead_matter](dead_matter/)
## Don't Starve ## Don't Starve
[dont_starve](dont_starve/) [dont_starve](dont_starve/)
@@ -31,12 +34,18 @@ This is a collection of servers that use steamcmd to install.
## Hurtworld ## Hurtworld
[hurtworld](hurtworld/) [hurtworld](hurtworld/)
## Insurgency: Sandstorm
[Insurgency: Sandstorm](insurgency_sandstorm/)
## Mordhau ## Mordhau
[mordhau](mordhau/) [mordhau](mordhau/)
## Onset ## Onset
[onset](onset/) [onset](onset/)
## Project Zomboid
[project_zomboid](project_zomboid/)
## Rust Staging ## Rust Staging
[rust staging](rust_staging/) [rust staging](rust_staging/)
@@ -53,7 +62,7 @@ This is a collection of servers that use steamcmd to install.
[starbound](starbound/) [starbound](starbound/)
## Stationeers ## Stationeers
[Stationeers](/steamcmd_servers/Stationeers/) [Stationeers](/steamcmd_servers/stationeers/)
## Sven coop ## Sven coop
[svencoop](svencoop) [svencoop](svencoop)
@@ -62,5 +71,4 @@ This is a collection of servers that use steamcmd to install.
[Tower Unite](tower_unite) [Tower Unite](tower_unite)
## Unturned ## Unturned
* [RocketMod](rocketmod)
* [Unturned](unturned) * [Unturned](unturned)
@@ -3,22 +3,22 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-12-08T10:15:59-05:00", "exported_at": "2020-07-10T21:55:50-04:00",
"name": "Ark: Survival Evolved", "name": "Ark: Survival Evolved",
"author": "dev@shepper.fr", "author": "dev@shepper.fr",
"description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK",
"image": "quay.io\/pterodactyl\/core:source", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source",
"startup": "\"cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName='{{SESSION_NAME}}'?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}} -server -log\"", "startup": "rmv() { echo -e \"stoppping server\"; rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c saveworld && rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c DoExit; }; trap \\'echo -e \\\"ctrl-c caught\\\" && rmv\\'; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName='{{SESSION_NAME}}'?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}}$( [ \"$BATTLE_EYE\" == \"0\" ] && printf %s '?-NoBattlEye' ) -server -log & until echo \"waiting for rcon connection...\"; rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD}; do sleep 5; done",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"Setting breakpad minidump AppID = 346110\",\r\n \"userInteraction\": []\r\n}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "^C" "stop": "^C"
}, },
"scripts": { "scripts": {
"installation": { "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 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\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\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\ncd \/mnt\/server", "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\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\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\ncd \/mnt\/server",
"container": "ubuntu:18.04", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
@@ -54,19 +54,19 @@
"name": "Admin Password", "name": "Admin Password",
"description": "If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server.", "description": "If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server.",
"env_variable": "ARK_ADMIN_PASSWORD", "env_variable": "ARK_ADMIN_PASSWORD",
"default_value": "", "default_value": "PleaseChangeMe",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "nullable|alpha_dash|between:1,100" "rules": "nullable|alpha_dash|between:1,100"
}, },
{ {
"name": "Use Rcon", "name": "Use Rcon",
"description": "Enable or disable rcon system. (true or false)", "description": "Enable or disable rcon system. (true or false)\r\n\r\nDefault True for the console to work.",
"env_variable": "ENABLE_RCON", "env_variable": "ENABLE_RCON",
"default_value": "false", "default_value": "True",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 0,
"rules": "required|string|max:5" "rules": "required|string|in:True,False"
}, },
{ {
"name": "Rcon Port", "name": "Rcon Port",
@@ -94,6 +94,24 @@
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "required|string|max:20" "rules": "required|string|max:20"
},
{
"name": "Auto-update server",
"description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 0. Set to 1 to update",
"env_variable": "AUTO_UPDATE",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
},
{
"name": "Ballte Eye",
"description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"",
"env_variable": "BATTLE_EYE",
"default_value": "1",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
} }
] ]
} }
@@ -3,12 +3,12 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2018-12-25T20:34:11-05:00", "exported_at": "2020-07-11T08:34:24-04:00",
"name": "Conan Exiles", "name": "Conan Exiles",
"author": "brycea@rapidnetworks.org", "author": "brycea@terrahost.cloud",
"description": "Conan Exiles is an open-world survival game set in the brutal lands of Conan the Barbarian. Survive in a savage world, build your kingdom, and dominate your enemies in brutal combat and epic warfare.", "description": "Conan Exiles is an open-world survival game set in the brutal lands of Conan the Barbarian. Survive in a savage world, build your kingdom, and dominate your enemies in brutal combat and epic warfare.",
"image": "quay.io\/parkervcp\/pterodactyl-images:wine-source", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_wine-5",
"startup": "wine ConanSandboxServer.exe -log", "startup": "xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine \/home\/container\/ConanSandboxServer.exe -console -log",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{}", "startup": "{}",
@@ -17,8 +17,8 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates xvfb screen\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +@sSteamCmdForcePlatformType windows +force_install_dir \/mnt\/server +app_update ${APPID} validate +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n# Get First-Time Setup Configuration Files\r\necho \"#!\/bin\/sh\r\nexport WINEARCH=win64\r\nexport WINEPREFIX=\/mnt\/server\/.wine64\r\nxvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32'\r\nwine \/mnt\/server\/SpaceEngineersDedicated.exe -console\" > \/mnt\/server\/start_se.sh\r\nchmod +x \/mnt\/server\/start_se.sh", "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +@sSteamCmdForcePlatformType windows +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "ubuntu:18.04", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
@@ -26,11 +26,47 @@
{ {
"name": "Game ID", "name": "Game ID",
"description": "The ID corresponding to the game to download.", "description": "The ID corresponding to the game to download.",
"env_variable": "APPID", "env_variable": "SRCDS_APPID",
"default_value": "443030", "default_value": "443030",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 0, "user_editable": 0,
"rules": "required|numeric|digits_between:1,6" "rules": "required|numeric|digits_between:1,6"
},
{
"name": "XVFB Enable",
"description": "1 or 0",
"env_variable": "XVFB",
"default_value": "1",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|numeric|min:0|max:1"
},
{
"name": "XVFB Display Width",
"description": "",
"env_variable": "DISPLAY_WIDTH",
"default_value": "640",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|numeric"
},
{
"name": "XVFB Display Height",
"description": "",
"env_variable": "DISPLAY_HEIGHT",
"default_value": "480",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|numeric"
},
{
"name": "XVFB Bit Depth",
"description": "",
"env_variable": "DISPLAY_DEPTH",
"default_value": "32",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|numeric"
} }
] ]
} }
+13
View File
@@ -0,0 +1,13 @@
# Dead Matter
Dead Matter, by indie company Quantum Integrity Software Inc., is a zombie survival rogue-lite set in a near future, post-apocalyptic Alberta. Bringing together various, handpicked elements of the open-world survival genre, along with our own original touches, Dead Matter aims to quench the communitys thirst for a title to properly balance survival mechanics with fulfilling gameplay.
Dead Matter is currently in closed alpha. Installation requires logging in with a Steam account that owns the game.
### Server Ports
Dead Matter requires 3 ports. Currently these ports do not seem to be configurable.
| Port | default |
|---------|---------------|
| Game | 7777 - 7778 |
| Query | 28016 |
@@ -0,0 +1,14 @@
{
"Servername": "My Server",
"MaxPlayers": 3,
"Tags": "",
"Password": "",
"MOTD": "Welcome to my server",
"Seed": 0,
"FirstPersonOnly": false,
"IsHardcore": false,
"MaxPlayerClaims": 3,
"MaxZombieCount": 2048,
"MaxAnimalCount": 1024,
"MaxBanditCount": 256
}
@@ -0,0 +1,81 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-08-23T00:39:51-07:00",
"name": "Dead Matter",
"author": "iamkubi@gmail.com",
"description": "Dead Matter, by indie company Quantum Integrity Software Inc., is a zombie survival rogue-lite set in a near future, post-apocalyptic Alberta. Bringing together various, handpicked elements of the open-world survival genre, along with our own original touches, Dead Matter aims to quench the community\u2019s thirst for a title to properly balance survival mechanics with fulfilling gameplay.",
"image": "quay.io\/pterodactyl\/core:source",
"startup": ".\/deadmatterServer.sh",
"config": {
"files": "{\r\n \"deadmatter\/ServerConfig.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"Servername\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
"startup": "{}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${APPID} validate +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steamcmd\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncurl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/deadmatter\/ServerConfig.json --output \/mnt\/server\/deadmatter\/ServerConfig.json",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "App ID",
"description": "Steam App ID",
"env_variable": "APPID",
"default_value": "1110990",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string|max:20"
},
{
"name": "Steam User",
"description": "A Steam username with Dead Matter on the account",
"env_variable": "STEAM_USER",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:32"
},
{
"name": "Steam Password",
"description": "Steam User Password",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
},
{
"name": "Steam Auth Code",
"description": "Steam Auth Code when Steam Auth is enabled",
"env_variable": "STEAM_AUTH",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
},
{
"name": "Max Players",
"description": "Maximum number of players",
"env_variable": "MAX_PLAYERS",
"default_value": "3",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|numeric"
},
{
"name": "Server Name",
"description": "Name that appears in the server list",
"env_variable": "SERVER_NAME",
"default_value": "Pterodactyl Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
}
]
}
@@ -3,21 +3,21 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-03-30T13:56:41-04:00", "exported_at": "2020-07-10T10:48:40-04:00",
"name": "Don't Starve Together", "name": "Don't Starve Together",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "Don\u2019t Starve Together is an uncompromising wilderness survival game full of science and magic.", "description": "Don\u2019t Starve Together is an uncompromising wilderness survival game full of science and magic.",
"image": "quay.io\/parkervcp\/pterodactyl-images:source", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source",
"startup": "'cd bin && .\/dontstarve_dedicated_server_nullrenderer -bind_ip 0.0.0.0 -port {{SERVER_PORT}} -console -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}}'", "startup": "cd bin && coproc caves ( .\/dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Caves ); .\/dontstarve_dedicated_server_nullrenderer -bind_ip 0.0.0.0 -port 10999 -console -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Master && echo 'c_shutdown()' >&\"${caves[1]}\"",
"config": { "config": {
"files": "{}", "files": "{\r\n \"DoNotStarveTogether\/config\/server\/cluster.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"GAMEPLAY.game_mode\": \"{{server.build.env.GAME_MODE}}\",\r\n \"GAMEPLAY.max_players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"NETWORK.cluster_name\": \"{{server.build.env.CLUSTER_NAME}}\",\r\n \"NETWORK.cluster_description\": \"{{server.build.env.CLUSTER_DESC}}\",\r\n \"SHARD.shard_enabled\": \"true\",\r\n \"SHARD.bind_ip\": \"127.0.0.1\",\r\n \"SHARD.master_ip\": \"127.0.0.1\",\r\n \"SHARD.master_port\": \"11001\"\r\n }\r\n },\r\n \"DoNotStarveTogether\/config\/server\/Master\/server.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"NETWORK.server_port\": \"{{server.build.default.port}}\",\r\n \"SHARD.is_master\": \"true\"\r\n }\r\n },\r\n \"DoNotStarveTogether\/config\/server\/Caves\/server.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"NETWORK.server_port\": \"11000\",\r\n \"SHARD.is_master\": \"false\",\r\n \"SHARD.name\": \"Caves\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Setting breakpad minidump AppID\",\r\n \"userInteraction\": []\r\n}", "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID\",\r\n \"userInteraction\": []\r\n}",
"logs": "{}", "logs": "{}",
"stop": "^C" "stop": "c_shutdown()"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## DST specific\r\nmkdir -p ~\/DoNotStarveTogether\/config\/server\/\r\necho \"${SERVER_TOKEN}\" >> ~\/DoNotStarveTogether\/config\/server\/cluster_token.txt", "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## DST specific\r\n## cluster token file\r\necho -e \"getting cluster configs\"\r\nmkdir -p \/mnt\/server\/DoNotStarveTogether\/config\/server\/\r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster_token.txt ]; then\r\n echo \"${SERVER_TOKEN}\" >> \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster_token.txt\r\nfi\r\n\r\n## cluster configs \r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster.ini ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/dont_starve\/server.cluster.ini -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/cluster.ini\r\nfi\r\n\r\n## master configs\r\necho -e \"getting master configs\"\r\nmkdir -p \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/\r\n## master ini\r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/server.ini ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/dont_starve\/server.master.ini -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/server.ini\r\nfi\r\n\r\n## master worldgen override\r\nif [ ! -z ${MASTER_WORLDGEN} ] && [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/worldgenoverride.lua ]; then\r\n curl -sSL ${MASTER_WORLDGEN} -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Master\/worldgenoverride.lua\r\nfi\r\n\r\n## caves configs\r\necho -e \"getting cave configs\"\r\nmkdir -p \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/\r\n## caves ini\r\nif [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/server.ini ]; then\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/dont_starve\/server.caves.ini -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/server.ini\r\nfi\r\n\r\n## caves worldgen override\r\nif [ ! -z ${CAVES_WORLDGEN} ] && [ ! -f \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/worldgenoverride.lua ]; then\r\n curl -sSL ${CAVES_WORLDGEN} -o \/mnt\/server\/DoNotStarveTogether\/config\/server\/Caves\/worldgenoverride.lua\r\nfi\r\n\r\necho -e \"install complete\"",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@@ -25,16 +25,16 @@
"variables": [ "variables": [
{ {
"name": "Max Players", "name": "Max Players",
"description": "Set the maximum number of players that will be allowed to join the game. This option overrides the [GAMEPLAY] \/ max_players setting in cluster.ini.", "description": "Set the maximum number of players that will be allowed to join the game. This option overrides the [GAMEPLAY] \/ max_players setting in cluster.ini.\r\n\r\ndefault is 16",
"env_variable": "MAX_PLAYERS", "env_variable": "MAX_PLAYERS",
"default_value": "4", "default_value": "16",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 0, "user_editable": 0,
"rules": "required|integer|between:1,31" "rules": "required|integer|between:1,31"
}, },
{ {
"name": "Server Token", "name": "Server Token",
"description": "Required to run a public server. This needs to be generated from in game.", "description": "Required to run a public server. This needs to be generated from in game.\r\n\r\nGet your token here:\r\nhttps:\/\/accounts.klei.com\/account\/game\/servers?game=DontStarveTogether",
"env_variable": "SERVER_TOKEN", "env_variable": "SERVER_TOKEN",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": 1,
@@ -49,6 +49,60 @@
"user_viewable": 1, "user_viewable": 1,
"user_editable": 0, "user_editable": 0,
"rules": "required|string|max:20" "rules": "required|string|max:20"
},
{
"name": "Auto-update server",
"description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 0. Set to 1 to update",
"env_variable": "AUTO_UPDATE",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
},
{
"name": "Game mode",
"description": "Valid values are survival, endless or wilderness",
"env_variable": "GAME_MODE",
"default_value": "survival",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Cluster Name",
"description": "This is the name that will show up in server browser.",
"env_variable": "CLUSTER_NAME",
"default_value": "A Pterodactyl Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Cluster Description",
"description": "This will show up in the server details area on the \u201cBrowse Games\u201d screen.",
"env_variable": "CLUSTER_DESC",
"default_value": "A Pterodactyl Hosted Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Master Worldgen Override",
"description": "Link to the lua file used to generate the master server map. Only used during the install phase.",
"env_variable": "MASTER_WORLDGEN",
"default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/dont_starve\/worldgenoverride.master.lua",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Master Worldgen Override",
"description": "Link to the lua file used to generate the caves server map. Only used during the install phase.\r\n\r\nDefault generates a cave map",
"env_variable": "CAVES_WORLDGEN",
"default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/dont_starve\/worldgenoverride.caves.lua",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
} }
] ]
} }
@@ -0,0 +1,10 @@
[ACCOUNT]
encode_user_path = true
[NETWORK]
server_port = 11000
[SHARD]
is_master = false
name = Caves
id = 1137196188
@@ -0,0 +1,23 @@
[GAMEPLAY]
game_mode = survival
max_players = 10
pvp = false
pause_when_empty = false
[NETWORK]
cluster_name = Pterodactyl Test Server
cluster_description = A Pterodactyl Hosted Server
cluster_password =
cluster_intention = social
autosaver_enabled = true
enable_vote_kick = false
[MISC]
console_enabled = true
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 11001
cluster_key = dst
@@ -0,0 +1,8 @@
[ACCOUNT]
encode_user_path = true
[NETWORK]
server_port = 10999
[SHARD]
is_master = true
@@ -0,0 +1,106 @@
return {
override_enabled = true,
preset = "DST_CAVE", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS"
overrides = {
-- MISC
task_set = "cave_default", -- "classic", "default", "cave_default"
start_location = "default", -- "caves", "default", "plus", "darkness"
world_size = "default", -- "small", "medium", "default", "huge"
branching = "default", -- "never", "least", "default", "most"
loop = "default", -- "never", "default", "always"
specialevent = "default", -- "none", "default", "hallowed_nights", "winters_feast", "year_of_the_gobbler"
autumn = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
winter = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
spring = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
summer = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
season_start = "default", -- "default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random"
day = "default", -- "default", "longday", "longdusk", "longnight", "noday", "nodusk", "nonight", "onlyday", "onlydusk", "onlynight"
weather = "default", -- "never", "rare", "default", "often", "always"
earthquakes = "default", -- "never", "rare", "default", "often", "always"
lightning = "default", -- "never", "rare", "default", "often", "always"
frograin = "default", -- "never", "rare", "default", "often", "always"
wildfires = "default", -- "never", "rare", "default", "often", "always"
regrowth = "default", -- "veryslow", "slow", "default", "fast", "veryfast"
touchstone = "default", -- "never", "rare", "default", "often", "always"
boons = "default", -- "never", "rare", "default", "often", "always"
cavelight = "default", -- "veryslow", "slow", "default", "fast", "veryfast"
disease_delay = "default", -- "none", "random", "long", "default", "short"
prefabswaps_start = "default", -- "classic", "default", "highly random"
petrification = "default", -- "none", "few", "default", "many", "max"
-- RESOURCES
flowers = "default", -- "never", "rare", "default", "often", "always"
grass = "default", -- "never", "rare", "default", "often", "always"
sapling = "default", -- "never", "rare", "default", "often", "always"
marshbush = "default", -- "never", "rare", "default", "often", "always"
tumbleweed = "default", -- "never", "rare", "default", "often", "always"
reeds = "default", -- "never", "rare", "default", "often", "always"
trees = "default", -- "never", "rare", "default", "often", "always"
flint = "default", -- "never", "rare", "default", "often", "always"
rock = "default", -- "never", "rare", "default", "often", "always"
rock_ice = "default", -- "never", "rare", "default", "often", "always"
meteorspawner = "default", -- "never", "rare", "default", "often", "always"
meteorshowers = "default", -- "never", "rare", "default", "often", "always"
mushtree = "default", -- "never", "rare", "default", "often", "always"
fern = "default", -- "never", "rare", "default", "often", "always"
flower_cave = "default", -- "never", "rare", "default", "often", "always"
wormlights = "default", -- "never", "rare", "default", "often", "always"
-- UNPREPARED
berrybush = "default", -- "never", "rare", "default", "often", "always"
carrot = "default", -- "never", "rare", "default", "often", "always"
mushroom = "default", -- "never", "rare", "default", "often", "always"
cactus = "default", -- "never", "rare", "default", "often", "always"
banana = "default", -- "never", "rare", "default", "often", "always"
lichen = "default", -- "never", "rare", "default", "often", "always"
-- ANIMALS
rabbits = "default", -- "never", "rare", "default", "often", "always"
moles = "default", -- "never", "rare", "default", "often", "always"
butterfly = "default", -- "never", "rare", "default", "often", "always"
birds = "default", -- "never", "rare", "default", "often", "always"
buzzard = "default", -- "never", "rare", "default", "often", "always"
catcoon = "default", -- "never", "rare", "default", "often", "always"
perd = "default", -- "never", "rare", "default", "often", "always"
pigs = "default", -- "never", "rare", "default", "often", "always"
lightninggoat = "default", -- "never", "rare", "default", "often", "always"
beefalo = "default", -- "never", "rare", "default", "often", "always"
beefaloheat = "default", -- "never", "rare", "default", "often", "always"
hunt = "default", -- "never", "rare", "default", "often", "always"
alternatehunt = "default", -- "never", "rare", "default", "often", "always"
penguins = "default", -- "never", "rare", "default", "often", "always"
cave_ponds = "default", -- "never", "rare", "default", "often", "always"
ponds = "default", -- "never", "rare", "default", "often", "always"
bees = "default", -- "never", "rare", "default", "often", "always"
angrybees = "default", -- "never", "rare", "default", "often", "always"
tallbirds = "default", -- "never", "rare", "default", "often", "always"
slurper = "default", -- "never", "rare", "default", "often", "always"
bunnymen = "default", -- "never", "rare", "default", "often", "always"
slurtles = "default", -- "never", "rare", "default", "often", "always"
rocky = "default", -- "never", "rare", "default", "often", "always"
monkey = "default", -- "never", "rare", "default", "often", "always"
-- MONSTERS
spiders = "default", -- "never", "rare", "default", "often", "always"
cave_spiders = "default", -- "never", "rare", "default", "often", "always"
hounds = "default", -- "never", "rare", "default", "often", "always"
houndmound = "default", -- "never", "rare", "default", "often", "always"
merm = "default", -- "never", "rare", "default", "often", "always"
tentacles = "default", -- "never", "rare", "default", "often", "always"
chess = "default", -- "never", "rare", "default", "often", "always"
lureplants = "default", -- "never", "rare", "default", "often", "always"
walrus = "default", -- "never", "rare", "default", "often", "always"
liefs = "default", -- "never", "rare", "default", "often", "always"
deciduousmonster = "default", -- "never", "rare", "default", "often", "always"
krampus = "default", -- "never", "rare", "default", "often", "always"
bearger = "default", -- "never", "rare", "default", "often", "always"
deerclops = "default", -- "never", "rare", "default", "often", "always"
goosemoose = "default", -- "never", "rare", "default", "often", "always"
dragonfly = "default", -- "never", "rare", "default", "often", "always"
antliontribute = "default", -- "never", "rare", "default", "often", "always"
bats = "default", -- "never", "rare", "default", "often", "always"
fissure = "default", -- "never", "rare", "default", "often", "always"
wormattacks = "default", -- "never", "rare", "default", "often", "always"
worms = "default", -- "never", "rare", "default", "often", "always"
},
}
@@ -0,0 +1,106 @@
return {
override_enabled = true,
preset = "SURVIVAL_TOGETHER", -- "SURVIVAL_TOGETHER", "MOD_MISSING", "SURVIVAL_TOGETHER_CLASSIC", "SURVIVAL_DEFAULT_PLUS", "COMPLETE_DARKNESS", "DST_CAVE", "DST_CAVE_PLUS"
overrides = {
-- MISC
task_set = "default", -- "classic", "default", "cave_default"
start_location = "default", -- "caves", "default", "plus", "darkness"
world_size = "default", -- "small", "medium", "default", "huge"
branching = "default", -- "never", "least", "default", "most"
loop = "default", -- "never", "default", "always"
specialevent = "default", -- "none", "default", "hallowed_nights", "winters_feast", "year_of_the_gobbler"
autumn = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
winter = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
spring = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
summer = "default", -- "noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
season_start = "default", -- "default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random"
day = "default", -- "default", "longday", "longdusk", "longnight", "noday", "nodusk", "nonight", "onlyday", "onlydusk", "onlynight"
weather = "default", -- "never", "rare", "default", "often", "always"
earthquakes = "default", -- "never", "rare", "default", "often", "always"
lightning = "default", -- "never", "rare", "default", "often", "always"
frograin = "default", -- "never", "rare", "default", "often", "always"
wildfires = "default", -- "never", "rare", "default", "often", "always"
regrowth = "default", -- "veryslow", "slow", "default", "fast", "veryfast"
touchstone = "default", -- "never", "rare", "default", "often", "always"
boons = "default", -- "never", "rare", "default", "often", "always"
cavelight = "default", -- "veryslow", "slow", "default", "fast", "veryfast"
disease_delay = "default", -- "none", "random", "long", "default", "short"
prefabswaps_start = "default", -- "classic", "default", "highly random"
petrification = "default", -- "none", "few", "default", "many", "max"
-- RESOURCES
flowers = "default", -- "never", "rare", "default", "often", "always"
grass = "default", -- "never", "rare", "default", "often", "always"
sapling = "default", -- "never", "rare", "default", "often", "always"
marshbush = "default", -- "never", "rare", "default", "often", "always"
tumbleweed = "default", -- "never", "rare", "default", "often", "always"
reeds = "default", -- "never", "rare", "default", "often", "always"
trees = "default", -- "never", "rare", "default", "often", "always"
flint = "default", -- "never", "rare", "default", "often", "always"
rock = "default", -- "never", "rare", "default", "often", "always"
rock_ice = "default", -- "never", "rare", "default", "often", "always"
meteorspawner = "default", -- "never", "rare", "default", "often", "always"
meteorshowers = "default", -- "never", "rare", "default", "often", "always"
mushtree = "default", -- "never", "rare", "default", "often", "always"
fern = "default", -- "never", "rare", "default", "often", "always"
flower_cave = "default", -- "never", "rare", "default", "often", "always"
wormlights = "default", -- "never", "rare", "default", "often", "always"
-- UNPREPARED
berrybush = "default", -- "never", "rare", "default", "often", "always"
carrot = "default", -- "never", "rare", "default", "often", "always"
mushroom = "default", -- "never", "rare", "default", "often", "always"
cactus = "default", -- "never", "rare", "default", "often", "always"
banana = "default", -- "never", "rare", "default", "often", "always"
lichen = "default", -- "never", "rare", "default", "often", "always"
-- ANIMALS
rabbits = "default", -- "never", "rare", "default", "often", "always"
moles = "default", -- "never", "rare", "default", "often", "always"
butterfly = "default", -- "never", "rare", "default", "often", "always"
birds = "default", -- "never", "rare", "default", "often", "always"
buzzard = "default", -- "never", "rare", "default", "often", "always"
catcoon = "default", -- "never", "rare", "default", "often", "always"
perd = "default", -- "never", "rare", "default", "often", "always"
pigs = "default", -- "never", "rare", "default", "often", "always"
lightninggoat = "default", -- "never", "rare", "default", "often", "always"
beefalo = "default", -- "never", "rare", "default", "often", "always"
beefaloheat = "default", -- "never", "rare", "default", "often", "always"
hunt = "default", -- "never", "rare", "default", "often", "always"
alternatehunt = "default", -- "never", "rare", "default", "often", "always"
penguins = "default", -- "never", "rare", "default", "often", "always"
cave_ponds = "default", -- "never", "rare", "default", "often", "always"
ponds = "default", -- "never", "rare", "default", "often", "always"
bees = "default", -- "never", "rare", "default", "often", "always"
angrybees = "default", -- "never", "rare", "default", "often", "always"
tallbirds = "default", -- "never", "rare", "default", "often", "always"
slurper = "default", -- "never", "rare", "default", "often", "always"
bunnymen = "default", -- "never", "rare", "default", "often", "always"
slurtles = "default", -- "never", "rare", "default", "often", "always"
rocky = "default", -- "never", "rare", "default", "often", "always"
monkey = "default", -- "never", "rare", "default", "often", "always"
-- MONSTERS
spiders = "default", -- "never", "rare", "default", "often", "always"
cave_spiders = "default", -- "never", "rare", "default", "often", "always"
hounds = "default", -- "never", "rare", "default", "often", "always"
houndmound = "default", -- "never", "rare", "default", "often", "always"
merm = "default", -- "never", "rare", "default", "often", "always"
tentacles = "default", -- "never", "rare", "default", "often", "always"
chess = "default", -- "never", "rare", "default", "often", "always"
lureplants = "default", -- "never", "rare", "default", "often", "always"
walrus = "default", -- "never", "rare", "default", "often", "always"
liefs = "default", -- "never", "rare", "default", "often", "always"
deciduousmonster = "default", -- "never", "rare", "default", "often", "always"
krampus = "default", -- "never", "rare", "default", "often", "always"
bearger = "default", -- "never", "rare", "default", "often", "always"
deerclops = "default", -- "never", "rare", "default", "often", "always"
goosemoose = "default", -- "never", "rare", "default", "often", "always"
dragonfly = "default", -- "never", "rare", "default", "often", "always"
antliontribute = "default", -- "never", "rare", "default", "often", "always"
bats = "default", -- "never", "rare", "default", "often", "always"
fissure = "default", -- "never", "rare", "default", "often", "always"
wormattacks = "default", -- "never", "rare", "default", "often", "always"
worms = "default", -- "never", "rare", "default", "often", "always"
},
}
@@ -5,7 +5,7 @@
}, },
"exported_at": "2020-04-16T20:41:27-04:00", "exported_at": "2020-04-16T20:41:27-04:00",
"name": "Hurtworld", "name": "Hurtworld",
"author": "brycea@rapidnetworks.org", "author": "brycea@terrahost.cloud",
"description": "Hurtworld is a hardcore multiplayer survival FPS with a focus on deep survival progression that doesn't become trivial once you establish some basic needs. Built for hardcore gamers, Hurtworld aims to punish.", "description": "Hurtworld is a hardcore multiplayer survival FPS with a focus on deep survival progression that doesn't become trivial once you establish some basic needs. Built for hardcore gamers, Hurtworld aims to punish.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source",
"startup": ".\/Hurtworld.x86_64 -batchmode -nographics -exec \"host {{SERVER_PORT}};queryport {{QUERY_PORT}};maxplayers {{MAX_PLAYERS}};servername {{HOSTNAME}};creativemode ${CREATIVE_MODE};${ADMINS}\" -logfile $1", "startup": ".\/Hurtworld.x86_64 -batchmode -nographics -exec \"host {{SERVER_PORT}};queryport {{QUERY_PORT}};maxplayers {{MAX_PLAYERS}};servername {{HOSTNAME}};creativemode ${CREATIVE_MODE};${ADMINS}\" -logfile $1",
@@ -0,0 +1,23 @@
# Insurgency: Sandstorm
Steam Description
Insurgency: Sandstorm is a team-based, tactical FPS based on lethal close quarters combat and objective-oriented multiplayer gameplay. Experience the intensity of modern combat where skill is rewarded, and teamwork wins the fight.
## GSLT Authentication
In order for your server to be able to authenticate with the stats server, you must authenticate your server through using a Steam GSLT (Game Server Login Token).
To start your server with GSLT authentication add -GSLTToken=xxxxxxxxxxxxxxx to the server's command line where "xxxxxxxxxxxxxxx" is the token displayed on the Steam Game Server Account page.
See the following for additional configurations - https://support.newworldinteractive.com/support/solutions/articles/47001115510-server-admin-guide
## Recommended server settings
### Minimum Storage
This server requires about 5632M to install.
### Minimum RAM
This server requires about 1024M to run with no players.
## Server Ports
| Port | default |
|-------|---------|
| Game | 27102 |
| Query | 27131 |
@@ -0,0 +1,81 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-06-27T05:17:21-04:00",
"name": "Insurgency: Sandstorm",
"author": "brycea@terrahost.cloud",
"description": "Insurgency: Sandstorm is a team-based, tactical FPS based on lethal close quarters combat and objective-oriented multiplayer gameplay. Experience the intensity of modern combat where skill is rewarded, and teamwork wins the fight.",
"image": "quay.io\/pterodactyl\/core:source",
"startup": "\/home\/container\/Insurgency\/Binaries\/Linux\/InsurgencyServer-Linux-Shipping {{MAP_NAME}}?Scenario={{SCENARIO}}?MaxPlayers={{MAX_PLAYERS}} -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -log -hostname=\"{{HOSTNAME}}\"",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"LogGameState: Match State Changed from LoadingAssets to WaitingToStart\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n## install required packages to install insurgency: sandstorm\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n## install steamcmd\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install insurgency: sandstorm\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\nchmod +x \/mnt\/server\/Insurgency\/Binaries\/Linux\/InsurgencyServer-Linux-Shipping",
"container": "ubuntu:20.04",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "App ID",
"description": "The ID corresponding to the game to download and run. Leave blank to avoid auto update.",
"env_variable": "SRCDS_APPID",
"default_value": "581330",
"user_viewable": 1,
"user_editable": 0,
"rules": "nullable|numeric"
},
{
"name": "Server Name",
"description": "The name to appear in the server in the server list.",
"env_variable": "HOSTNAME",
"default_value": "My Insurgency Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
},
{
"name": "Query Port",
"description": "Query port for your Insurgency server.",
"env_variable": "QUERY_PORT",
"default_value": "27131",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|numeric"
},
{
"name": "Max Players",
"description": "Sets the maximum number of players.",
"env_variable": "MAXPLAYERS",
"default_value": "28",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|numeric"
},
{
"name": "Default Map",
"description": "Default map to run when starting the server. Scenario must be available with the provided map.",
"env_variable": "MAP_NAME",
"default_value": "Canyon",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Scenario Name",
"description": "By default, a server will cycle through all Versus (PVP) scenarios available.",
"env_variable": "SCENARIO",
"default_value": "Scenario_Crossing_Checkpoint_Insurgents",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
}
]
}
@@ -0,0 +1,13 @@
# Killing Floor 2
### From their [Site](https://killingfloor2.com/)
In KILLING FLOOR 2, players descend into continental Europe after it has been overrun by horrific, murderous clones called Zeds that were created by the corporation Horzine. The Zed outbreak caused by Horzine Biotechs failed experiments has quickly spread with unstoppable momentum, paralyzing the European Union. Only a month ago, the first Zed outbreak from the original KILLING FLOOR ripped through London; now the specimen clones are everywhere.
### Server Ports
Ports required to run the server in a table format.
| Port | default |
|------------|---------|
| Game Port | 7777 |
| Query Port | 27015 |
|Extra Ports |---------|
| Web Admin | 8080 |
@@ -0,0 +1,135 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-07-12T20:06:39-04:00",
"name": "Killing Floor 2",
"author": "parker@parkervcp.com",
"description": "n KILLING FLOOR 2, players descend into continental Europe after it has been overrun by horrific, murderous clones called Zeds that were created by the corporation Horzine. The Zed outbreak caused by Horzine Biotech\u2019s failed experiments has quickly spread with unstoppable momentum, paralyzing the European Union. Only a month ago, the first Zed outbreak from the original KILLING FLOOR ripped through London; now the specimen clones are everywhere.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_source",
"startup": "\/home\/container\/Binaries\/Win64\/KFGameSteamServer.bin.x86_64 {{MAP_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?AdminPassword={{ADMIN_PASS}}?Difficulty={{DIFFICULTY}}$( [ \"$WEB_ADMIN\" == \"true\" ] || printf %s '??WebAdminPort={{WEB_ADMIN_PORT}}' )",
"config": {
"files": "{\r\n \"KFGame\/Config\/KFWeb.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"IpDrv.WebServer.IpDrv.WebServer\": \"{{server.build.env.WEB_ADMIN}}\",\r\n \"IpDrv.WebServer.IpDrv.ListenPort\": \"{{server.build.env.WEB_ADMIN_PORT}}\"\r\n }\r\n },\r\n \"KFGame\/Config\/LinuxServer-KFGame.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Engine.AccessControl.AdminPassword\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"Engine.GameReplicationInfo.ServerName\": \"{{server.build.env.SERVER_NAME}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"DevOnline: Playfab server registered with lobby ID \"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [ \"${WINDOWS_INSTALL}\" == \"1\" ] || printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Steam Username",
"description": "A steam username to use to install the server.\r\n\r\nOnly needed for games that need a user that owns the server",
"env_variable": "STEAM_USER",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Steam Password",
"description": "Password for the Steam account to install a server.",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Steam Auth",
"description": "Will most likely time out before it gets used.",
"env_variable": "STEAM_AUTH",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string|max:6"
},
{
"name": "Steam Server App ID",
"description": "The App ID for the Server",
"env_variable": "SRCDS_APPID",
"default_value": "232130",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string"
},
{
"name": "Extra Flags",
"description": "Only needed for specific situations.",
"env_variable": "EXTRA_FLAGS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Map Name",
"description": "The map to load when the server starts\r\n\r\ndefault - 'kf-bioticslab'",
"env_variable": "MAP_NAME",
"default_value": "kf-bioticslab",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Query Port",
"description": "The port steam will use to query the server.",
"env_variable": "QUERY_PORT",
"default_value": "27015",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|numeric|max:65535"
},
{
"name": "Enable WebAdmin (beta)",
"description": "",
"env_variable": "WEB_ADMIN",
"default_value": "false",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|in:true,false"
},
{
"name": "Admin Password",
"description": "An admin password for the server.",
"env_variable": "ADMIN_PASS",
"default_value": "PleaseChangeMe",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Server Name",
"description": "This is the displayed server name to all players in the server and the server browser",
"env_variable": "SERVER_NAME",
"default_value": "A Pterodactyl Hosted Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Server Difficulty",
"description": "0 = Normal, 1 = Hard, 2 = Suicidal, 3 = Hell on Earth",
"env_variable": "DIFFICULTY",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|numeric|max:3"
},
{
"name": "Web Admin Port",
"description": "The port the webadmin panel should use. This is a beta feature.",
"env_variable": "WEB_ADMIN_PORT",
"default_value": "8089",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|max:20"
}
]
}
+19
View File
@@ -0,0 +1,19 @@
# Killing Floor 2
Steam Description
In KILLING FLOOR 2, players descend into continental Europe where the outbreak caused by Horzine Biotechs failed experiment has quickly spread and gained unstoppable momentum, essentially paralyzing the European Union— Just one month after the events in the original KILLING FLOOR, the specimen clones are everywhere and civilization is in disarray; communications have failed, governments have collapsed, and military forces have been systematically eradicated. The people of Europe know survival and self-preservation too well and lucky survivors have gone into hiding.
Not all have given up hope though... A group of civilians and mercenaries have banded together to combat the outbreak and established privately funded operation bases across Europe. Upon tracking specimen clone outbreaks, players will descend into zed-laden hot zones and exterminate them.
### Server Ports
Killing Floor 2 requires 2 ports with an optional 1 for web management
game port (default 7777)
query port (default 27015)
web admin (default 8080)
| Port | default |
|---------|---------------|
| Game | 7777 |
| Query | 27015 |
| WebAdmin| 8080 |
@@ -0,0 +1,135 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-08-14T22:54:02-04:00",
"name": "Killing Floor 2",
"author": "trey@chazx.cc",
"description": "In KILLING FLOOR 2, players descend into continental Europe after it has been overrun by horrific, murderous clones called Zeds that were created by the corporation Horzine. The Zed outbreak caused by Horzine Biotech\u2019s failed experiments has quickly spread with unstoppable momentum, paralyzing the European Union. Only a month ago, the first Zed outbreak from the original KILLING FLOOR ripped through London; now the specimen clones are everywhere.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_source",
"startup": "\/home\/container\/Binaries\/Win64\/KFGameSteamServer.bin.x86_64 {{MAP_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?AdminPassword={{ADMIN_PASS}}?Difficulty={{DIFFICULTY}}$( [ \"$WEB_ADMIN\" == \"true\" ] || printf %s '??WebAdminPort={{WEB_ADMIN_PORT}}' )",
"config": {
"files": "{\r\n \"KFGame\/Config\/KFWeb.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"IpDrv.WebServer.IpDrv.WebServer\": \"{{server.build.env.WEB_ADMIN}}\",\r\n \"IpDrv.WebServer.IpDrv.ListenPort\": \"{{server.build.env.WEB_ADMIN_PORT}}\"\r\n }\r\n },\r\n \"KFGame\/Config\/LinuxServer-KFGame.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Engine.AccessControl.AdminPassword\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"Engine.GameReplicationInfo.ServerName\": \"{{server.build.env.SERVER_NAME}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"DevOnline: Playfab server registered with lobby ID \"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [ \"${WINDOWS_INSTALL}\" == \"1\" ] || printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Steam Username",
"description": "A steam username to use to install the server.\r\n\r\nOnly needed for games that need a user that owns the server",
"env_variable": "STEAM_USER",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Steam Password",
"description": "Password for the Steam account to install a server.",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Steam Auth",
"description": "Will most likely time out before it gets used.",
"env_variable": "STEAM_AUTH",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string|max:6"
},
{
"name": "Steam Server App ID",
"description": "The App ID for the Server",
"env_variable": "SRCDS_APPID",
"default_value": "232130",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string"
},
{
"name": "Extra Flags",
"description": "Only needed for specific situations.",
"env_variable": "EXTRA_FLAGS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Map Name",
"description": "The map to load when the server starts\r\n\r\ndefault - 'kf-bioticslab'",
"env_variable": "MAP_NAME",
"default_value": "kf-bioticslab",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Query Port",
"description": "The port steam will use to query the server.",
"env_variable": "QUERY_PORT",
"default_value": "27015",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|numeric|max:65535"
},
{
"name": "Enable WebAdmin (beta)",
"description": "",
"env_variable": "WEB_ADMIN",
"default_value": "false",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|in:true,false"
},
{
"name": "Admin Password",
"description": "An admin password for the server.",
"env_variable": "ADMIN_PASS",
"default_value": "PleaseChangeMe",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Server Name",
"description": "This is the displayed server name to all players in the server and the server browser",
"env_variable": "SERVER_NAME",
"default_value": "A Pterodactyl Hosted Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Server Difficulty",
"description": "0 = Normal, 1 = Hard, 2 = Suicidal, 3 = Hell on Earth",
"env_variable": "DIFFICULTY",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|numeric|max:3"
},
{
"name": "Web Admin Port",
"description": "The port the webadmin panel should use. This is a beta feature.",
"env_variable": "WEB_ADMIN_PORT",
"default_value": "8081",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|max:20"
}
]
}
@@ -0,0 +1,23 @@
# Project Zomboid
Project Zomboid is the ultimate in zombie survival. Alone or in MP: you loot, build, craft, fight, farm and fish in a struggle to survive. A hardcore RPG skillset, a vast map, a massively customisable sandbox and a cute tutorial raccoon await the unwary. So how will you die?
## Server Ports
Project Zomboid requires one port for Steam and an additional **one port per player**. Additional ports are allocated as they connect.
For example, when configured with a base allocation of 27016:
```
Zomboid Steam Server started, ports 27016 and 27016 must be open on the router
Connected new client kubi ID # 0 and assigned DL port 27017
Connected new client kubi2 ID # 1 and assigned DL port 27018
```
If you're experiencing issues with players connecting it's likely because you have not allocated enough ports. These ports **must be in order** following the Steam port.
| Port | default |
|-------------|---------|
| Game | 8766 |
| Player1 | 8767 |
| Player2 | 8768 |
| ... | 8769 |
@@ -0,0 +1,72 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-06-06T11:23:23-07:00",
"name": "Project Zomboid",
"author": "iamkubi@gmail.com",
"description": "Project Zomboid is an open world survival horror video game in alpha stage development by British and Canadian independent developer, The Indie Stone. The game is set in a post apocalyptic, zombie infested world where the player is challenged to survive for as long as possible before inevitably dying.",
"image": "quay.io\/pterodactyl\/core:source",
"startup": "\/home\/container\/start-server.sh -port {{SERVER_PORT}} -steamport1 {{STEAM_PORT}} -servername \\\"{{SERVER_NAME}}\\\" -adminusername {{ADMIN_USER}} -adminpassword \"{{ADMIN_PASSWORD}}\"",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"SERVER STARTED\",\r\n \"userInteraction\": []\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "apt update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 380870 +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Name",
"description": "Name of the server",
"env_variable": "SERVER_NAME",
"default_value": "Project Zomboid Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
},
{
"name": "Admin Username",
"description": "Username for the admin account",
"env_variable": "ADMIN_USER",
"default_value": "admin",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "Admin Password",
"description": "Password for the admin account",
"env_variable": "ADMIN_PASSWORD",
"default_value": "password",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:32"
},
{
"name": "SteamPort",
"description": "Sets the SteamPort1 option",
"env_variable": "STEAM_PORT",
"default_value": "8766",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|max:20"
},
{
"name": "Max Players",
"description": "Maximum players to allow",
"env_variable": "MAX_PLAYERS",
"default_value": "10",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|max:20"
}
]
}
@@ -0,0 +1,29 @@
### Rust Autowipe
The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.
Adds variables to wipe files based on a list you set.
The variable `REGEN_SERVER` was added, default 0 set to 1 to generate a random seed and remove old files
Files listed in the `REMOVE_FILES` variabe, space separated, will be removed.
### Minimum RAM warning
The server requires at least 4096MB to run properly.
This is mostly needed for the startup only, once it is running (depending on your world size) it should consume less.
### Modding warning
Due to Oxide/uMod not supporting the staging branch, you will not be able to Mod this server.
Wulf (Community Admin on Oxidemod/uMod):
"We only release builds for the release/public branch of Rust, so if you'd like to use it on any other branch, you'd need to manually patch it yourself using our patcher tool founder under the Snapshots repo. To switch a different Rust branch, just use the -beta tag with SteamCMD and the branch name."
### Server Ports
Ports required to run the server.
| Port | default |
|---------|---------|
| Game and Quary | 28015 UDP |
| RCON | 28016 TCP |
### Information about server updates can be found [here](https://steamdb.info/app/258550/depots/?branch=staging)
@@ -0,0 +1,162 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-06-29T18:44:15-04:00",
"name": "Rust Autowipe",
"author": "support@pterodactyl.io",
"description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.",
"image": "quay.io\/pterodactyl\/core:rust",
"startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"$( if [ -f seed.txt ] && [[ ${WORLD_SEED} == \"0\" ]]; then printf %s $(cat seed.txt); else printf %s '${WORLD_SEED}'; fi )\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}\"",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Server startup complete\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "quit"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\nSRCDS_APPID=258550\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\nif [ ${REGEN_SERVER} == \"1\" ]; then\r\n cd \/mnt\/server\/\r\n rm -rf ${REMOVE_FILES}\r\nfi\r\n\r\nif [ $WORLD_SEED == \"0\" ]; then\r\n if [ ! -f \/mnt\/server\/seed.txt ]; then\r\n rm -sf \/mnt\/server\/seed.txt\r\n fi\r\n \r\n cat \/dev\/urandom | tr -dc '1-9' | fold -w 5 | head -n 1 > \/mnt\/server\/seed.txt\r\nfi",
"container": "ubuntu:18.04",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Name",
"description": "The name of your server in the public server list.",
"env_variable": "HOSTNAME",
"default_value": "A Rust Server",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:40"
},
{
"name": "OxideMod",
"description": "Set whether you want the server to use and auto update OxideMod or not. Valid options are \"1\" for true and \"0\" for false.",
"env_variable": "OXIDE",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
},
{
"name": "Level",
"description": "The world file for Rust to use.",
"env_variable": "LEVEL",
"default_value": "Procedural Map",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "Description",
"description": "The description under your server title. Commonly used for rules & info. Use \\n for newlines.",
"env_variable": "DESCRIPTION",
"default_value": "Powered by Pterodactyl",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "URL",
"description": "The URL for your server. This is what comes up when clicking the \"Visit Website\" button.",
"env_variable": "SERVER_URL",
"default_value": "http:\/\/pterodactyl.io",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|url"
},
{
"name": "World Size",
"description": "The world size for a procedural map.",
"env_variable": "WORLD_SIZE",
"default_value": "3000",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|integer"
},
{
"name": "World Seed",
"description": "The seed for a procedural map.",
"env_variable": "WORLD_SEED",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
},
{
"name": "Max Players",
"description": "The maximum amount of players allowed in the server at once.",
"env_variable": "MAX_PLAYERS",
"default_value": "40",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|integer"
},
{
"name": "Server Image",
"description": "The header image for the top of your server listing.",
"env_variable": "SERVER_IMG",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|url"
},
{
"name": "RCON Port",
"description": "Port for RCON connections.",
"env_variable": "RCON_PORT",
"default_value": "28016",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|integer"
},
{
"name": "RCON Password",
"description": "RCON access password.",
"env_variable": "RCON_PASS",
"default_value": "CHANGEME",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
},
{
"name": "Save Interval",
"description": "Sets the server\u2019s auto-save interval in seconds.",
"env_variable": "SAVEINTERVAL",
"default_value": "60",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|integer"
},
{
"name": "Additional Arguments",
"description": "Add additional startup parameters to the server.",
"env_variable": "ADDITIONAL_ARGS",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string"
},
{
"name": "Regen Server",
"description": "If the server should have its files removed and regenerate the server seed.",
"env_variable": "REGEN_SERVER",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"
},
{
"name": "Files to remove",
"description": "A space separated list of files to remove when regenerating the server.",
"env_variable": "REMOVE_FILES",
"default_value": "server\/rust\/player.deaths.*.db server\/rust\/player.identities.*.db server\/rust\/player.states.*.db server\/rust\/player.tokens.db proceduralmap.*.*.*.map server\/rust\/proceduralmap.*.*.*.sav oxide\/data\/Kits_Data.json oxide\/data\/NTeleportationHome.json oxide\/data\/ServerRewards\/player_data.json oxide\/data\/PTTracker\/playtime_data.json",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
}
]
}
+1 -1
View File
@@ -5,7 +5,7 @@
}, },
"exported_at": "2019-10-08T08:47:08-04:00", "exported_at": "2019-10-08T08:47:08-04:00",
"name": "Squad", "name": "Squad",
"author": "brycea@rapidnetworks.org", "author": "brycea@terrahost.cloud",
"description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.", "description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.",
"image": "quay.io\/pterodactyl\/core:source", "image": "quay.io\/pterodactyl\/core:source",
"startup": "\/home\/container\/SquadGame\/Binaries\/Linux\/SquadGameServer SquadGame Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", "startup": "\/home\/container\/SquadGame\/Binaries\/Linux\/SquadGameServer SquadGame Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}",
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-02-24T18:48:49+01:00", "exported_at": "2020-08-04T20:01:04-07:00",
"name": "Stationeers", "name": "Stationeers",
"author": "sysadmin@whiteshield.ch", "author": "sysadmin@whiteshield.ch",
"description": "Stationeers Server\r\n\r\ndefault.ini will be created once you start game. Command parameters override default.ini parameters\r\nDon't forget to change the RCON Password !!\r\n\r\nRemote Administrator:\r\nYou can send commands on web browser.\r\nLink : http:\/\/[dedicated server address]:[GamePort]\r\n\r\nDedicated Server Wiki ==> https:\/\/stationeers-wiki.com\/Dedicated_Server_Guide\r\n\r\nStopping the server don't save the game, for manual save use the Remote Administrator.", "description": "Stationeers Server\r\n\r\ndefault.ini will be created once you start game. Command parameters override default.ini parameters\r\nDon't forget to change the RCON Password !!\r\n\r\nRemote Administrator:\r\nYou can send commands on web browser.\r\nLink : http:\/\/[dedicated server address]:[GamePort]\r\n\r\nDedicated Server Wiki ==> https:\/\/stationeers-wiki.com\/Dedicated_Server_Guide\r\n\r\nStopping the server don't save the game, for manual save use the Remote Administrator.",
@@ -17,8 +17,8 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Stationeers: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\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\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\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 600760 -beta public +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# Stationeers: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\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.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} -beta public +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so",
"container": "ubuntu:16.04", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
@@ -76,6 +76,15 @@
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 1,
"rules": "required|integer" "rules": "required|integer"
},
{
"name": "Steam App ID",
"description": "Required for automatic updates.",
"env_variable": "SRCDS_APPID",
"default_value": "600760",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string|max:20"
} }
] ]
} }
@@ -1,19 +0,0 @@
# Unturned - RocketMod
Steam Description
You're one of the few not yet turned zombie. Keeping it that way will be a challenge.
- Go in guns blazing and attract the attention of everything, living and dead.
- Take a subtle approach sneaking around and making use of distractions.
- Confront and learn to counter special abilities ranging from invisibility to fire breathing to lightning attacks.
Unturned 3 implementation of the RocketMod — .NET Game Server Plugin Framework
### Server Ports
Rocketmod requires 2 ports to run properly.
game port (default 8907)
game +1 (default 8908)
| Port | default |
|---------|---------|
| Game | 8907 |
| Game +1 | 8908 |
@@ -1,54 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-04-27T21:30:05+00:00",
"name": "RocketMod",
"author": "isaac@isaacs.site",
"description": "The RocketMod server mod for Unturned.",
"image": "registry.gitlab.com\/tenten8401\/pterodactyl-unturned",
"startup": "mono RocketLauncher.exe unturned",
"config": {
"files": "{\r\n \"Servers\/unturned\/Server\/Commands.dat\": {\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\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "shutdown"
},
"scripts": {
"installation": {
"script": "apt update\r\napt -y --no-install-recommends install curl lib32gcc1 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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +@sSteamCmdForcePlatformBitness 32 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 304930 +quit\r\n\r\nmkdir -p \/mnt\/server\/Servers\/unturned\/Server\r\necho \"Port 27015\" > \/mnt\/server\/Servers\/unturned\/Server\/Commands.dat\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so",
"container": "ubuntu:16.04",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Steam User",
"description": "A Steam username with Unturned on the account.",
"env_variable": "STEAM_USER",
"default_value": "anonymous",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string"
},
{
"name": "Steam Password",
"description": "Steam User Password",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Steam Auth Code",
"description": "Steam Auth Code only when you're using Steam Auth",
"env_variable": "STEAM_AUTH",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
}
]
}
@@ -3,12 +3,12 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2020-01-18T18:06:35-05:00", "exported_at": "2020-07-12T22:04:47-04:00",
"name": "Unturned", "name": "Unturned",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "The RocketMod server mod for Unturned.", "description": "Vanilla Unturned with the included RockerMod.",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source",
"startup": "wget https:\/\/github.com\/RocketMod\/Rocket.Unturned\/releases\/download\/4.9.3.0\/Rocket.Unturned.zip && unzip -o Rocket.Unturned.zip && .\/Unturned_Headless.x86_64 -batchmode -nographics -bind 0.0.0.0 -port {{SERVER_PORT}}", "startup": ".\/Unturned_Headless.x86_64 -batchmode -nographics -bind 0.0.0.0 -port {{SERVER_PORT}}",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}", "startup": "{\r\n \"done\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}",
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\nDEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.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 \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Specific to Unturned\r\ncp -v linux64\/steamclient.so \/mnt\/server\/Unturned_Headless_Data\/Plugins\/x86_64\/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 'debian:buster-slim'\r\n\r\nDEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.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 \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Specific to Unturned\r\ncd \/mnt\/server\/\r\nln -s ..\/..\/..\/steamcmd\/linux64\/steamclient.so Unturned_Headless_Data\/Plugins\/x86_64\/steamclient.so\r\nln -s ..\/Extras\/Rocket.Unturned\/ Modules\/",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
+1 -1
View File
@@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n VER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/paper | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_PAPER_VERSION=`curl -s https:\/\/papermc.io\/api\/v1\/paper | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest paper version\"\r\n MINECRAFT_VERSION=${LATEST_PAPER_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\necho -e \"Downloading MC server.properties\"\r\ncurl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties", "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n VER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/paper | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_PAPER_VERSION=`curl -s https:\/\/papermc.io\/api\/v1\/paper | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest paper version\"\r\n MINECRAFT_VERSION=${LATEST_PAPER_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/paper\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\necho -e \"Downloading MC server.properties\"\r\ncurl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_java\/server.properties",
"container": "alpine:3.9", "container": "alpine:3.9",
"entrypoint": "ash" "entrypoint": "ash"
} }
+13 -3
View File
@@ -1,5 +1,15 @@
# Source Based Games ### Rust
The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.
### Minimum RAM warning
The server requires at least 4096MB to run properly.
This is mostly needed for the startup only, once it is running (depending on your world size) it should consume less.
### Server Ports ### Server Ports
Many of these servers will require the steam query ports to be open for the server. Ports required to run the server.
The default steam query port is 27015
| Port | default |
|---------|---------|
| Game and Query | 28015 UDP |
| RCON | 28016 TCP |
| Rust+ App | 28082 TCP |
+18 -9
View File
@@ -3,12 +3,12 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-03-25T10:30:58-04:00", "exported_at": "2020-06-03T20:47:00-07:00",
"name": "Rust", "name": "Rust",
"author": "support@pterodactyl.io", "author": "support@pterodactyl.io",
"description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.",
"image": "quay.io\/pterodactyl\/core:rust", "image": "quay.io\/pterodactyl\/core:rust",
"startup": ".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"{{WORLD_SEED}}\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}", "startup": ".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"{{WORLD_SEED}}\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} +app.port {{APP_PORT}} {{ADDITIONAL_ARGS}}",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"Server startup complete\",\r\n \"userInteraction\": []\r\n}", "startup": "{\r\n \"done\": \"Server startup complete\",\r\n \"userInteraction\": []\r\n}",
@@ -17,8 +17,8 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "apt update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\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 258550 +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so", "script": "apt update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 258550 +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so",
"container": "ubuntu:16.04", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
@@ -122,6 +122,15 @@
"user_editable": 1, "user_editable": 1,
"rules": "required|string|max:64" "rules": "required|string|max:64"
}, },
{
"name": "Save Interval",
"description": "Sets the server\u2019s auto-save interval in seconds.",
"env_variable": "SAVEINTERVAL",
"default_value": "60",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|integer"
},
{ {
"name": "Additional Arguments", "name": "Additional Arguments",
"description": "Add additional startup parameters to the server.", "description": "Add additional startup parameters to the server.",
@@ -132,12 +141,12 @@
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
"name": "Save Interval", "name": "App Port",
"description": "Sets the server\u2019s auto-save interval in seconds.", "description": "Port for the Rust+ App. -1 for disabled.",
"env_variable": "SAVEINTERVAL", "env_variable": "APP_PORT",
"default_value": "60", "default_value": "28082",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 1, "user_editable": 0,
"rules": "required|integer" "rules": "required|integer"
} }
] ]
+4 -22
View File
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2019-12-08T11:10:18-05:00", "exported_at": "2020-06-25T09:46:46-04:00",
"name": "tModloader", "name": "tModloader",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure \"intricacies\" of Terraria's source code. It is made to work for Terraria 1.3+.", "description": "tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure \"intricacies\" of Terraria's source code. It is made to work for Terraria 1.3+.",
@@ -17,9 +17,9 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napk add --no-cache curl wget jq file unzip\r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\")\r\n\r\nif [ -z \"$VERSION\" ] || [ \"$VERSION\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i linux)\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$VERSION\" == \"$VERSION_CHECK\" ]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i linux)\r\n fi\r\nfi\r\n\r\n## clean terraria version\r\nCLEAN_VERSION=$(echo ${TERRARIA_VERSION} | sed 's\/\\.\/\/g')\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: wget $DOWNLOAD_LINK\"\r\nwget $DOWNLOAD_LINK\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\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\necho -e \"Downloading terraria server files\"\r\nwget http:\/\/terraria.org\/server\/terraria-server-${CLEAN_VERSION}.zip\r\n\r\necho -e \"Unpacking server files\"\r\nunzip terraria-server-$(echo ${CLEAN_VERSION} | sed 's\/\\.\/\/g').zip\r\ncp -R ${CLEAN_VERSION}\/Linux\/* .\/\r\n\r\nchmod +x TerrariaServer.bin.x86_64\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf ${CLEAN_VERSION}", "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nGITHUB_PACKAGE=tModLoader\/tModLoader\r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\")\r\n\r\nif [ -z \"$VERSION\" ] || [ \"$VERSION\" == \"latest\" ]; then\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i linux | grep -i zip)\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$VERSION\" == \"$VERSION_CHECK\" ]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i linux | grep -i zip)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\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\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2 \r\nfi\r\n\r\nchmod +x tModLoaderServer.bin.x86_64\r\nchmod +x tModLoaderServer\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf terraria-server-${CLEAN_VERSION}.zip rm ${DOWNLOAD_LINK##*\/}",
"container": "alpine:3.10", "container": "debian:buster-slim",
"entrypoint": "ash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
@@ -32,15 +32,6 @@
"user_editable": 1, "user_editable": 1,
"rules": "required|string|max:20" "rules": "required|string|max:20"
}, },
{
"name": "Terraria version",
"description": "the version of Terraria that is to be used.\r\n\r\nYou can use the full version number or the file number. (ex. 1.3.5.3 or 1353)\r\n\r\nGet version numbers here - https:\/\/terraria.gamepedia.com\/Server#Downloads",
"env_variable": "TERRARIA_VERSION",
"default_value": "1.3.5.3",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{ {
"name": "World Name", "name": "World Name",
"description": "The name for the world file.", "description": "The name for the world file.",
@@ -85,15 +76,6 @@
"user_viewable": 0, "user_viewable": 0,
"user_editable": 0, "user_editable": 0,
"rules": "string|nullable" "rules": "string|nullable"
},
{
"name": "GitHub Package",
"description": "This is to make automating this kind of thing easier.\r\n\r\nDo not edit if you don't know what you are doing.",
"env_variable": "GITHUB_PACKAGE",
"default_value": "tModLoader\/tModLoader",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string"
} }
] ]
} }
+8 -8
View File
@@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2018-02-16T01:48:02-05:00", "exported_at": "2020-05-18T21:16:19-04:00",
"name": "tshock", "name": "tshock",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "The t-shock modded terraria server.\r\n\r\nhttps:\/\/tshock.co\/", "description": "The t-shock modded terraria server.\r\n\r\nhttps:\/\/tshock.co\/",
@@ -13,13 +13,13 @@
"files": "{\r\n \"tshock\/config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {}\r\n }\r\n}", "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}", "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}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"ServerLog.txt\"\r\n}",
"stop": "stop" "stop": "exit"
}, },
"scripts": { "scripts": {
"installation": { "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", "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl wget jq file unzip\r\n\r\nGITHUB_PACKAGE=Pryaxis\/TShock\r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\")\r\n\r\nif [ -z \"$TSHOCK_VERSION\" ] || [ \"$TSHOCK_VERSION\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url)\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$TSHOCK_VERSION\" == \"$VERSION_CHECK\" ]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url')\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: wget $DOWNLOAD_LINK\"\r\nwget $DOWNLOAD_LINK\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\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\necho -e \"install complete\"",
"container": "alpine:3.9", "container": "debian:buster-slim",
"entrypoint": "ash" "entrypoint": "\/bin\/bash"
} }
}, },
"variables": [ "variables": [
@@ -52,12 +52,12 @@
}, },
{ {
"name": "Tshock Version", "name": "Tshock Version",
"description": "The version on tshock that will be installed.", "description": "The version on tshock that will be installed. default is latest non-pre-release",
"env_variable": "TSHOCK_VERSION", "env_variable": "TSHOCK_VERSION",
"default_value": "4.3.26", "default_value": "latest",
"user_viewable": 1, "user_viewable": 1,
"user_editable": 0, "user_editable": 0,
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }
+15
View File
@@ -0,0 +1,15 @@
# Terraria
Vanilla Terraria egg with support for Journey's End. Currently up to 1.4.0.2 is supported, however future patches will require updates to the install script.
## Minimum RAM warning
You may want to assign a minimum of 768 mb of RAM to a server as it will use around 650 mb to generate the world on the first start.
## Required Server Ports
Terraria only requires a single port to run. The default is 7777
| Port | default |
|---------|---------|
| Game | 7777 |
#### Plugins may require ports to be added to the server.
@@ -0,0 +1,81 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-05-21T09:11:45-04:00",
"name": "Terraria Vanilla",
"author": "iamkubi@gmail.com",
"description": "Dig, fight, explore, build! Nothing is impossible in this action-packed adventure game.",
"image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu",
"startup": ".\/TerrariaServer.bin.x86_64 -config serverconfig.txt",
"config": {
"files": "{\r\n \"serverconfig.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"worldpath\": \"\/home\/container\/saves\/Worlds\",\r\n \"worldname\": \"{{server.build.env.WORLD_NAME}}\",\r\n \"world\": \"\/home\/container\/saves\/Worlds\/{{server.build.env.WORLD_NAME}}.wld\",\r\n \"difficulty\": \"{{server.build.env.WORLD_DIFFICULTY}}\",\r\n \"autocreate\": \"{{server.build.env.WORLD_SIZE}}\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"motd\": \"{{server.build.env.SERVER_MOTD}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}",
"logs": "{}",
"stop": "exit"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Vanilla Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl wget file unzip\r\n\r\nDOWNLOAD_LINK=invalid\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\/\r\n\r\nif [ \"${TERRARIA_VERSION}\" == \"latest\" ] || [ \"${TERRARIA_VERSION}\" == \"\" ] ; then\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/terraria.gamepedia.com\/Server#Downloads | grep '>Terraria Server ' | grep -Eoi '<a [^>]+>' | grep -Eo 'href=\\\"[^\\\\\\\"]+\\\"' | grep -Eo '(http|https):\\\/\\\/[^\\\"]+' | tail -1 | cut -d'?' -f1)\r\nelse\r\n CLEAN_VERSION=$(echo ${TERRARIA_VERSION} | sed 's\/\\.\/\/g')\r\n echo -e \"Downloading terraria server files\"\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/terraria.gamepedia.com\/Server#Downloads | grep '>Terraria Server ' | grep -Eoi '<a [^>]+>' | grep -Eo 'href=\\\"[^\\\\\\\"]+\\\"' | grep -Eo '(http|https):\\\/\\\/[^\\\"]+' | grep \"${CLEAN_VERSION}\" | cut -d'?' -f1)\r\nfi \r\n\r\n## this is a simple script to validate a download url actaully exists\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid.\"\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\nCLEAN_VERSION=$(echo ${DOWNLOAD_LINK##*\/} | cut -d'-' -f3 | cut -d'.' -f1)\r\n\r\necho -e \"running 'curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}'\" \r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip ${DOWNLOAD_LINK##*\/}\r\n\r\necho -e \"\"\r\ncp -R ${CLEAN_VERSION}\/Linux\/* .\/\r\nchmod +x TerrariaServer.bin.x86_64\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf ${CLEAN_VERSION}\r\n\r\necho -e \"Generating config file\"\r\ncat <<EOF > serverconfig.txt\r\nworldpath=\/home\/container\/saves\/Worlds\r\nworldname=default\r\nworld=\/home\/container\/saves\/Worlds\/default.wld\r\ndifficulty=3\r\nautocreate=1\r\nport=7777\r\nmaxplayers=8\r\nEOF\r\n\r\nmkdir -p \/mnt\/server\/saves\/Worlds\r\n\r\necho -e \"Install complete\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Terraria version",
"description": "the version of Terraria that is to be used.\r\n\r\nYou can use the full version number or the file number. (ex. 1.3.5.3 or 1353)\r\n\r\nGet version numbers here - https:\/\/terraria.gamepedia.com\/Server#Downloads",
"env_variable": "TERRARIA_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"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": "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": 1,
"rules": "required|numeric|digits_between:1,3"
},
{
"name": "Difficulty",
"description": "World Difficulty\r\n\r\nOptions: 0(normal), 1(expert), 2(master), 3(journey)",
"env_variable": "WORLD_DIFFICULTY",
"default_value": "3",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "MOTD",
"description": "Server MOTD",
"env_variable": "SERVER_MOTD",
"default_value": "Welcome!",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:128"
}
]
}
@@ -1,26 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-07-14T14:37:31+00:00",
"name": "RocketMod Modern",
"author": "isaac@isaacs.site",
"description": "The RocketMod server mod for Unturned.",
"image": "registry.gitlab.com\/tenten8401\/pterodactyl-unturned:modern",
"startup": "mono RocketLauncher.exe unturned",
"config": {
"files": "{\r\n \"Servers\/unturned\/Server\/Commands.dat\": {\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\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "shutdown"
},
"scripts": {
"installation": {
"script": "apt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates telnet ssh xvfb\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\nchown -R root:root \/mnt\r\n.\/steamcmd.sh +@sSteamCmdForcePlatformBitness 64 +login anonymous +app_update 1110390 +force_install_dir \/mnt\/server +quit\r\n\r\nmkdir -p \/mnt\/server\/Servers\/unturned\/Server\r\necho \"Port 27015\" > \/mnt\/server\/Servers\/unturned\/Server\/Commands.dat\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so",
"container": "ubuntu:18.04",
"entrypoint": "bash"
}
},
"variables": []
}
-54
View File
@@ -1,54 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-04-27T21:30:05+00:00",
"name": "RocketMod Old",
"author": "isaac@isaacs.site",
"description": "The RocketMod server mod for Unturned.",
"image": "registry.gitlab.com\/tenten8401\/pterodactyl-unturned",
"startup": "mono RocketLauncher.exe unturned",
"config": {
"files": "{\r\n \"Servers\/unturned\/Server\/Commands.dat\": {\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\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "shutdown"
},
"scripts": {
"installation": {
"script": "apt update\r\napt -y --no-install-recommends install curl lib32gcc1 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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +@sSteamCmdForcePlatformBitness 32 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 304930 +quit\r\n\r\nmkdir -p \/mnt\/server\/Servers\/unturned\/Server\r\necho \"Port 27015\" > \/mnt\/server\/Servers\/unturned\/Server\/Commands.dat\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so",
"container": "ubuntu:16.04",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Steam User",
"description": "A Steam username with Unturned on the account.",
"env_variable": "STEAM_USER",
"default_value": "anonymous",
"user_viewable": 0,
"user_editable": 0,
"rules": "required|string"
},
{
"name": "Steam Password",
"description": "Steam User Password",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Steam Auth Code",
"description": "Steam Auth Code only when you're using Steam Auth",
"env_variable": "STEAM_AUTH",
"default_value": "",
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
}
]
}