diff --git a/.github/ISSUE_TEMPLATE/bugs.md b/.github/ISSUE_TEMPLATE/bugs.md index 8d0d4648..759830d8 100644 --- a/.github/ISSUE_TEMPLATE/bugs.md +++ b/.github/ISSUE_TEMPLATE/bugs.md @@ -4,7 +4,11 @@ about: Report an issue for an egg --- -Please fill out the information bellow and remove from the line up +# If you are seeing any of the following go to Discord and port your error in a support channel. + * `A fatal error was encountered while starting this server.` + * `No server egg configuration could be located; aborting startup.` + +Please fill out the information bellow and remove from the line up If you just submit a bug with no info I will close out your bug. --------------- diff --git a/.github/ISSUE_TEMPLATE/request.md b/.github/ISSUE_TEMPLATE/request.md index eb47a9bb..1590d3a8 100644 --- a/.github/ISSUE_TEMPLATE/request.md +++ b/.github/ISSUE_TEMPLATE/request.md @@ -14,6 +14,6 @@ Does this expand an already existing service: Y/N Link to game: (Ex. minecraft.net/factorio.com/etc) -Links for server downloads: +Links for server downloads: This needs to be an official link and not one that is hosted on some forum page or a personal github page. -Links for install steps/docs: \ No newline at end of file +Links for install steps/docs: diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8285664e..edcd00b2 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -12,11 +12,11 @@ 1. [ ] Does your submission pass tests (server is connectable)? 2. [ ] Does your server use a custom docker image? * [ ] Have you tried to use a generic image? - * [ ] Did you PR the nesessary changes to make it work? + * [ ] Did you PR the necessary changes to make it work? 3. [ ] Have you added the server to the main README.md? 4. [ ] Have you added a unique README.md for the server you are adding? ### Changes to an existing Egg: 1. [ ] Have you added an explanation of what your changes do and why you'd like us to include them? -2. [ ] Have you tested your Egg changes? \ No newline at end of file +2. [ ] Have you tested your Egg changes? diff --git a/.gitignore b/.gitignore index ccc9fd93..615b2764 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -*.DS_Store \ No newline at end of file +*.DS_Store +node_modules/ +.vuepress/* \ No newline at end of file diff --git a/.gitignore_global b/.gitignore_global deleted file mode 100644 index 496ee2ca..00000000 --- a/.gitignore_global +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9662ccc9..7628dda1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ If you need something in a container PR it to [my image repo](https://github.com/parkervcp/images) where I can review and pull up to the main repo. 4. Don't be afraid to submit PR's to the egg repo. - I dont bite. I will work with you on the egg and the required things to run it. + I don't bite. I will work with you on the egg and the required things to run it. ## Step 1. #### Be aware of the pterodactyl install process. @@ -36,11 +36,11 @@ The Pterodactyl install process is fairly simple once you know. Make sure your install process is rock solid as I will be testing eggs before they ever hit my repo. -I will make sugestions and changes at will. +I will make suggestions and changes at will. This is to maintain a clean repo that others can pull and be fully aware of what is being done. ## Step 3. #### Make a branch and do your work in there. -I have been getting messy PR's due to people always PRing from their master branch. Please make a branch and PR from there, +I have been getting messy PR's due to people always PRing from their master branch. Please make a seperate branch and PR from there. diff --git a/README.md b/README.md index a7dea4d9..cfff6c8f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ If you are submitting PR's try and keep names and titles the same. If you are reading this it looks like you are looking to add an egg to your server. -1. Download any of the json files located in the folders below. +1. Download any of the json files located in the folders below. 1. It's easiest to right click the `raw` button and save as. 2. In your panel go to the `Nests` section in the admin part of the panel 3. Click the green `Import Egg` button @@ -24,79 +24,126 @@ 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 -## Bot Eggs +## [Bots](/bots/) -[Discord](/bots/discord/) +[Discord](/bots/discord/) * [ATL Bot](/bots/discord/atlbot/) Node JS -* [Bastion](/bots/discord/bastion/) -* [discord.js](bots/discord/discord.js/) Node JS generic -* [fragbot](/bots/discord/fragbot/) Golang -* [parkertron](/bots/discord/parkertron/) Golang -* [pixel-bot](/bots/discord/pixelbot/) Python -* [Sinusbot](/bots/discord/sinusbot/) +* [Bastion](/bots/discord/bastion/) +* [CorpBot](/bots/discord/corpbot/) Python +* [discord.js](bots/discord/discord.js/) Node JS generic +* [discord.py](bots/discord/discord.py/) Python generic +* [fragbot](/bots/discord/fragbot/) Golang +* [jmusicbot](/bots/discord/jmusicbot) Java +* [parkertron](/bots/discord/parkertron/) Golang +* [pixel-bot](/bots/discord/pixelbot/) Python +* [Red](/bots/discord/redbot/) Python +* [Sinusbot](/bots/discord/sinusbot/) -[TeamSpeak3](bots/teamspeak3) -* [JTS3ServerMod](/bots/teamspeak3/jts3servermod/) +* [Twitch](/bots/twitch) + * [PhantomBot](/bots/twitch/phantombot/) + +* [TeamSpeak3](bots/teamspeak3) + * [JTS3ServerMod](/bots/teamspeak3/jts3servermod/) + +## [Database](/database/) +### [SQL] Databases +* [MariaDB](/database/sql/mariadb/) +* [PostgreSQL](/database/sql/postgres/) + +### In-Memory Databases +[Redis](/database/redis/) +* [Redis 5](/database/redis/redis-5) +* [Redis 6](/database/redis/redis-6) ## Game Eggs - -[Arma](/arma/) -* [Arma 3](/arma/arma3/) -* [Arma 3 HC](/arma/arma3_headless_client/) - -[Conan Exiles](/conan_exiles/conan_exiles) - -[Don't Starve](/dont_starve/dont_starve) - [ET Legacy](/enemy_territory/etlegacy/) -[Factorio](/factorio/factorio/) +[Factorio](/factorio/factorio/) -[Grand Theft Auto](/gta/) +[Grand Theft Auto](/gta/) * GTA V - * [FiveM](/gta/fivem/) - * [RageMP](/gta/ragemp/) + * [FiveM](/gta/fivem/) + * [RageMP](/gta/ragemp/) + * [alt:V](/gta/altv/) * GTA SA * [Multi Theft Auto](/gta/mtasa/) * [SA-MP](/gta/samp/) -[Minecraft Bedrock](/minecraft_bedrock/) -* [Bedrock](/minecraft_bedrock/bedrock/) -* [Nukkit](/minecraft_bedrock/nukkit/) -* [PocketMine MP](/minecraft_bedrock/pocketmine_mp/) +[Mindustry](/mindustry/) -[Minecraft Java](/minecraft_java/) -* [Forge](/minecraft_java/forge/) -* [Feed The Beast](/minecraft_java/ftb/) -* [Spigot](/minecraft_java/spigot/) -* [PaperSpigot (Legacy)](/minecraft_java/spigot/paper-legacy) -* [Technic](/minecraft_java/technic/) +[Minecraft](/minecraft/) +* [Bedrock](/minecraft/bedrock/) + * [Bedrock](/minecraft/bedrock/bedrock/) + * [DragonProxy](/minecraft/bedrock/dragonproxy/) + * [Nukkit](/minecraft/bedrock/nukkit/) + * [PocketMine MP](/minecraft/bedrock/pocketmine_mp/) -[Minecraft Proxies](/minecraft_proxy/) (these are for the java version of minecraft) -* [Waterfall](/minecraft_proxy/waterfall/) +* [Java](/minecraft/java/) Servers for Java Minecraft + * [Cuberite](/minecraft/java/cuberite/) + * [feather](/minecraft/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/) -[Mount & Blade Warband](/mb_warband/) +* [Proxies](/minecraft/proxy/) (these are for the java version of minecraft) + * [Waterfall](/minecraft/proxy/waterfall/) + * [TyphoonLimbo](/minecraft/proxy/typhoonlimbo/) + * [Travertine](/minecraft/proxy/travertine/) Java + * [Velocity](/minecraft/proxy/velocity/) -[OpenTTD](/openttd/) +[Red Dead Redemption](/rdr/) +* [RedM](/rdr/redm/) -[Source](/source_servers/) These eggs use steamcmd to install -* [7 Days to Die](/source_servers/7_days_to_die/) -* [ARK Survival Evolved](/source_servers/ark_survival_evolved/) -* [PixARK](/source_servers/pixark/) -* [Rust Staging Branch](/source_servers/rust-staging/) -* [Starbound](/source_servers/starbound) -* [Killing Floor 2](/source_servers/killingfloor2) +[steamcmd servers](/steamcmd_servers/) These eggs use steamcmd to install +* [7 Days to Die](/steamcmd_servers/7_days_to_die/) +* [ARK Survival Evolved](/steamcmd_servers/ark_survival_evolved/) +* [Arma](/steamcmd_servers/arma/) + * [Arma 3](/steamcmd_servers/arma/arma3/) + * [Arma 3 HC](/steamcmd_servers/arma/arma3_headless_client/) +* [Citadel: Forged with Fire](/steamcmd_servers/citadel) +* [Conan Exiles](/steamcmd_servers/conan_exiles) +* [Don't Starve](/steamcmd_servers/dont_starve) +* [ECO](/steamcmd_servers/eco/) +* [HLDS server](/steamcmd_servers/hlds_server) +* [Hurtworld](/steamcmd_servers/hurtworld) +* [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm) +* [Killing Floor 2](/steamcmd_servers/killingfloor2) +* [Mordhau](/steamcmd_servers/mordhau) +* [Onset](/steamcmd_servers/onset) +* [PixARK](/steamcmd_servers/pixark/) +* [Project Zomboid](/steamcmd_servers/project_zomboid/) +* [Rust Staging Branch](/steamcmd_servers/rust_staging/) +* [SCP: Secret Laboratory](/steamcmd_servers/scpsl/) + * [dedicated](/steamcmd_servers/scpsl/dedicated/) + * [multiadmin](/steamcmd_servers/scpsl/multiadmin/) +* [SSoldat](/steamcmd_servers/soldat/) +* [Starbound](/steamcmd_servers/starbound) +* [Stationeers](/steamcmd_servers/stationeers/) +* [Sven Co-op](/steamcmd_servers/svencoop) +* [Squad](/steamcmd_servers/squad/) +* [Unturned](/steamcmd_servers/unturned/) + * [RocketMod](/steamcmd_servers/unturned/rocketmod/) + * [Unturned](/steamcmd_servers/unturned/unturned/) -[Squad](/squad/) +[Terraria](/terraria/) +* [vanilla](/terraria/vanilla) +* [tmodloader](/terraria/tmodloader) +* [tshock](/terraria/tshock/) + +[Tycoon Games](/tycoon_games/) +* [OpenTTD](/tycoon_games/openttd/) [Unreal Engine](/unreal_engine) -* [Tower Unit](/unreal_engine/tower_unit/) +* [Tower Unite](/unreal_engine/tower_unite/) +* [Tower Unite](/steamcmd_servers/tower_unite/) -[Terraria](/terraria/) -* [tmodloader](/terraria/tmodloader) -* [tshock](/terraria/tshock/) +[Vintage Story](/vintage_story/vintage_story/) -[Unturned](/unturned/) -* [RocketMod](/unturned/rocketmod/) - -[Xonotic](/xonotic/) +[Xonotic](/xonotic/xonotic/) diff --git a/bots/discord/README.md b/bots/discord/README.md index 8c1cf53f..41f95307 100644 --- a/bots/discord/README.md +++ b/bots/discord/README.md @@ -18,6 +18,14 @@ Give awesome perks to your Discord server! [discord.js](https://discord.js.org/) 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 +[jagrosh/MusicBot](https://github.com/jagrosh/MusicBot) +A Discord music bot that's easy to set up and run yourself! + #### fragbot [fragforce/fragbot](https://github.com/fragforce/fragbot) The bot that runs as the fragforce `@Fragbot` offering looking-for-group services for now @@ -33,4 +41,4 @@ Was used to test python services. #### SinusBot [SinusBot](https://www.sinusbot.com/) -Please Check their site for an in depth on the bot. \ No newline at end of file +Please Check their site for an in depth on the bot. diff --git a/bots/discord/atlbot/egg-a-t-l-bot.json b/bots/discord/atlbot/egg-a-t-l-bot.json index d3586195..2bea0340 100644 --- a/bots/discord/atlbot/egg-a-t-l-bot.json +++ b/bots/discord/atlbot/egg-a-t-l-bot.json @@ -3,21 +3,21 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-12-25T21:12:00-05:00", + "exported_at": "2019-06-23T10:00:12-04:00", "name": "ATLBot", "author": "jfeldt19@gmail.com", "description": "ATLbot in ptero\r\n\r\nhttps:\/\/github.com\/ATLauncher\/discord-bot\/", "image": "quay.io\/parkervcp\/pterodactyl-images:alpine_nodejs-10", "startup": "npm run start", "config": { - "files": "{\r\n \"config\/local.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"client_token\": \"{{server.build.env.CLIENT_TOKEN}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"I am ready!\",\r\n \"userInteraction\": [\r\n \"Request to use token, but token was unavailable\"\r\n ]\r\n}", + "files": "{\r\n \"config\/local.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"discord.client_token\": \"{{server.build.env.CLIENT_TOKEN}}\",\r\n \"logging.level\": \"debug\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Bot started\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^C" }, "scripts": { "installation": { - "script": "apk add --no-cache openssl git\r\n\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/github.com\/ATLauncher\/discord-bot\/archive\/master.zip\r\n\r\nunzip master.zip\r\n\r\nrm master.zip\r\n\r\nmv discord-bot-master\/* .\/\r\n\r\nmv config\/default.json config\/local.json\r\n\r\nrm package-lock.json\r\nnpm install\r\n\r\nrm -r discord-bot-master\/\r\nrm Dockerfile\r\nrm CONTRIBUTING.md\r\nrm README.md\r\nrm \/config\/.gitignore\r\nrm CODE_OF_CONDUCT.md", + "script": "apk add --no-cache openssl git\r\n\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/ATLauncher\/discord-bot.git . \r\nfi\r\n\r\necho '{}' > config\/local.json\r\n\r\nnpm install --production\r\n\r\nnpm run build\r\n\r\nrm Dockerfile\r\nrm CONTRIBUTING.md\r\nrm README.md\r\nrm \/config\/.gitignore\r\nrm CODE_OF_CONDUCT.md", "container": "node:10-alpine", "entrypoint": "ash" } @@ -31,6 +31,15 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|string|max:75" + }, + { + "name": "Node Environment", + "description": "The node environment variable.\r\n\r\nNeeds to stay at \"development\" to log to console.", + "env_variable": "NODE_ENV", + "default_value": "development", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" } ] -} +} \ No newline at end of file diff --git a/bots/discord/bastion/README.md b/bots/discord/bastion/README.md index c57d5814..1dc840db 100644 --- a/bots/discord/bastion/README.md +++ b/bots/discord/bastion/README.md @@ -5,5 +5,9 @@ Give awesome perks to your Discord server! ### 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. +## Running the bot +You need to enable both `Privileged Gateway Intents` for the bot to run. +Enable this from `https://discord.com/developers/applications//bot` + ### Server Ports No Ports are required for the bastion bot. \ No newline at end of file diff --git a/bots/discord/bastion/egg-bastion.json b/bots/discord/bastion/egg-bastion.json index 6d440bbb..5a298b10 100644 --- a/bots/discord/bastion/egg-bastion.json +++ b/bots/discord/bastion/egg-bastion.json @@ -3,35 +3,26 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-01-02T13:13:37+00:00", + "exported_at": "2020-06-20T13:11:43-04:00", "name": "Bastion", "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.", "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": { - "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}", - "startup": "{\r\n \"done\": \"I'm ready to roll!\"\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\": \"Systems Ready!\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "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\nnpm 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", - "container": "node:8-alpine", - "entrypoint": "ash" + "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:12-buster", + "entrypoint": "bash" } }, "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", "description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/", @@ -40,6 +31,42 @@ "user_viewable": 1, "user_editable": 1, "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" } ] -} +} \ No newline at end of file diff --git a/bots/discord/corpbot/README.md b/bots/discord/corpbot/README.md new file mode 100644 index 00000000..2853d335 --- /dev/null +++ b/bots/discord/corpbot/README.md @@ -0,0 +1,8 @@ +# CorpBot.py +### From their [Github](https://github.com/corpnewt/CorpBot.py) +A very clumsy python bot for discord + +### Server Ports +No ports are required to run Big Brother Bot. You can assign a random port to the bot. + +#### Mods/Plugins may require ports to be added to the server. diff --git a/bots/discord/corpbot/egg-corp-bot.json b/bots/discord/corpbot/egg-corp-bot.json new file mode 100644 index 00000000..f7e46d52 --- /dev/null +++ b/bots/discord/corpbot/egg-corp-bot.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-25T10:31:48-04:00", + "name": "CorpBot", + "author": "parker@parkervcp.com", + "description": "A very clumsy python bot for discord \r\n\r\nhttps:\/\/github.com\/corpnewt\/CorpBot.py", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8", + "startup": "python Main.py", + "config": { + "files": "{\r\n \"settings_dict.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"token\": \"{{server.build.env.TOKEN}}\",\r\n \"prefix\": \"{{server.build.env.PREFIX}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Logged in as\"\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# CoprBot Install Script\r\n#\r\n## create dir is it doesn't exist\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\n## move to directory\r\ncd \/mnt\/server\/\r\n\r\n## install deps\r\napt update\r\napt install -y git gcc curl\r\n\r\n## git clone \r\ngit clone https:\/\/github.com\/corpnewt\/CorpBot.py.git .\r\n\r\n## Modify Install.py to work properly in egg format\r\nmv Install.py Install.py.orig\r\nsed -n '\/press enter to exit\/q;p' Install.py.orig > Install.py\r\nsed -i 's\/\"-U\"\/\"-U\", \"--target\", \"\\\/mnt\\\/server\\\/\"\/g' Install.py\r\n\r\n## run Install.py script\r\npython Install.py\r\n\r\n## get config during install\r\nif [ ! -f \/mnt\/server\/settings_dict.json ]; then\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/corpbot\/settings_dict.json -o settings_dict.json\r\nfi", + "container": "python:3.8-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Discord Bot Token", + "description": "Get your own token here - https:\/\/discordapp.com\/developers\/applications\/", + "env_variable": "TOKEN", + "default_value": "GET_YOUR_OWN", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Command Prefix", + "description": "The prefix for commands from the bot.", + "env_variable": "PREFIX", + "default_value": ".", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + } + ] +} \ No newline at end of file diff --git a/bots/discord/corpbot/settings_dict.json b/bots/discord/corpbot/settings_dict.json new file mode 100644 index 00000000..b876cabe --- /dev/null +++ b/bots/discord/corpbot/settings_dict.json @@ -0,0 +1,4 @@ +{ + "token": "your_token_here", + "prefix": "your_custom_prefix_here" +} \ No newline at end of file diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index 7bd0d3b7..295c8b27 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -3,23 +3,23 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-04-01T15:16:34-04:00", + "exported_at": "2020-07-18T23:13:34-04:00", "name": "discord.js generic", "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.", - "image": "quay.io\/parkervcp\/pterodactyl-images:bot_discordjs", - "startup": "\/usr\/local\/bin\/node \/home\/container\/index.js", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", + "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": { "files": "{}", - "startup": "{}", + "startup": "{\r\n \"done\": \"change this part\"\r\n}", "logs": "{}", "stop": "^c" }, "scripts": { "installation": { - "script": "#\/bin\/ash\r\n\r\napk add --no-cache git\r\n\r\ncd \/mnt\/server\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", - "container": "node:10-alpine", - "entrypoint": "ash" + "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:12-buster-slim", + "entrypoint": "bash" } }, "variables": [ @@ -49,6 +49,33 @@ "user_viewable": 1, "user_editable": 0, "rules": "required|bool" + }, + { + "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 js file", + "description": "The file that starts the bot.", + "env_variable": "BOT_JS_FILE", + "default_value": "index.js", + "user_viewable": 1, + "user_editable": 1, + "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" } ] } \ No newline at end of file diff --git a/bots/discord/discord.py/README.md b/bots/discord/discord.py/README.md new file mode 100644 index 00000000..c45234d9 --- /dev/null +++ b/bots/discord/discord.py/README.md @@ -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. \ No newline at end of file diff --git a/bots/discord/discord.py/egg-discord-py-generic.json b/bots/discord/discord.py/egg-discord-py-generic.json new file mode 100644 index 00000000..b34ee6a6 --- /dev/null +++ b/bots/discord/discord.py/egg-discord-py-generic.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/bots/discord/jmusicbot/README.md b/bots/discord/jmusicbot/README.md new file mode 100644 index 00000000..e38a71e1 --- /dev/null +++ b/bots/discord/jmusicbot/README.md @@ -0,0 +1,6 @@ +# JMusicBot +### Their [Github](https://github.com/jagrosh/MusicBot) +A Discord music bot that's easy to set up and run yourself! + +### Server Ports +There are no ports required for JMusicBot \ No newline at end of file diff --git a/bots/discord/jmusicbot/egg-j-music-bot.json b/bots/discord/jmusicbot/egg-j-music-bot.json new file mode 100644 index 00000000..be9fe0e1 --- /dev/null +++ b/bots/discord/jmusicbot/egg-j-music-bot.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-06-15T17:43:44-04:00", + "name": "JMusicBot", + "author": "parker@parkervcp.com", + "description": "A Discord music bot that's easy to set up and run yourself!", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-8-jre", + "startup": "java -Djavax.accessibility.assistive_technologies=\" \" -Dnogui=true -jar JMusicBot.jar", + "config": { + "files": "{\r\n \"config.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"token =\": \"token = \\\"{{env.BOT_TOKEN}}\\\"\",\r\n \"prefix =\": \"prefix = \\\"{{env.BOT_PREFIX}}\\\"\",\r\n \"owner =\": \"owner = \\\"{{env.BOT_OWNER}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "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=\"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", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "Discord Bot Token", + "description": "The token for the discord bot.\r\n\r\nhttps:\/\/discordapp.com\/developers\/applications\/", + "env_variable": "BOT_TOKEN", + "default_value": "You need to get a token", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "Bot Prefix", + "description": "Thew prefix for the bot.\r\n\r\nDefault is it @mention the bot.", + "env_variable": "BOT_PREFIX", + "default_value": "@mention", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Bot Owner ID", + "description": "This is the user ID of the bot owner.", + "env_variable": "BOT_OWNER", + "default_value": "changethistoyourdiscordid", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:32" + } + ] +} \ No newline at end of file diff --git a/bots/discord/parkertron/egg-parkertron.json b/bots/discord/parkertron/egg-parkertron.json index 8be2cbec..ce098ba8 100644 --- a/bots/discord/parkertron/egg-parkertron.json +++ b/bots/discord/parkertron/egg-parkertron.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-02-17T12:34:32-05:00", + "exported_at": "2020-04-03T12:50:58-04:00", "name": "parkertron", "author": "parker@parkervcp.com", "description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron", @@ -13,12 +13,12 @@ "files": "{}", "startup": "{\r\n \"done\": \"Bot is now running\"\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "^C" + "stop": "shutdown" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napk add --no-cache --update git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"pulling the parkertron pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \"$DIRECTORY\" ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"", - "container": "golang:1.11-alpine", + "script": "#!\/bin\/ash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napk add --no-cache --update git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"pulling the parkertron pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\ngo mod download\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"", + "container": "golang:1.14-alpine", "entrypoint": "ash" } }, diff --git a/bots/discord/pixelbot/egg-pixel-bot.json b/bots/discord/pixelbot/egg-pixel-bot.json index e9646353..5949b3b1 100644 --- a/bots/discord/pixelbot/egg-pixel-bot.json +++ b/bots/discord/pixelbot/egg-pixel-bot.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-03-27T08:57:41-04:00", + "exported_at": "2020-01-19T11:11:24-05:00", "name": "pixel-bot", "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:python3", + "image": "quay.io\/parkervcp\/pterodactyl-images:alpine_python-3", "startup": "python bot.py", "config": { "files": "{\r\n \"config\/config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"owner\": \"{{server.build.env.OWNER_UID}}\",\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\",\r\n \"bot_name\": \"{{server.build.env.BOT_NAME}}\",\r\n \"log_file\": \"latest.log\"\r\n }\r\n },\r\n \"plugins\/settings\/imgur.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"client_id\": \"{{server.build.env.IMGUR_KEY}}\",\r\n \"client_secret\": \"{{server.build.env.IMGUR_SECRET}}\"\r\n }\r\n }\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache git gcc g++ libffi-dev make\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Cloning pixel-bot repo\"\r\ngit clone https:\/\/github.com\/Ispira\/pixel-bot.git .\r\n\r\necho \"Installing python requirements into folder\"\r\npip install -U --target $(pwd) discord imgurpython xkcd pynacl", + "script": "#!\/bin\/ash\r\n# Pixel Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache git gcc g++ libffi-dev make\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Cloning pixel-bot repo\"\r\ngit clone https:\/\/github.com\/Ispira\/pixel-bot.git .\r\n\r\necho \"Installing python requirements into folder\"\r\npip install -U --target $(pwd) discord imgurpython xkcd pynacl", "container": "python:3.6-alpine3.7", "entrypoint": "ash" } diff --git a/bots/discord/redbot/README.md b/bots/discord/redbot/README.md new file mode 100644 index 00000000..165b391e --- /dev/null +++ b/bots/discord/redbot/README.md @@ -0,0 +1,13 @@ +# Red-DiscordBot +### From their [Github](https://github.com/Cog-Creators/Red-DiscordBot) +A multifunction Discord bot + +### Server Ports +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. diff --git a/bots/discord/redbot/config.json b/bots/discord/redbot/config.json new file mode 100644 index 00000000..86b5e0a0 --- /dev/null +++ b/bots/discord/redbot/config.json @@ -0,0 +1,9 @@ +{ + "pterodactyl": { + "DATA_PATH": "/home/container/.local/share/Red-DiscordBot/data/pterodactyl", + "COG_PATH_APPEND": "cogs", + "CORE_PATH_APPEND": "core", + "STORAGE_TYPE": "JSON", + "STORAGE_DETAILS": {} + } +} \ No newline at end of file diff --git a/bots/discord/redbot/egg-red.json b/bots/discord/redbot/egg-red.json new file mode 100644 index 00000000..499dded3 --- /dev/null +++ b/bots/discord/redbot/egg-red.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-20T23:06:14-04:00", + "name": "Red", + "author": "parker@parkervcp.com", + "description": "A multifunction Discord bot \r\n\r\nhttps:\/\/github.com\/Cog-Creators\/Red-DiscordBot", + "image": "quay.io\/parkervcp\/pterodactyl-images:bot_red", + "startup": "PATH=$PATH:\/home\/container\/.local\/bin redbot pterodactyl --token {{TOKEN}} --prefix {{PREFIX}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Invite URL:\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-11-jre\r\n\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\n curl https:\/\/gist.githubusercontent.com\/parkervcp\/4a5a68aec5a26b35e4315b22dd6d6748\/raw\/a776b1610949dd242ff8ce5cdc8ad7d43e4f7dad\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\n\r\necho -e \"install finished\"", + "container": "python:3.8-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Discord Bot Token", + "description": "Get your own token here - https:\/\/discordapp.com\/developers\/applications\/", + "env_variable": "TOKEN", + "default_value": "GET_YOUR_OWN", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Command Prefix", + "description": "The prefix for commands from the bot.", + "env_variable": "PREFIX", + "default_value": ".", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + } + ] +} \ No newline at end of file diff --git a/bots/discord/sinusbot/egg-sinusbot.json b/bots/discord/sinusbot/egg-sinusbot.json index c1805f68..fa050d60 100644 --- a/bots/discord/sinusbot/egg-sinusbot.json +++ b/bots/discord/sinusbot/egg-sinusbot.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-02-28T12:38:22-05:00", + "exported_at": "2019-07-25T10:48:45-04:00", "name": "Sinusbot", "author": "support@pterodactyl.io", "description": "Musicbot for Discord and Teamspeak.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Sinusbot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install ca-certificates bzip2 wget tar curl\r\napt -q clean all\r\n\r\n#Create needed directories\r\nmkdir -p \/mnt\/server\/TeamSpeak3-Client-linux_amd64\/plugins\r\nmkdir \/mnt\/server\/youtube-dl\r\n\r\ncd \/mnt\/server\r\n\r\n#Download Sinusbot\r\nwget -qO - https:\/\/www.sinusbot.com\/dl\/sinusbot.current.tar.bz2 | tar xj\r\n\r\n#Install Sinusbot\r\nchmod +x sinusbot\r\ncp config.ini.dist config.ini\r\nsed -i \"s|^TS3Path.*|TS3Path = \\\"\/home\/container\/TeamSpeak3-Client-linux_amd64\/ts3client_linux_amd64\\\"|g\" config.ini\r\necho 'YoutubeDLPath = \"\/home\/container\/youtube-dl\/youtube-dl\"' >> config.ini\r\n#cp scripts scripts_org\r\n\r\n#Install Sinusbot plugin\r\ncp plugin\/libsoundbot_plugin.so TeamSpeak3-Client-linux_amd64\/plugins\r\n\r\n#Download TeamSpeak Client\r\nwget http:\/\/dl.4players.de\/ts\/releases\/${TS_VERSION}\/TeamSpeak3-Client-linux_amd64-${TS_VERSION}.run\r\n\r\n# Install TeamSpeak Client\r\nchmod 0755 TeamSpeak3-Client-linux_amd64*.run\r\n.\/TeamSpeak3-Client-linux_amd64*.run --tar xfv -C TeamSpeak3-Client-linux_amd64\r\nrm TeamSpeak3-Client-linux_amd64*.run\r\n# Remove glx-integration lib\r\nrm TeamSpeak3-Client-linux_amd64\/xcbglintegrations\/libqxcb-glx-integration.so\r\n\r\n#Download youtube-dl\r\ncd \/mnt\/server\/youtube-dl\r\nwget -q https:\/\/yt-dl.org\/downloads\/latest\/youtube-dl\r\nchmod a+rx youtube-dl", + "script": "#!\/bin\/bash\r\n# Sinusbot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install ca-certificates bzip2 wget tar curl jq\r\napt -q clean all\r\n\r\n#Create needed directories\r\nmkdir -p \/mnt\/server\/TeamSpeak3-Client-linux_amd64\/plugins\r\nmkdir \/mnt\/server\/youtube-dl\r\n\r\ncd \/mnt\/server\r\n\r\n#Download Sinusbot\r\nwget -qO - https:\/\/www.sinusbot.com\/dl\/sinusbot.current.tar.bz2 | tar xj\r\n\r\n#Download Latest TeamSpeak Client\r\nTS_VERSION=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.version')\r\nTS_DL_LINK=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.mirrors.\"teamspeak.com\"')\r\n\r\necho -e \"downloading teamspeak version ${TS_VERSION}\"\r\necho -e \"running 'wget ${TS_DL_LINK}'\"\r\n\r\nwget ${TS_DL_LINK}\r\n\r\n# Install TeamSpeak Client\r\nchmod 0755 TeamSpeak3-Client-linux_amd64*.run\r\n.\/TeamSpeak3-Client-linux_amd64*.run --tar xfv -C TeamSpeak3-Client-linux_amd64\r\n\r\n## Cleaning up \r\n\r\nrm TeamSpeak3-Client-linux_amd64*.run\r\n# Remove glx-integration lib\r\nrm TeamSpeak3-Client-linux_amd64\/xcbglintegrations\/libqxcb-glx-integration.so\r\n\r\n#Install Sinusbot\r\nchmod +x sinusbot\r\ncp config.ini.dist config.ini\r\nsed -i \"s|^TS3Path.*|TS3Path = \\\"\/home\/container\/TeamSpeak3-Client-linux_amd64\/ts3client_linux_amd64\\\"|g\" config.ini\r\necho 'YoutubeDLPath = \"\/home\/container\/youtube-dl\/youtube-dl\"' >> config.ini\r\n\r\n#Install Sinusbot plugin\r\ncp plugin\/libsoundbot_plugin.so TeamSpeak3-Client-linux_amd64\/plugins\r\n\r\n#Download youtube-dl\r\ncd \/mnt\/server\/youtube-dl\r\nwget -q https:\/\/yt-dl.org\/downloads\/latest\/youtube-dl\r\nchmod a+rx youtube-dl", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -31,15 +31,6 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|string|max:20" - }, - { - "name": "Teamspeak version", - "description": "What version of teamspeak client to download", - "env_variable": "TS_VERSION", - "default_value": "3.2.2", - "user_viewable": 0, - "user_editable": 0, - "rules": "required|string|max:20" } ] } \ No newline at end of file diff --git a/bots/teamspeak3/jts3servermod/egg-j-t-s3-server-mod.json b/bots/teamspeak3/jts3servermod/egg-j-t-s3-server-mod.json index c6094ad2..8bdf21d3 100644 --- a/bots/teamspeak3/jts3servermod/egg-j-t-s3-server-mod.json +++ b/bots/teamspeak3/jts3servermod/egg-j-t-s3-server-mod.json @@ -18,7 +18,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# JTS3ServerMod\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y install wget unzip\r\n\r\ncd \/tmp\r\n\r\nif [ -z \"$SERVER_VERSION\" ] || [ \"$SERVER_VERSION\" == \"latest\" ]; then\r\n wget -q -O JTS3ServerMod.zip 'https:\/\/www.stefan1200.de\/dlrequest.php?file=jts3servermod&type=.zip'\r\nelse\r\n wget -q -O JTS3ServerMod.zip 'https:\/\/www.stefan1200.de\/downloads\/JTS3ServerMod_$SERVER_VERSION.zip'\r\nfi\r\n\r\nunzip JTS3ServerMod.zip\r\n\r\nmkdir -p \/mnt\/server\r\nexport HOME=\/mnt\/server\r\n\r\nmv \/tmp\/JTS3ServerMod\/* \/mnt\/server\/", - "container": "ubuntu:18.10", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, @@ -33,4 +33,4 @@ "rules": "required|string|max:20" } ] -} \ No newline at end of file +} diff --git a/bots/twitch/README.md b/bots/twitch/README.md new file mode 100644 index 00000000..685fc613 --- /dev/null +++ b/bots/twitch/README.md @@ -0,0 +1,6 @@ +# Twitch Bots + +### Some of these bots support other services but are primarily Twitch bots + +#### PhantomBot [Homepage](https://phantombot.tv) [Egg](/bots/twitch/phantombot/) +#### sogeBot [Homepage](https://sogebot.xyz) [Egg](/bots/twitch/sogebots/) diff --git a/bots/twitch/phantombot/README.md b/bots/twitch/phantombot/README.md new file mode 100644 index 00000000..b62d0ac6 --- /dev/null +++ b/bots/twitch/phantombot/README.md @@ -0,0 +1,27 @@ +# PhantomBot +### Their [Site](https://phantombot.tv) +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. + +### Server Ports +3 ports are required to run PhantomBot. + +| Port | default | +|---------------------|---------| +| Game (HTTP Server) | 25000 | +| YoutubeSocketServer | 25003 | +| PanelSocketServer | 25004 | + +# NOTES +You need to define one main port and the other 2 port need to be +3 and +4! + +Example: + +Port1: 1000 + +Port2: 1003 + +Port3: 1004 + +this are forced and can't be changed! diff --git a/bots/twitch/phantombot/egg-phantom-bot.json b/bots/twitch/phantombot/egg-phantom-bot.json new file mode 100644 index 00000000..cbb1c289 --- /dev/null +++ b/bots/twitch/phantombot/egg-phantom-bot.json @@ -0,0 +1,117 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-26T14:11:30+02:00", + "name": "PhantomBot", + "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.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11", + "startup": "java --add-opens java.base\/java.lang=ALL-UNNAMED -Djava.security.policy=config\/security -Dinteractive -Xms1m -Dfile.encoding=UTF-8 -jar PhantomBot.jar", + "config": { + "files": "{\r\n \"config\/botlogin.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"baseport\": \"{{server.build.default.port}}\",\r\n \"channel\": \"{{server.build.env.CHANNEL_NAME}}\",\r\n \"owner\": \"{{server.build.env.CHANNEL_OWNER}}\",\r\n \"apioauth\": \"{{server.build.env.USER_OAUTH_TOKEN}}\",\r\n \"oauth\": \"{{server.build.env.BOT_OAUTH_TOKEN}}\",\r\n \"paneluser\": \"{{server.build.env.WEBPANEL_USERNAME}}\",\r\n \"panelpassword\": \"{{server.build.env.WEBPANEL_PASSWORD}}\",\r\n \"user\": \"{{server.build.env.BOT_TWITCH_USERNAME}}\",\r\n \"youtubekey\": \"{{server.build.env.YOUTUBE_API_KEY}}\",\r\n \"discord_token\": \"{{server.build.env.DISCORD_BOT_TOKEN}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Connecting to Twitch WS-IRC Server\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}", + "stop": "exit" + }, + "scripts": { + "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 [ -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", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Version", + "description": "latest = Latest Stable\r\nmaster = latest Github", + "env_variable": "RELEASE_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:9" + }, + { + "name": "Twitch Channel Name", + "description": "Please enter the bot's Twitch username", + "env_variable": "CHANNEL_NAME", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:26" + }, + { + "name": "Channel Owner", + "description": "", + "env_variable": "CHANNEL_OWNER", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:26" + }, + { + "name": "Bot OAuth Token", + "description": "Please note, this OAuth token needs to be generated while you're logged in into the bot's Twitch account.\r\nIf you're not logged in as the bot, please go to https:\/\/twitch.tv\/ and login as the bot.\r\nGet the bot's OAuth token here: https:\/\/twitchapps.com\/tmi\/", + "env_variable": "BOT_OAUTH_TOKEN", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "Your OAuth Token", + "description": "Please note, this OAuth token needs to be generated while you're logged in into your caster account.\r\nIf you're not logged in as the caster, please go to https:\/\/twitch.tv\/ and login as the caster.\r\nGet the your OAuth token here: https:\/\/phantombot.tv\/oauth\/", + "env_variable": "USER_OAUTH_TOKEN", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "Bot Twitch Username", + "description": "Please enter the bot's Twitch username", + "env_variable": "BOT_TWITCH_USERNAME", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:26" + }, + { + "name": "Webpanel Username", + "description": "Please enter a custom username for the web panel", + "env_variable": "WEBPANEL_USERNAME", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "Webpanel Password", + "description": "Please enter a custom password for the web panel", + "env_variable": "WEBPANEL_PASSWORD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:2000" + }, + { + "name": "Youtube API Key", + "description": "https:\/\/community.phantom.bot\/t\/acquire-youtube-api-key\/222", + "env_variable": "YOUTUBE_API_KEY", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "max:64" + }, + { + "name": "Discord Bot Token", + "description": "https:\/\/community.phantom.bot\/t\/discord-integration-setup\/64", + "env_variable": "DISCORD_BOT_TOKEN", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "max:64" + } + ] +} \ No newline at end of file diff --git a/bots/twitch/sogebot/README.md b/bots/twitch/sogebot/README.md new file mode 100644 index 00000000..bf0ad1b9 --- /dev/null +++ b/bots/twitch/sogebot/README.md @@ -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 !!! diff --git a/bots/twitch/sogebot/egg-soge-bot.json b/bots/twitch/sogebot/egg-soge-bot.json new file mode 100644 index 00000000..add0719b --- /dev/null +++ b/bots/twitch/sogebot/egg-soge-bot.json @@ -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 < \/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 < \/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 < \/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" + } + ] +} \ No newline at end of file diff --git a/conan_exiles/conan_exiles/egg-conan-exiles.json b/conan_exiles/conan_exiles/egg-conan-exiles.json deleted file mode 100644 index d0ddf3c0..00000000 --- a/conan_exiles/conan_exiles/egg-conan-exiles.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-12-25T20:34:11-05:00", - "name": "Conan Exiles", - "author": "brycea@rapidnetworks.org", - "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", - "startup": "wine ConanSandboxServer.exe -log", - "config": { - "files": "{}", - "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 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", - "container": "ubuntu:18.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Game ID", - "description": "The ID corresponding to the game to download.", - "env_variable": "APPID", - "default_value": "443030", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|numeric|digits_between:1,6" - } - ] -} \ No newline at end of file diff --git a/database/README.md b/database/README.md new file mode 100644 index 00000000..a8b5ed95 --- /dev/null +++ b/database/README.md @@ -0,0 +1,13 @@ +# databases + +## SQL Databases +### [mariadb](/mariadb/) + https://mariadb.org/ + +### [postgres](/postgres/) + https://www.postgresql.org/ + + +## In-Memory Databases +### [redis](/redis/) + https://redis.io/ \ No newline at end of file diff --git a/database/redis/redis-5/README.md b/database/redis/redis-5/README.md new file mode 100644 index 00000000..4c89fc87 --- /dev/null +++ b/database/redis/redis-5/README.md @@ -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 | diff --git a/database/redis/redis-5/egg-redis.json b/database/redis/redis-5/egg-redis.json new file mode 100644 index 00000000..6ac93d66 --- /dev/null +++ b/database/redis/redis-5/egg-redis.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-04T11:05:29-05:00", + "name": "Redis", + "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", + "startup": "redis-server --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": "exit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Redis Installation Script\r\n#\r\n# Server Files: \/mnt\/server\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" + } + ] +} \ No newline at end of file diff --git a/database/redis/redis-6/README.md b/database/redis/redis-6/README.md new file mode 100644 index 00000000..4c89fc87 --- /dev/null +++ b/database/redis/redis-6/README.md @@ -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 | diff --git a/database/redis/redis-6/egg-redis-6.json b/database/redis/redis-6/egg-redis-6.json new file mode 100644 index 00000000..4e360ed6 --- /dev/null +++ b/database/redis/redis-6/egg-redis-6.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/database/sql/mariadb/README.md b/database/sql/mariadb/README.md new file mode 100644 index 00000000..10acde47 --- /dev/null +++ b/database/sql/mariadb/README.md @@ -0,0 +1,17 @@ +# MariaDB +### From their [Website](https://mariadb.org/) +One of the most popular database servers. Made by the original developers of MySQL. +Guaranteed to stay open source. + +### Minimum RAM warning +There is no actual minimum suggested for MariaDB. + +See here https://mariadb.com/kb/en/library/mariadb-hardware-requirements/ + + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Server | 3306 | diff --git a/database/sql/mariadb/egg-maria-d-b.json b/database/sql/mariadb/egg-maria-d-b.json new file mode 100644 index 00000000..fb03ff41 --- /dev/null +++ b/database/sql/mariadb/egg-maria-d-b.json @@ -0,0 +1,26 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-11-06T18:52:33-05:00", + "name": "MariaDB", + "author": "parker@parkervcp.com", + "description": "One of the most popular database servers. Made by the original developers of MySQL. Guaranteed to stay open source.", + "image": "quay.io\/parkervcp\/pterodactyl-images:db_mariadb", + "startup": "{ \/usr\/sbin\/mysqld & } && sleep 5 && mysql -u root", + "config": { + "files": "{\r\n \".my.cnf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port = {{server.build.default.port}}\",\r\n \"bind-address\": \"bind-address=0.0.0.0\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"mysqld: ready for connections\"\r\n}", + "logs": "{}", + "stop": "shutdown; exit;" + }, + "scripts": { + "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\/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", + "entrypoint": "bash" + } + }, + "variables": [] +} diff --git a/database/sql/mariadb/install.my.cnf b/database/sql/mariadb/install.my.cnf new file mode 100644 index 00000000..d921db17 --- /dev/null +++ b/database/sql/mariadb/install.my.cnf @@ -0,0 +1,189 @@ +# MariaDB database server configuration file. +# +# You can copy this file to one of: +# - "/etc/mysql/my.cnf" to set global options, +# - "~/.my.cnf" to set user-specific options. +# +# One can use all long options that the program supports. +# Run program with --help to get a list of available options and with +# --print-defaults to see which it would actually understand and use. +# +# For explanations see +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html + +# This will be passed to all mysql clients +# It has been reported that passwords should be enclosed with ticks/quotes +# escpecially if they contain "#" chars... +# Remember to edit /etc/mysql/debian.cnf when changing the socket location. +[client] +port = 3306 +socket = /mnt/server/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +# This was formally known as [safe_mysqld]. Both versions are currently parsed. +[mysqld_safe] +socket = /mnt/server/run/mysqld/mysqld.sock +nice = 0 + +[mysqld] +# +# * Basic Settings +# +#user = mysql +pid-file = /mnt/server/run/mysqld/mysqld.pid +socket = /mnt/server/run/mysqld/mysqld.sock +port = 3306 +basedir = /usr +datadir = /mnt/server/mysql +tmpdir = /tmp +lc_messages_dir = /usr/share/mysql +lc_messages = en_US +skip-external-locking +# +# Instead of skip-networking the default is now to listen only on +# localhost which is more compatible and is not less secure. +# +# * Fine Tuning +# +max_connections = 100 +connect_timeout = 5 +wait_timeout = 600 +max_allowed_packet = 16M +thread_cache_size = 128 +sort_buffer_size = 4M +bulk_insert_buffer_size = 16M +tmp_table_size = 32M +max_heap_table_size = 32M +# +# * MyISAM +# +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched. On error, make copy and try a repair. +myisam_recover_options = BACKUP +key_buffer_size = 128M +#open-files-limit = 2000 +table_open_cache = 400 +myisam_sort_buffer_size = 512M +concurrent_insert = 2 +read_buffer_size = 2M +read_rnd_buffer_size = 1M +# +# * Query Cache Configuration +# +# Cache only tiny result sets, so we can fit more in the query cache. +query_cache_limit = 128K +query_cache_size = 64M +# for more write intensive setups, set to DEMAND or OFF +#query_cache_type = DEMAND +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +general_log_file = /mnt/server/log/mysql/mysql.log +#general_log = 1 +# +# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. +# +# we do want to know about network errors and such +#log_warnings = 2 +# +# Enable the slow query log to see queries with especially long duration +#slow_query_log[={0|1}] +slow_query_log_file = /mnt/server/log/mysql/mariadb-slow.log +long_query_time = 10 +#log_slow_rate_limit = 1000 +#log_slow_verbosity = query_plan + +#log-queries-not-using-indexes +#log_slow_admin_statements +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#report_host = master1 +#auto_increment_increment = 2 +#auto_increment_offset = 1 +#log_bin = /var/log/mysql/mariadb-bin +#log_bin_index = /var/log/mysql/mariadb-bin.index +# not fab for performance, but safer +#sync_binlog = 1 +expire_logs_days = 10 +max_binlog_size = 100M +# slaves +#relay_log = /var/log/mysql/relay-bin +#relay_log_index = /var/log/mysql/relay-bin.index +#relay_log_info_file = /var/log/mysql/relay-bin.info +#log_slave_updates +#read_only +# +# If applications support it, this stricter sql_mode prevents some +# mistakes like inserting invalid dates etc. +#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +default_storage_engine = InnoDB +# you can't just change log file size, requires special procedure +#innodb_log_file_size = 50M +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_file_per_table = 1 +innodb_open_files = 400 +innodb_io_capacity = 400 +innodb_flush_method = O_DIRECT +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem + +# +# * Galera-related settings +# +[galera] +# Mandatory settings +#wsrep_on=ON +#wsrep_provider= +#wsrep_cluster_address= +#binlog_format=row +#default_storage_engine=InnoDB +#innodb_autoinc_lock_mode=2 +# +# Allow server to accept connections on all interfaces. +# +bind-address=0.0.0.0 +# +# Optional setting +#wsrep_slave_threads=1 +#innodb_flush_log_at_trx_commit=0 + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completion + +[isamchk] +key_buffer = 16M + +# +# * IMPORTANT: Additional settings that can override those from this file! +# The files must end with '.cnf', otherwise they'll be ignored. +# +!include /etc/mysql/mariadb.cnf +!includedir /etc/mysql/conf.d/ diff --git a/database/sql/mariadb/my.cnf b/database/sql/mariadb/my.cnf new file mode 100644 index 00000000..37ff3163 --- /dev/null +++ b/database/sql/mariadb/my.cnf @@ -0,0 +1,190 @@ +# MariaDB database server configuration file. +# +# You can copy this file to one of: +# - "/etc/mysql/my.cnf" to set global options, +# - "~/.my.cnf" to set user-specific options. +# +# One can use all long options that the program supports. +# Run program with --help to get a list of available options and with +# --print-defaults to see which it would actually understand and use. +# +# For explanations see +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html + +# This will be passed to all mysql clients +# It has been reported that passwords should be enclosed with ticks/quotes +# escpecially if they contain "#" chars... +# Remember to edit /etc/mysql/debian.cnf when changing the socket location. +[client] +port = 3306 +socket = /home/container/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +# This was formally known as [safe_mysqld]. Both versions are currently parsed. +[mysqld_safe] +socket = /home/container/run/mysqld/mysqld.sock +nice = 0 + +[mysqld] +# +# * Basic Settings +# +#user = mysql +pid-file = /home/container/run/mysqld/mysqld.pid +socket = /home/container/run/mysqld/mysqld.sock +port = 3306 +basedir = /usr +datadir = /home/container/mysql +tmpdir = /tmp +lc_messages_dir = /usr/share/mysql +lc_messages = en_US +skip-external-locking +# +# Instead of skip-networking the default is now to listen only on +# localhost which is more compatible and is not less secure. +bind-address=0.0.0.0 +# +# * Fine Tuning +# +max_connections = 100 +connect_timeout = 5 +wait_timeout = 600 +max_allowed_packet = 16M +thread_cache_size = 128 +sort_buffer_size = 4M +bulk_insert_buffer_size = 16M +tmp_table_size = 32M +max_heap_table_size = 32M +# +# * MyISAM +# +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched. On error, make copy and try a repair. +myisam_recover_options = BACKUP +key_buffer_size = 128M +#open-files-limit = 2000 +table_open_cache = 400 +myisam_sort_buffer_size = 512M +concurrent_insert = 2 +read_buffer_size = 2M +read_rnd_buffer_size = 1M +# +# * Query Cache Configuration +# +# Cache only tiny result sets, so we can fit more in the query cache. +query_cache_limit = 128K +query_cache_size = 64M +# for more write intensive setups, set to DEMAND or OFF +#query_cache_type = DEMAND +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +general_log_file = /home/container/log/mysql/mysql.log +#general_log = 1 +# +# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. +# +# we do want to know about network errors and such +#log_warnings = 2 +# +# Enable the slow query log to see queries with especially long duration +#slow_query_log[={0|1}] +slow_query_log_file = /home/container/log/mysql/mariadb-slow.log +long_query_time = 10 +#log_slow_rate_limit = 1000 +#log_slow_verbosity = query_plan + +#log-queries-not-using-indexes +#log_slow_admin_statements +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#report_host = master1 +#auto_increment_increment = 2 +#auto_increment_offset = 1 +#log_bin = /var/log/mysql/mariadb-bin +#log_bin_index = /var/log/mysql/mariadb-bin.index +# not fab for performance, but safer +#sync_binlog = 1 +expire_logs_days = 10 +max_binlog_size = 100M +# slaves +#relay_log = /var/log/mysql/relay-bin +#relay_log_index = /var/log/mysql/relay-bin.index +#relay_log_info_file = /var/log/mysql/relay-bin.info +#log_slave_updates +#read_only +# +# If applications support it, this stricter sql_mode prevents some +# mistakes like inserting invalid dates etc. +#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +default_storage_engine = InnoDB +# you can't just change log file size, requires special procedure +#innodb_log_file_size = 50M +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_file_per_table = 1 +innodb_open_files = 400 +innodb_io_capacity = 400 +innodb_flush_method = O_DIRECT +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem + +# +# * Galera-related settings +# +[galera] +# Mandatory settings +#wsrep_on=ON +#wsrep_provider= +#wsrep_cluster_address= +#binlog_format=row +#default_storage_engine=InnoDB +#innodb_autoinc_lock_mode=2 +# +# Allow server to accept connections on all interfaces. +# +bind-address=0.0.0.0 +# +# Optional setting +#wsrep_slave_threads=1 +#innodb_flush_log_at_trx_commit=0 + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completion + +[isamchk] +key_buffer = 16M + +# +# * IMPORTANT: Additional settings that can override those from this file! +# The files must end with '.cnf', otherwise they'll be ignored. +# +!include /etc/mysql/mariadb.cnf +!includedir /etc/mysql/conf.d/ diff --git a/database/sql/postgres/README.md b/database/sql/postgres/README.md new file mode 100644 index 00000000..68feb186 --- /dev/null +++ b/database/sql/postgres/README.md @@ -0,0 +1,16 @@ +# PostgreSQL +### From their [Website](https://www.postgresql.org/) +The World's Most Advanced Open Source Relational Database + +### Minimum RAM warning +2 Gigabytes minimum recommended + +See here https://www.commandprompt.com/blog/postgresql_mininum_requirements/ + + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Server | 5432 | diff --git a/database/sql/postgres/egg-postgres.json b/database/sql/postgres/egg-postgres.json new file mode 100644 index 00000000..59368cf9 --- /dev/null +++ b/database/sql/postgres/egg-postgres.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-04T09:53:34-05:00", + "name": "Postgres", + "author": "parker@parkervcp.com", + "description": "A default Postgres install that is not really editable.", + "image": "quay.io\/parkervcp\/pterodactyl-images:db_postgres", + "startup": "postgres -D \/home\/container\/postgres_db\/", + "config": { + "files": "{\r\n \"postgres_db\/postgresql.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n\t\t \"#port =\": \"port = {{server.build.default.port}}\",\r\n \"#external_pid_file =\": \"external_pid_file = '\/home\/container\/postgres_db\/run\/postgres.pid'\",\r\n \"#unix_socket_directories =\": \"unix_socket_directories = '\/home\/container\/postgres_db\/run\/'\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"database system is ready to accept connections\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#! \/bin\/ash\r\nadduser -D -h \/home\/container container\r\n\r\necho $POSTGRES_PASSWORD > .passwd\r\n\r\nchown -R container: \/mnt\/server\/\r\n\r\ncat .passwd\r\n\r\nsu container -c 'initdb -D \/mnt\/server\/postgres_db\/ -A md5 -U container --pwfile .passwd'\r\n\r\nmkdir -p \/mnt\/server\/postgres_db\/run\/\r\n\r\necho -e \"Done\"", + "container": "postgres:12.2-alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Database Password", + "description": "The Postgres user password that can be changed and should change on server restart.", + "env_variable": "PGPASSWORD", + "default_value": "P@55word", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "SuperUser Password", + "description": "The postgres super user password with a strong default.\r\nYou should be generating new ones for each server.\r\nIf you don't then users can hit other users DB's", + "env_variable": "PGROOT", + "default_value": "ZPWgpMN4hETqjXAV", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Postgres User", + "description": "The user for the postgres database", + "env_variable": "PGUSER", + "default_value": "pterodactyl", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Postgres Database", + "description": "The postgres databas the user will have access too.", + "env_variable": "PGDATABASE", + "default_value": "pterodactyl", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/database/postgres/postgres.conf b/database/sql/postgres/postgres.conf similarity index 100% rename from database/postgres/postgres.conf rename to database/sql/postgres/postgres.conf diff --git a/dont_starve/dont_starve/egg-don-t-starve.json b/dont_starve/dont_starve/egg-don-t-starve.json deleted file mode 100644 index e5c44d3f..00000000 --- a/dont_starve/dont_starve/egg-don-t-starve.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-10-06T20:21:42-04:00", - "name": "Don't Starve", - "author": "parker@parkervcp.com", - "description": "Don\u2019t Starve is an uncompromising wilderness survival game full of science and magic.", - "image": "quay.io\/parkervcp\/pterodactyl-images: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}}'", - "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID\",\r\n \"userInteraction\": []\r\n}", - "logs": "{}", - "stop": "^C" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n# Don't Starve 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 \/mnt\/server\/logs\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 343050 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\nmkdir -p ~\/DoNotStarveTogether\/config\/server\/\r\necho \"${SERVER_TOKEN}\" >> ~\/DoNotStarveTogether\/config\/server\/cluster_token.txt", - "container": "ubuntu:18.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "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.", - "env_variable": "MAX_PLAYERS", - "default_value": "4", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|integer|between:1,31" - }, - { - "name": "Server Token", - "description": "Required to run a public server. This needs to be generated from in game.", - "env_variable": "SERVER_TOKEN", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:64" - } - ] -} \ No newline at end of file diff --git a/enemy_territory/etlegacy/README.md b/enemy_territory/etlegacy/README.md index 7330b1f4..43b83406 100644 --- a/enemy_territory/etlegacy/README.md +++ b/enemy_territory/etlegacy/README.md @@ -10,7 +10,7 @@ and transmitting confidential documents, it was time to dust off the game which Enemy Territory: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible. We do appreciate any contribution to the project such as patches, suggestions or comments. -Make sure to checkout their [Home Page]([https://factorio.com/starter-page](https://www.etlegacy.com/)). +Make sure to checkout their [Home Page](https://www.etlegacy.com/). ### Server Ports ET: Legacy requires a single port diff --git a/etlegacy/etlegacy/README.md b/etlegacy/etlegacy/README.md deleted file mode 100644 index 38a65ea8..00000000 --- a/etlegacy/etlegacy/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# ET: Legacy - -#### The ET: Legacy Server - - -#### from the developers - -Wolfenstein: Enemy Territory is a free multiplayer first-person shooter. Set during World War II and heavily focused on team work, it was initially released in 2003 by Splash Damage and id Software. More than a decade after its release, after spending countless hours of escorting tanks and trucks, stealing gold and radar parts -and transmitting confidential documents, it was time to dust off the game which consistently refused to go own. - -Enemy Territory: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible. We do appreciate any contribution to the project such as patches, suggestions or comments. - -Make sure to checkout their [Home Page]([https://factorio.com/starter-page](https://www.etlegacy.com/)). - -### Server Ports -ET: Legacy requires a single port - -| Port | default | -|---------|---------| -| Game | 27960 | \ No newline at end of file diff --git a/etlegacy/etlegacy/egg-e-t-legacy.json b/etlegacy/etlegacy/egg-e-t-legacy.json deleted file mode 100644 index 0f5dc4cc..00000000 --- a/etlegacy/etlegacy/egg-e-t-legacy.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2019-04-29T22:08:18+08:00", - "name": "ET Legacy", - "author": "parker@parkervcp.com", - "description": "Welcome to Enemy Territory: Legacy, an open source project that aims to create a fully compatible client and server for the popular online FPS game Wolfenstein: Enemy Territory - whose gameplay is still considered unmatched by many, despite its great age.", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", - "startup": ".\/etlded +set net_port {{SERVER_PORT}} +map {{MAP}}", - "config": { - "files": "{\r\n \"etmain\/etl_server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"\/\/set net_ip \\\"\\\"\": \"set net_ip \\\"0.0.0.0\\\"\",\r\n \"\/\/set net_port \\\"27960\\\"\": \"set net_port \\\"{{server.build.env.SERVER_PORT}}\\\"\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"------ Server Initialization ------\",\r\n \"userInteraction\": []\r\n}", - "logs": "{}", - "stop": "quit" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get -y install wget curl zip unzip\r\n\r\ncd \/tmp\/\r\n\r\necho \"Downloading $ET_VERSION bit ET Legacy version\"\r\n\r\nif [ $ET_VERSION == \"32\" ];then \r\n wget `curl https:\/\/www.etlegacy.com\/download | grep \"Linux 32-bit bin\" | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+'` -O etlegacy.tar.gz\r\nelse\r\n wget `curl https:\/\/www.etlegacy.com\/download | grep \"Linux 64-bit bin\" | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+'` -O etlegacy.tar.gz\r\nfi\r\n\r\necho \"Unpacking ET: Legacy\"\r\ntar --strip-components=1 -xzvf etlegacy.tar.gz -C \/mnt\/server\/\r\n\r\necho \"Downloading latest enemy territory files\"\r\nwget `curl https:\/\/www.splashdamage.com\/games\/wolfenstein-enemy-territory\/ | grep .x86_full | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo --color=never '(http|https):\/\/[^\"]+'` -O enemy_territory.zip\r\n\r\necho \"Unpacking enemy territory files\"\r\nunzip enemy_territory.zip\r\n\r\necho \"Copying enemy territory assets\"\r\n.\/*.x86_keygen_V03.run --tar xvf .\/etmain\/\r\ncp etmain\/pak*.pk3 \/mnt\/server\/etmain\/\r\n\r\n# Create .etlegacy as the server doesn't correctly create it\r\nmkdir -p \/mnt\/server\/.etlegacy", - "container": "ubuntu:18.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "ET Legacy Version", - "description": "What version of the server to install. 32 or 64 bit version.", - "env_variable": "ET_VERSION", - "default_value": "32", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|integer|in:32, 64" - }, - { - "name": "Default Map", - "description": "The default map to use when starting the server.", - "env_variable": "MAP", - "default_value": "oasis", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - } - ] -} diff --git a/factorio/factorio/egg-factorio.json b/factorio/factorio/egg-factorio.json index e5017803..a3462ccc 100644 --- a/factorio/factorio/egg-factorio.json +++ b/factorio/factorio/egg-factorio.json @@ -3,23 +3,23 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-02-26T21:01:31-05:00", + "exported_at": "2020-06-26T12:55:32-04:00", "name": "Factorio", "author": "parker@parkervcp.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", "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 \"game_password\": \"{{server.build.env.SERVER_PASS}}\",\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}", "startup": "{\r\n \"done\": \"Hosting game at\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"factorio-current.log\"\r\n}", "stop": "\/quit" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl tar xz 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", - "container": "frolvlad\/alpine-glibc", - "entrypoint": "ash" + "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": "debian:buster-slim", + "entrypoint": "bash" } }, "variables": [ @@ -112,15 +112,6 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|numeric|digits_between:1,3" - }, - { - "name": "Server Password", - "description": "Password to join the server, \"\" is none", - "env_variable": "SERVER_PASS", - "default_value": "\"\"", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|string|max:30" } ] -} +} \ No newline at end of file diff --git a/gta/README.md b/gta/README.md index 0106aa42..64bdd40e 100644 --- a/gta/README.md +++ b/gta/README.md @@ -5,9 +5,12 @@ [FiveM](https://fivem.net/) FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers. -[Rage MP](https://rage.mp/?) +[Rage MP](https://rage.mp/) RAGE Multiplayer is an multiplayer modification for Grand Theft Auto V that is alternative to GTA Online. +[alt:V](https://altv.mp) +alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V + ## San Andreas [GTA SA:MP](https://www.sa-mp.com/) diff --git a/gta/altv/README.md b/gta/altv/README.md new file mode 100644 index 00000000..dddd7a36 --- /dev/null +++ b/gta/altv/README.md @@ -0,0 +1,11 @@ +# alt:v + +### From the [alt:V](https://altv.mp) Site +alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V. + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 7788 | diff --git a/gta/altv/egg-alt--v.json b/gta/altv/egg-alt--v.json new file mode 100644 index 00000000..eb30f47e --- /dev/null +++ b/gta/altv/egg-alt--v.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-02-19T21:48:36-05:00", + "name": "alt:V", + "author": "parker@parkervcp.com", + "description": "alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V", + "image": "quay.io/parkervcp/pterodactyl-images:debian_dotnet", + "startup": "sleep 2 && ./altv-server", + "config": { + "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"host:\": \"host: 0.0.0.0\",\r\n \"port:\": \"port: {{server.build.default.port}}\",\r\n \"password:\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"description:\": \"description: {{server.build.env.SERVER_DESC}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server started\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!/bin/bash\r\n# AltV Install Script\r\n#\r\n# Server Files: /mnt/server\r\n# BUILD=stable ## this should be an egg variable.\r\nBASE_URL=\"https://cdn.altv.mp/\" ## Where the files are stored.\r\n\r\n## install required dependancies.\r\nfunction install_deps () {\r\n apt update\r\n apt install -y libatomic1 zip unzip jq curl wget\r\n echo -e \"deps installed\"\r\n echo -e\r\n}\r\n\r\n## check the has on files and compare to a remote source.\r\n## usage 'check_hash \"file\" \"remote_hash_source\"'\r\nfunction check_hash () {\r\n echo -e \"Checking for file ${1}\"\r\n echo -e \"running: curl -sSL ${2} | jq -r --arg FILENAME \\\"${3}\\\" '.hashList | .[\\$FILENAME]'\"\r\n hash=$(curl -sSL ${2} | jq -r --arg FILENAME ${3} '.hashList | .[$FILENAME]')\r\n echo -e \"hash: $hash\"\r\n\r\n if [ -f ${2} ]; then\r\n\r\n echo -e \"hash is $(sha1sum ${1} | awk '{ print $1 }')\"\r\n echo -e \"current has is ${hash}\"\r\n\r\n if [ \"$(sha1sum ${2} | awk '{ print $1 }')\" == \"${hash}\" ]; then\r\n echo -e \"Hash matched\"\r\n echo -e \"No need to download new file.\"\r\n return 0\r\n else\r\n echo -e \"Hash didn't match\"\r\n echo -e \"Need to download the correct version\"\r\n return 1\r\n fi\r\n else\r\n echo \"No file found\"\r\n return 1\r\n fi\r\n}\r\n\r\n## makes sure a download link is valid.\r\nfunction validate_download () {\r\n DOWNLOAD_URL=${1}\r\n\r\n echo -e \"Download url is ${DOWNLOAD_URL}\"\r\n\r\n if [ ! -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\n fi\r\n\r\n}\r\n\r\nfunction download_files () {\r\n ## validate download link and get files\r\n validate_download ${1}\r\n echo -e \"running wget ${DOWNLOAD_URL} -O ${2}\"\r\n wget ${DOWNLOAD_URL} -O ${2}\r\n}\r\n\r\n## This is a file array for files to get downloaded.\r\n## They are all comma separated lists.\r\n## remote folder (0), json file with hashes (1), file name in json file (2), file name (3), file folder (4), extra commands (5)\r\nfile_array=( \\\r\n\"server/${BUILD}/x64_linux/\",\"update.json\",\"altv-server\",\"altv-server\",/mnt/server/,execute \\\r\n\"server/${BUILD}/x64_linux/\",\"update.json\",\"data/vehmodels.bin\",\"vehmodels.bin\",/mnt/server/data/ \\\r\n\"server/${BUILD}/x64_linux/\",\"update.json\",\"data/vehmods.bin\",\"vehmods.bin\",/mnt/server/data/ \\\r\n\"others/\",,\"server.cfg\",server.cfg,/mnt/server/ \\\r\n\"node-module/${BUILD}/x64_linux/\",\"update.json\",\"libnode.so.72\",\"libnode.so.72\",/mnt/server/ \\\r\n\"node-module/${BUILD}/x64_linux/\",\"update.json\",\"modules/libnode-module.so\",\"libnode-module.so\",/mnt/server/modules/ \\\r\n\"coreclr-module/${BUILD}/x64_linux/\",,\"AltV.Net.Host.dll\",\"AltV.Net.Host.dll\",/mnt/server/ \\\r\n\"coreclr-module/${BUILD}/x64_linux/\",,\"AltV.Net.Host.runtimeconfig.json\",\"AltV.Net.Host.runtimeconfig.json\",/mnt/server/ \\\r\n\"coreclr-module/stable/x64_linux/\",\"update.json\",\"modules/libcsharp-module.so\",\"libcsharp-module.so\",/mnt/server/modules/ \\\r\n\"samples/\",,\"resources.zip\",\"resources.zip\",/mnt/server/,unzip \\\r\n)\r\n\r\ninstall_deps\r\n\r\n## this goes through each value in the array and then checks the hash\r\nfor EACH in ${file_array[@]}\r\ndo\r\n ## this needs to be here to break apart the arrays.\r\n IFS=',' read -r -a array <<< \"$EACH\"\r\n\r\n if [ ! -z \"${array[1]}\" ]; then\r\n ## check hash on 'folder/file' with 'remote file base url/remote folder/ json file' 'json file name' \r\n if check_hash \"${array[4]}${array[3]}\" \"${BASE_URL}${array[0]}${array[1]}\" \"${array[2]}\"; then\r\n echo -e \"file up to date\"\r\n else\r\n echo -e \"downloading most recent file\"\r\n fi\r\n ## make the directory if it doesn't exist.\r\n if [ ! -d ${array[4]} ]; then\r\n mkdir ${array[4]}\r\n fi\r\n download_files \"${BASE_URL}${array[0]}${array[2]}\" \"${array[4]}${array[3]}\"\r\n else\r\n ## make the directory if it doesn't exist.\r\n if [ ! -d ${array[4]} ]; then\r\n mkdir ${array[4]}\r\n fi\r\n download_files \"${BASE_URL}${array[0]}${array[2]}\" \"${array[4]}${array[3]}\"\r\n fi\r\n\r\n ## run extra commands if needed.\r\n case ${array[5]} in\r\n unzip)\r\n cd ${array[4]}\r\n unzip -o ${array[3]}\r\n rm ${array[3]}\r\n ;;\r\n execute)\r\n chmod +x ${array[4]}${array[3]}\r\n ;;\r\n esac\r\n\r\n# echo -e \"HashFile: ${BASE_URL}${array[0]}${array[1]}\"\r\n# echo -e \"Download URL ${BASE_URL}${array[0]}${array[2]}\"\r\n# echo -e \"Filename ${array[3]}\"\r\n# echo -e \"File Folder ${array[4]}\"\r\n# echo -e \"commands to run ${array[5]}\"\r\n# echo -e\r\ndone\r\n\r\necho -e \"install complete\"", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "ld lib path", + "description": "Needed to load modules correctly.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Which alt:V build to download", + "description": "The supported versions are release, rc, dev (default: release).\r\n\r\nIf you don't know what you are doing leave it on stable", + "env_variable": "BUILD", + "default_value": "release", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Server Password", + "description": "The password to join the server", + "env_variable": "PASSWORD", + "default_value": "ChangeMe", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|min:6" + }, + { + "name": "Server Description", + "description": "Description for the server.", + "env_variable": "SERVER_DESC", + "default_value": "A Pterodactyl Hosted Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + } + ] +} diff --git a/gta/fivem/README.md b/gta/fivem/README.md index a90c6d7e..43a1206c 100644 --- a/gta/fivem/README.md +++ b/gta/fivem/README.md @@ -1,15 +1,28 @@ # FiveM - -### From the [FiveM](https://fivem.net/) Site +## 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. -### Install notes -- Only installs latest version versions are not selectable. +# Notice +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. | Port | default | |---------|---------| -| Game | 30210 | -| Game+1 | 30211 | +| Game | 30110 | +| Game+1 | 30120 | +| txAdmin | 40120 | \ No newline at end of file diff --git a/gta/fivem/egg-five-m.json b/gta/fivem/egg-five-m.json index 1ecddd69..5e254dad 100644 --- a/gta/fivem/egg-five-m.json +++ b/gta/fivem/egg-five-m.json @@ -3,23 +3,23 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-02-20T16:46:04-05:00", + "exported_at": "2020-06-24T18:49:06-04:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", - "image": "quay.io\/parkervcp\/pterodactyl-images: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 sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg", + "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}} +set serverProfile default +set txAdminPort {{TXADMIN_PORT}} $( [ \"$TXADMIN_ENABLE\" == \"1\" ] || printf %s '+exec server.cfg' )", "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}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/ash \r\n\r\napk add openssl tar xz curl wget git --no-cache\r\n\r\ncd \/mnt\/server\r\n\r\nmkdir resources\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\ncd \/mnt\/server\r\n\r\necho \"Downloading the latest fivem server files\"\r\nlatest_fivem_url=`curl https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/ | grep -Eo 'href=\".*\/\"' | grep -Eo '\".*\"' | grep -Eo 'href=\".*\/\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g'`\r\n\r\necho -e \"pulling files from https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${latest_fivem_url}fx.tar.xz\"\r\nwget https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${latest_fivem_url}fx.tar.xz\r\n\r\necho \"Extracting fivem files\"\r\n\r\ntar xf fx.tar.xz\r\n\r\nrm -rf fx.tar.xz 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.9", - "entrypoint": "ash" + "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": "debian:buster-slim", + "entrypoint": "bash" } }, "variables": [ @@ -49,6 +49,51 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|string" + }, + { + "name": "fivem version", + "description": "The fivem version that is to be installed.\r\n\r\nan example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "env_variable": "FIVEM_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:50" + }, + { + "name": "Download Link", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", + "env_variable": "DOWNLOAD_URL", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "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" } ] } \ No newline at end of file diff --git a/gta/fivem/server.cfg b/gta/fivem/server.cfg index 61fe35c2..0845cf8f 100644 --- a/gta/fivem/server.cfg +++ b/gta/fivem/server.cfg @@ -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_udp "0.0.0.0:30120" -start mapmanager -start chat -start spawnmanager -start sessionmanager -start fivem -start hardcap -start rconlog -start scoreboard -start playernames +# Set your server's hostname +sv_hostname "New FiveM Server with Pterodactyl" -# allow client mods such as Lamda Menu? -sv_scriptHookAllowed 1 +# Server player slot limit (must be between 1 and 32, unless using OneSync) +sv_maxclients 32 -# change this -#rcon_password yay +# Steam Web API key, if you want to use Steam authentication (https://steamcommunity.com/dev/apikey) +# -> replace "" with the key +set steam_webApiKey "" -# a comma-separated list of tags for your server -# for example: sets tags "drifting, cars, racing" or sets tags "roleplay, military, tanks" +# License key for your server (https://keymaster.fivem.net) +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" -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! -#exec server_internal.cfg +# Set an optional server info and connecting banner image url. +# 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 -# convars for use from script -set temp_convar "hey world!" +# convars which can be used in scripts +#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 "" -# want to only allow players authenticated with a third-party provider like Steam (don't forget, Social Club is a third party provider too!)? -#sv_authMaxVariance 1 -#sv_authMinTrust 5 - -# add system admins +# Add system admins add_ace group.admin command allow # allow all commands 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 -#sv_endpointprivacy true +# Hide player endpoints in external log output. +sv_endpointprivacy true -# server slots limit (must be between 1 and 32) -sv_maxclients 32 \ No newline at end of file +# enable OneSync with default configuration (required for server-side state awareness) +onesync_enabled true diff --git a/gta/ragemp/egg-rage--m-p.json b/gta/ragemp/egg-rage--m-p.json index 4e9b11bc..6ce7769b 100644 --- a/gta/ragemp/egg-rage--m-p.json +++ b/gta/ragemp/egg-rage--m-p.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-11-18T22:56:21-05:00", + "exported_at": "2020-04-22T09:18:34-04:00", "name": "Rage.MP", "author": "noreply.waypointhosting@gmail.com", - "description": "https:\/\/rage.mp\/\r\n\r\nThis server requires 2 ports to be added for the server. the main port and the next (port+1) as ports for the server.", - "image": "quay.io\/pterodactyl\/core:glibc", + "description": "https:\/\/rage.mp\/\r\n\r\nModified to work with the latest version of RAGE:MP\r\nWill automatically install linux bridge.\r\n**This server requires 2 ports to be added for the server. the main port and the next (port+1) as ports for the server.", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", "startup": ".\/server", "config": { "files": "{\r\n \"conf.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"announce\": \"{{server.build.env.ANNOUNCE}}\"\r\n }\r\n }\r\n}", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "apt update\r\napt -y install curl tar libstdc++6\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o ragemp-srv.tar.gz https:\/\/cdn.rage.mp\/lin\/ragemp-srv.tar.gz\r\n\r\ntar -xzvf ragemp-srv.tar.gz --strip 1 -C \/mnt\/server\r\n\r\nrm ragemp-srv.tar.gz\r\n\r\nchmod +x .\/server\r\n\r\nif [ -e conf.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default rage.mp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0", - "container": "ubuntu:16.04", + "script": "apt update\r\napt -y install curl tar\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o ragemp-srv-037.tar.gz https:\/\/cdn.rage.mp\/lin\/ragemp-srv-037.tar.gz\r\ncurl -sSL -o bridge-linux-037.tar.gz https:\/\/cdn.rage.mp\/lin\/bridge-linux-037.tar.gz\r\n\r\ntar -xzvf ragemp-srv-037.tar.gz --strip 1 -C \/mnt\/server\r\ntar -xzvf bridge-linux-037.tar.gz --strip 1 -C \/mnt\/server\r\n\r\nrm ragemp-srv-037.tar.gz\r\nrm bridge-linux-037.tar.gz\r\n\r\nchmod +x .\/server\r\n\r\nif [ -e conf.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default rage.mp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0", + "container": "debian:stable-slim", "entrypoint": "bash" } }, @@ -43,9 +43,9 @@ }, { "name": "Announce", - "description": "Announce to the master server so people can see you in their server browser.", + "description": "Announce to the master server so people can see you in their server browser.\r\n\r\nThis needs to be a 0 (false) or 1 (true) due to weird boolean parsing.", "env_variable": "ANNOUNCE", - "default_value": "true", + "default_value": "0", "user_viewable": 1, "user_editable": 1, "rules": "required|boolean" diff --git a/gta/samp/egg-sa-mp.json b/gta/samp/egg-s-a--m-p.json similarity index 93% rename from gta/samp/egg-sa-mp.json rename to gta/samp/egg-s-a--m-p.json index a3ff2f6b..090a4511 100644 --- a/gta/samp/egg-sa-mp.json +++ b/gta/samp/egg-s-a--m-p.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-02-25T21:32:57+02:00", + "exported_at": "2019-07-21T20:35:32-04:00", "name": "SA-MP", "author": "bl4ckspr4y@protonmail.com", "description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).", - "image": "quay.io\/parkervcp\/pterodactyl-images:samp", + "image": "quay.io\/parkervcp\/pterodactyl-images:game_samp", "startup": ".\/samp03svr", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\"\r\n }\r\n }\r\n}", @@ -23,4 +23,4 @@ } }, "variables": [] -} +} \ No newline at end of file diff --git a/mindustry/README.md b/mindustry/README.md new file mode 100644 index 00000000..312bd1c7 --- /dev/null +++ b/mindustry/README.md @@ -0,0 +1,21 @@ +# Mindustry + +**PLEASE READ** +Due to Mindustry not accepting command line arguments you MUST set the port once you start the game, by using the command `port `. + +This only has to be done once. + +#### About the game + +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. Features include a map editor, 24 built-in maps, cross-platform multiplayer and large-scale PvP unit battles. + + +You can get it from [Steam](https://store.steampowered.com/app/1127400) + + +### Server Port +Mindustry requires a single port + +| Port | Default | +|---------|---------| +| Game | 6567 | diff --git a/mindustry/egg-mindustry.json b/mindustry/egg-mindustry.json new file mode 100644 index 00000000..36a5b676 --- /dev/null +++ b/mindustry/egg-mindustry.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-07-22T18:01:10+02:00", + "name": "Mindustry", + "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.", + "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}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Server loaded. \"\r\n}", + "logs": "{}", + "stop": "exit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\napt update\r\napt -y install curl jq wget\r\n\r\nGITHUB_PACKAGE=Anuken\/Mindustry\r\nMATCH=server-release.jar\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z ${DOWNLOAD_LINK} ]; then\r\n if [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\n else\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\n fi\r\n\r\n ## get release info and download links\r\n LATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\n RELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\n if [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq -r '.assets | .[].browser_download_url' | grep -i ${MATCH})\r\n else\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 ${MATCH})\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\n fi\r\nelse\r\n echo -e \"Checking supplied download link\"\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\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: wget ${DOWNLOAD_LINK}\"\r\nwget ${DOWNLOAD_LINK}", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Version", + "description": "The version to download. Example \"v96\" NOT \"4.0v96\" (default is latest)\r\n\r\nThis would also be the github tag for the release", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required" + }, + { + "name": "Server Name", + "description": "The server name that shows up in the server list\r\n\r\n(Default: Pterodactyl Testing Server)", + "env_variable": "SERVER_NAME", + "default_value": "A Pterodactyl Hosted Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Map Name", + "description": "Default Maps Available: Ancient Caldera, Fork, Fortress, Glacier, Islands, Labyrinth, Maze, Shattered, Tendrils, Triad, Veins, Wasteland.\r\n\r\n(Default: Tendrils)", + "env_variable": "MAPNAME", + "default_value": "Tendrils", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + } + ] +} diff --git a/minecraft/README.md b/minecraft/README.md new file mode 100644 index 00000000..06db4c0d --- /dev/null +++ b/minecraft/README.md @@ -0,0 +1,31 @@ +# Minecraft + +It’s a game about placing blocks and going on adventures + +It’s set in infinitely-generated worlds of wide open terrain - icy mountains, swampy bayous, vast pastures and much more - filled with secrets, wonders and peril! + +[Bedrock](/minecraft/bedrock/) Servers for Bedrock Minecraft (Windows 10, mobile, console) +* [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 diff --git a/minecraft_bedrock/README.md b/minecraft/bedrock/README.md similarity index 73% rename from minecraft_bedrock/README.md rename to minecraft/bedrock/README.md index 5dd20afa..62935699 100644 --- a/minecraft_bedrock/README.md +++ b/minecraft/bedrock/README.md @@ -4,6 +4,10 @@ [Minecraft Bedrock Server](https://minecraft.net/en-us/download/server/bedrock/) The official Minecraft Bedrock (Formerly Minecraft Pocket Edition) server. +#### DragonProxy +[DragonProxy Github](https://github.com/DragonetMC/DragonProxy) +A proxy to allow Minecraft: Bedrock clients to connect to Minecraft: Java Edition servers. + #### Nukkit [Nukkit GitHub](https://github.com/Nukkit/Nukkit) Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition diff --git a/minecraft_bedrock/bedrock/README.md b/minecraft/bedrock/bedrock/README.md similarity index 100% rename from minecraft_bedrock/bedrock/README.md rename to minecraft/bedrock/bedrock/README.md diff --git a/minecraft_bedrock/bedrock/egg-vanilla-bedrock.json b/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json similarity index 80% rename from minecraft_bedrock/bedrock/egg-vanilla-bedrock.json rename to minecraft/bedrock/bedrock/egg-vanilla-bedrock.json index 40274efd..919bfe71 100644 --- a/minecraft_bedrock/bedrock/egg-vanilla-bedrock.json +++ b/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-14T22:10:44-04:00", + "exported_at": "2019-07-11T16:09:28-04:00", "name": "Vanilla Bedrock", "author": "parker@parkervcp.com", "description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", "startup": ".\/bedrock_server", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n\r\napk add --no-cache zip unzip wget curl\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\r\n BEDROCK_ZIP=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/www.minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\n BEDROCK_ZIP=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\nfi\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\n\r\nwget ${DOWNLOAD_URL}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $BEDROCK_ZIP\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $BEDROCK_ZIP\r\n\r\necho -e \"Done\"", + "script": "#!\/bin\/ash\r\n\r\napk add --no-cache zip unzip wget curl\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\r\n BEDROCK_ZIP=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\n BEDROCK_ZIP=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\nfi\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\n\r\nwget ${DOWNLOAD_URL}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $BEDROCK_ZIP\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $BEDROCK_ZIP\r\n\r\necho -e \"Done\"", "container": "alpine:3.9", "entrypoint": "ash" } diff --git a/minecraft/bedrock/dragon_proxy/README.md b/minecraft/bedrock/dragon_proxy/README.md new file mode 100644 index 00000000..05889c65 --- /dev/null +++ b/minecraft/bedrock/dragon_proxy/README.md @@ -0,0 +1,15 @@ +# DragonProxy + +A proxy to allow Minecraft: Bedrock clients to connect to Minecraft: Java Edition servers. + +### Server Ports + +DragonProxy need 2 port (default 19132) + +| Port | default | +|---------|----------| +| Bind | 19132 | +| Remote | 25565 | + +### Known Issues +Also see the [DragonProxy Github](https://github.com/DragonetMC/DragonProxy) diff --git a/minecraft/bedrock/dragon_proxy/egg-dragon-proxy.json b/minecraft/bedrock/dragon_proxy/egg-dragon-proxy.json new file mode 100644 index 00000000..0dcfcd27 --- /dev/null +++ b/minecraft/bedrock/dragon_proxy/egg-dragon-proxy.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-20T12:13:53+02:00", + "name": "DragonProxy", + "author": "info@goover.de", + "description": "A proxy made to allow Minecraft: Bedrock Edition clients to connect to Minecraft: Java Edition servers.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar DragonProxy.jar", + "config": { + "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bind-port:\": \"bind-port: {{server.build.default.port}}\",\r\n \"max-players:\": \"max-players: {{server.build.env.MAX_PLAYERS}}\",\r\n \"remote-port:\": \"remote-port: {{server.build.env.RPORT}}\",\r\n \"remote-auth:\": \"remote-auth: {{server.build.env.REMOTE_AUTH}}\",\r\n \"xbox-auth:\": \"xbox-auth: {{server.build.env.XBOX_AUTH}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Done\",\r\n \"userInteraction\": []\r\n}", + "logs": "[]", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "apk update\r\napk --no-cache --update add curl jq wget\r\n\r\ncd \/mnt\/server\r\nrm -rf DragonProxy.jar\r\nwget https:\/\/ci.codemc.io\/job\/DragonetMC\/job\/DragonProxy\/lastBuild\/artifact\/bootstrap\/standalone\/target\/DragonProxy.jar\r\n\r\nrm -rf \/mnt\/server\/config.yml\r\ncat < \/mnt\/server\/config.yml\r\n# -----------------------------------------------\r\n# DragonProxy Configuration (25\/03\/20)\r\n# https:\/\/github.com\/DragonetMC\/DragonProxy\r\n# -----------------------------------------------\r\n# DO NOT CHANGE THIS VARIABLE!!!!!!\r\nconfig-version: 2\r\n# DO NOT CHANGE THIS VARIABLE!!!!!!\r\n\r\nlocale: 'EN'\r\n\r\n# The IP and port the proxy will listen for connections on\r\n# '0.0.0.0' will bind to all IP addresses available on your device\r\nbind-address: '0.0.0.0'\r\nbind-port: 19132\r\n\r\n# The MOTD that will be shown on the MCPE server list\r\nmotd: 'DragonProxy'\r\nmotd2: 'https:\/\/github.com\/DragonetMC\/DragonProxy'\r\n\r\n# The maximum amount of players that can join the proxy\r\nmax-players: 1\r\n\r\n# The IP and port of the remote server to connect to\r\nremote-address: '127.0.0.1'\r\nremote-port: 25565\r\n\r\n# The authentication method used for connecting to the remote server.\r\n# Accepted values:\r\n# credentials : This will display a form when you join the proxy asking you to enter your Mojang credentials\r\n# offline : No authentication, cant join premium servers such as Hypixel\r\nremote-auth: credentials\r\n\r\n# Whether or not Bedrock clients should be authenticated with xbox live\r\nxbox-auth: false\r\n\r\n# Whether or not to use the motd and player count of the primary remote server\r\nping-passthrough: true\r\n\r\n# Player gameplay related settings\r\nplayer-settings:\r\n # Whether or not to translate commands sent from the remote server and display\r\n # them on the Bedrock client. This is currently experimental.\r\n enable-commands: false\r\n\r\n # Whether or not to enable auto jump\r\n auto-jump: true\r\n\r\n # Whether or not to fetch skins from Mojang's servers\r\n fetch-skins: true\r\n\r\nmetrics:\r\n enabled: true\r\n # DO NOT CHANGE\r\n server-uuid: donotchange_serveruuid\r\n\r\n# The amount of threads that will be used.\r\n# Only change if you know what you are doing\r\nthread-pool-size: 8\r\nEOT", + "container": "openjdk:8-jre-alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Remote Port", + "description": "", + "env_variable": "RPORT", + "default_value": "25565", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Remote Auth", + "description": "The authentication method used for connecting to the remote server.\r\nAccepted values:\r\ncredentials : This will display a form when you join the proxy asking you to enter your Mojang credentials\r\noffline : No authentication, cant join premium servers such as Hypixel", + "env_variable": "REMOTE_AUTH", + "default_value": "credentials", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "XBox Auth", + "description": "Whether or not Bedrock clients should be authenticated with xbox live\r\n\r\nTRUE or FALSE", + "env_variable": "XBOX_AUTH", + "default_value": "false", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Max Players", + "description": "The maximum amount of players that can join the proxy", + "env_variable": "MAX_PLAYERS", + "default_value": "1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/minecraft_bedrock/nukkit/egg-nukkit.json b/minecraft/bedrock/nukkit/egg-nukkit.json similarity index 89% rename from minecraft_bedrock/nukkit/egg-nukkit.json rename to minecraft/bedrock/nukkit/egg-nukkit.json index 5dedc848..436e6632 100644 --- a/minecraft_bedrock/nukkit/egg-nukkit.json +++ b/minecraft/bedrock/nukkit/egg-nukkit.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-11-11T23:32:59-05:00", + "exported_at": "2019-11-02T22:11:25-04:00", "name": "Nukkit", "author": "parker@parkervcp.com", "description": "Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition\r\n\r\nhttps:\/\/nukkit.io\/", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/nukkit.yml\r\n\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/server.properties", - "container": "alpine:3.9", + "script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\nif [ ! -f nukkit.yml ]; then\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/nukkit\/nukkit.yml\r\nfi\r\n\r\nif [ ! -f nukkit.yml ]; then\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/nukkit\/server.properties\r\nfi", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -51,4 +51,4 @@ "rules": "required|string|max:20" } ] -} +} \ No newline at end of file diff --git a/minecraft_bedrock/nukkit/nukkit.yml b/minecraft/bedrock/nukkit/nukkit.yml similarity index 100% rename from minecraft_bedrock/nukkit/nukkit.yml rename to minecraft/bedrock/nukkit/nukkit.yml diff --git a/minecraft_bedrock/nukkit/server.properties b/minecraft/bedrock/nukkit/server.properties similarity index 100% rename from minecraft_bedrock/nukkit/server.properties rename to minecraft/bedrock/nukkit/server.properties diff --git a/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json similarity index 50% rename from minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json rename to minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 613abb26..98a8d1e5 100644 --- a/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-10-27T22:53:48-04:00", + "exported_at": "2020-07-14T22:15:06-04:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", "startup": ".\/bin\/php7\/bin\/php .\/PocketMine-MP.phar --no-wizard --disable-ansi", "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}", @@ -17,9 +17,9 @@ }, "scripts": { "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 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.2-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\necho -e \"\\n unpacking php7 binaries\"\r\ntar -xzvf php.binary.tar.gz\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.9", - "entrypoint": "ash" + "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": "debian:buster-slim", + "entrypoint": "bash" } }, "variables": [ @@ -33,4 +33,4 @@ "rules": "required|string|max:20" } ] -} +} \ No newline at end of file diff --git a/minecraft_bedrock/pocketmine_mp/server.properties b/minecraft/bedrock/pocketmine_mp/server.properties similarity index 100% rename from minecraft_bedrock/pocketmine_mp/server.properties rename to minecraft/bedrock/pocketmine_mp/server.properties diff --git a/minecraft/java/README.md b/minecraft/java/README.md new file mode 100644 index 00000000..a2359f1f --- /dev/null +++ b/minecraft/java/README.md @@ -0,0 +1,96 @@ +# Minecraft + +It’s a game about placing blocks and going on adventures + +It’s set in infinitely-generated worlds of wide open terrain - icy mountains, swampy bayous, vast pastures and much more - filled with secrets, wonders and peril! + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + +## Cuberite +A lightweight, fast and extensible game server for Minecraft +[Cuberite](https://cuberite.org/) + +## Feather +[Feather](https://github.com/feather-rs/feather) +An experimental Minecraft server implementation in Rust + +## Forge +[Forge MC](https://files.minecraftforge.net/) +This is a direct fork of the default forge service +- Has a version detection fix for "latest" + +[Curse Generic](https://www.curseforge.com/) +A generic service to pull forge mod packs from the curseforge site. + +## FTB Packs +[FTB](https://www.feed-the-beast.com/modpacks) +A generic service to pull forge mod packs from the FTB site. +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_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) +Revelation is a general all-purpose modpack with optimal FPS, server performance and stability. + +## Magma +[Magma](https://magmafoundation.org/) +Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability. + +## Paper +Currently the default on pterodactyl for many reasons. First being that you don't need to build the jar. + +[PaperMC GitHub](https://github.com/PaperMC/Paper) +High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies + +## Spigot +A collection of spigot and forked spigot eggs. + +[Spigot](https://www.spigotmc.org/) +This is a direct fork of the default spigot service with the added benefit of being able to build the spigot jar. +- (It's noted that building the jar is intensive and time consuming) + +## Sponge + +[SpongeVanilla](https://www.spongepowered.org/) +A community-driven open source Minecraft: Java Edition modding platform. + +## Technic Packs +[Hexxit](https://www.technicpack.net/modpack/hexxit) +Gear up and set forth on a campaign worthy of legend, for Hexxit has been unearthed! + +[Blightfall](https://www.technicpack.net/modpack/blightfall) +Blightfall is a combination modpack and adventure map about surviving on an alien planet. + +[Tekkit Legends](https://www.technicpack.net/modpack/tekkit-legends) +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 +Fork of Paper aimed at improving server performance at high playercounts. +[Tuinity GitHub](https://github.com/Spottedleaf/Tuinity) diff --git a/minecraft/java/cuberite/README.md b/minecraft/java/cuberite/README.md new file mode 100644 index 00000000..b5c0b2a5 --- /dev/null +++ b/minecraft/java/cuberite/README.md @@ -0,0 +1,11 @@ +# Cuberite +A lightweight, fast and extensible game server for Minecraft + +## 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 | +| WebAdmin | 8080 | \ No newline at end of file diff --git a/minecraft/java/cuberite/egg-cuberite.json b/minecraft/java/cuberite/egg-cuberite.json new file mode 100644 index 00000000..97949398 --- /dev/null +++ b/minecraft/java/cuberite/egg-cuberite.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-14T12:24:30-05:00", + "name": "Cuberite", + "author": "parker@parkervcp.com", + "description": "A lightweight, fast and extensible game server for Minecraft", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/Cuberite", + "config": { + "files": "{\r\n \"settings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Server.Ports\": \"{{server.build.default.port}}\",\r\n \"Server.Description\": \"{{server.build.env.SERV_DESC}}\"\r\n }\r\n },\r\n \"webadmin.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"User:admin.Password\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"WebAdmin.Ports\":\"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Startup complete \"\r\n}", + "logs": "{}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Cuberite\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y wget\r\n\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/download.cuberite.org\/linux-x86_64\/Cuberite.tar.gz\r\n\r\ntar --strip-components=1 -xf Cuberite.tar.gz", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Description", + "description": "Server Description", + "env_variable": "SERV_DESC", + "default_value": "Cuberite on Pterodactyl!", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Admin Password", + "description": "The password for the webadmin panel 'admin' user", + "env_variable": "ADMIN_PASS", + "default_value": "ChangeMe", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "WebAdmin Port", + "description": "Port for the cuberite webadmin panel.", + "env_variable": "WEB_PORT", + "default_value": "8080", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,65535" + } + ] +} diff --git a/minecraft/java/cuberite/settings.ini b/minecraft/java/cuberite/settings.ini new file mode 100644 index 00000000..a6b1afbb --- /dev/null +++ b/minecraft/java/cuberite/settings.ini @@ -0,0 +1,52 @@ +; This is the main server configuration +; Most of the settings here can be configured using the webadmin interface, if enabled in webadmin.ini + +[Authentication] +Authenticate=1 +AllowBungeeCord=0 +Server=sessionserver.mojang.com +Address=/session/minecraft/hasJoined?username=%USERNAME%&serverId=%SERVERID% + +[MojangAPI] +NameToUUIDServer=api.mojang.com +NameToUUIDAddress=/profiles/minecraft +UUIDToProfileServer=sessionserver.mojang.com +UUIDToProfileAddress=/session/minecraft/profile/%UUID%?unsigned=false + +[Server] +Description=Cuberite - in C++! +ShutdownMessage=Server shutdown +MaxPlayers=100 +HardcoreEnabled=0 +AllowMultiLogin=0 +Ports=25565 +AllowMultiWorldTabCompletion=1 +DefaultViewDistance=10 + +[RCON] +Enabled=0 + +[AntiCheat] +LimitPlayerBlockChanges=1 + +[PlayerData] +LoadOfflinePlayerData=0 +LoadNamedPlayerData=1 + +[Worlds] +DefaultWorld=world +World=world_nether +World=world_the_end + +[WorldPaths] +world=world +world_nether=world_nether +world_the_end=world_the_end + +[Plugins] +Plugin=Core +Plugin=ChatLog + +[DeadlockDetect] +Enabled=1 +IntervalSec=20 diff --git a/minecraft/java/cuberite/webadmin.ini b/minecraft/java/cuberite/webadmin.ini new file mode 100644 index 00000000..64652b85 --- /dev/null +++ b/minecraft/java/cuberite/webadmin.ini @@ -0,0 +1,14 @@ +; This file controls the webadmin feature of Cuberite +; It specifies whether webadmin is enabled, and what logins are allowed. +; Username format: [User:*username*] +; Password format: Password=*password*; for example: +; [User:admin] +; Password=admin +; Please restart Cuberite to apply changes made in this file! + +[WebAdmin] +Ports=8080 +Enabled=1 + +[User:admin] +Password= \ No newline at end of file diff --git a/minecraft/java/feather/README.md b/minecraft/java/feather/README.md new file mode 100644 index 00000000..927f8d84 --- /dev/null +++ b/minecraft/java/feather/README.md @@ -0,0 +1,11 @@ +# Feather + +An experimental Minecraft server implementation written in Rust. + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/java/feather/egg-feather.json b/minecraft/java/feather/egg-feather.json new file mode 100644 index 00000000..63672323 --- /dev/null +++ b/minecraft/java/feather/egg-feather.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-08T20:35:40-04:00", + "name": "Feather", + "author": "parker@parkervcp.com", + "description": "An experimental Minecraft server implementation written in Rust.", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/feather-server", + "config": { + "files": "{\r\n \"feather.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port = {{server.build.default.port}}\",\r\n \"address\": \"address = \\\"0.0.0.0\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server started\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/usr\/bin\/env bash\r\napt update\r\napt install -y curl\r\n\r\nget_latest_release() {\r\n curl -sSL \"https:\/\/api.github.com\/repos\/$1\/releases\/latest\" |\r\n grep '\"tag_name\":' |\r\n sed -E 's\/.*\"([^\"]+)\".*\/\\1\/'\r\n}\r\n\r\nPACKAGE=\"feather-rs\/feather\"\r\nVERSION=`get_latest_release \"${PACKAGE}\"`\r\necho \"Latest version=${VERSION}\"\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -sSLo feather.tar.gz https:\/\/github.com\/caelunshun\/feather\/releases\/download\/${VERSION}\/feather-${VERSION}-linux.tar.gz\r\n\r\ntar --strip-components=1 -xzvf feather.tar.gz\r\n\r\nrm feather.tar.gz", + "container": "debian:stable-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Generate World", + "description": "Do you want the installer to generate a world you you?", + "env_variable": "GEN_WORLD", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|boolean" + } + ] +} \ No newline at end of file diff --git a/minecraft/java/feather/feather.toml b/minecraft/java/feather/feather.toml new file mode 100644 index 00000000..ee4ebe9d --- /dev/null +++ b/minecraft/java/feather/feather.toml @@ -0,0 +1,47 @@ +# Configuration for the Feather server. + +# Most of the options here are unimplented and have no effect. +# Those that are unimplemted have been labeled so. + +[io] +# Packets with a size more than or equal to this value will be sent compressed. +# Compressing packets reduces bandwidth usage but increases CPU activity. +compression_threshold = 256 +# The number of worker threads used for asynchronous IO. +# Set to the number of cores on your CPU for optimal performance. +io_worker_threads = 8 + +[proxy] +# IP forwarding using either "bungee" (BungeeCord/Waterfall/Travertine) or "velocity" (Velocity) +proxy_mode = "none" # Unimplemented + +[server] +online_mode = true +motd = "A Feather server" +max_players = 16 +default_gamemode = "survival" +difficulty = "none" # Unimplemented +view_distance = 6 +address = "127.0.0.1" +port = 25565 + +[gameplay] +monster_spawning = true # Unimplemented +animal_spawning = true # Unimplemented +pvp = true # Unimplemented +nerf_spawner_mobs = false # Unimplemented +# Either "classic" for 1.8 PvP or "new" for 1.9 +pvp_style = "classic" # Unimplemented + +[log] +# If you prefer less verbose logs, switch this to "info." +# If you want to hurt your eyes while looking at the +# server console, set it to "trace." +level = "debug" + +[resource_pack] +# Server resource pack which is sent to players +# upon joining. Set this to an empty string to disable. +url = "" +# Optional SHA1 hash of the resource pack file. +hash = "" \ No newline at end of file diff --git a/minecraft_java/forge/forge-generic/README.md b/minecraft/java/forge/curseforge-generic/README.md similarity index 51% rename from minecraft_java/forge/forge-generic/README.md rename to minecraft/java/forge/curseforge-generic/README.md index 03468b6f..c92470c2 100644 --- a/minecraft_java/forge/forge-generic/README.md +++ b/minecraft/java/forge/curseforge-generic/README.md @@ -2,7 +2,8 @@ ### This is a generic egg for curseforge modpacks -You will need to give it a modpack URL such as `https://minecraft.curseforge.com/projects/` +You will need to give it a modpack ID. The ID for sevtech-ages is `268208` for example. +This can be found on the modpack page in the `About Project` section in the upper right corner. This will grabe the latest release when the version is set to latest. diff --git a/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json b/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json new file mode 100644 index 00000000..4b6e02db --- /dev/null +++ b/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-08-12T08:19:04-04:00", + "name": "Curseforge Generic", + "author": "parker@parkervcp.com", + "description": "A generic egg for a forge modpack", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar 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 \"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# Forge 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\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip dos2unix\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r .defaultFileId)\r\n echo -e \"File ID is: ${FILE_ID}\"\r\n if [ \"$(echo -e ${JSON_DATA} | jq -r --arg FILE_ID \"$FILE_ID\" \".latestFiles[] | select(.id==$FILE_ID) | .isServerPack\")\" == \"false\" ] && [ \"$(echo -e ${JSON_DATA} | jq -r --arg FILE_ID \"$FILE_ID\" \".latestFiles[] | select(.id==$FILE_ID) | .serverPackFileId\")\" != \"null\" ]; then\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r --arg FILE_ID \"$FILE_ID\" \".latestFiles[] | select(.id==$FILE_ID) | .serverPackFileId\")\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/file\/${FILE_ID}\/download-url)\r\n else\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/file\/${FILE_ID}\/download-url)\r\n fi\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n mv FTBServer.jar server.jar\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv forge*.jar server.jar\r\n else\r\n mv *universal.jar server.jar \r\n fi\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -e \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -e \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -e \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -e \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction ftb_install {\r\n chmod +x \/mnt\/server\/settings.sh \r\n . \/mnt\/server\/settings.sh \r\n curl https:\/\/s3.amazonaws.com\/Minecraft.Download\/versions\/${MCVER}\/minecraft_server.${MCVER}.jar -o ${JARFILE} \r\n curl https:\/\/libraries.minecraft.net\/${LAUNCHWRAPPER} -o \/mnt\/server\/libraries\/${LAUNCHWRAPPER}\r\n}\r\n\r\ninstall_required\r\nget_download\r\n\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelif [ -f \/mnt\/server\/version.json ]; then\r\n if [ \"$(cat \/mnt\/server\/version.json | jq -r '.packID | contains(\"FTB\")')\" == \"true\" ]; then\r\n ftb_install\r\n fi\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", + "container": "openjdk:8-jdk-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "modpack project ID", + "description": "The modpack project ID from the curseforge site on the pack page.\r\n\r\n(Ex. https:\/\/minecraft.curseforge.com\/projects\/sevtech-ages ID is 268208)", + "env_variable": "MODPACK_ID", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Modpack Version", + "description": "Version of the modpack to use.", + "env_variable": "MODPACK_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/minecraft/java/forge/forge/README.md b/minecraft/java/forge/forge/README.md new file mode 100644 index 00000000..72585414 --- /dev/null +++ b/minecraft/java/forge/forge/README.md @@ -0,0 +1,7 @@ +# Forge Generic + +### This is a generic egg for the forge standalone server + +This will download the latest jar for a specific forge version. + +this has a fix for the broken 1.7.10 and 1.8.9 versions forge has \ No newline at end of file diff --git a/minecraft/java/forge/forge/egg-forge-enhanced.json b/minecraft/java/forge/forge/egg-forge-enhanced.json new file mode 100644 index 00000000..477cb4b6 --- /dev/null +++ b/minecraft/java/forge/forge/egg-forge-enhanced.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-06-01T21:19:06-04:00", + "name": "Forge Enhanced", + "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.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/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", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the Jarfile to use when running Forge Mod.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Forge version", + "description": "The version of minecraft you want to install for.\r\n\r\nLeaving latest will install the latest recommended version.", + "env_variable": "MC_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:9" + }, + { + "name": "Build Type", + "description": "The type of server jar to download from forge.\r\n\r\nValid types are \"recommended\" and \"latest\".", + "env_variable": "BUILD_TYPE", + "default_value": "recommended", + "user_viewable": 1, + "user_editable": 1, + "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" + } + ] +} \ No newline at end of file diff --git a/minecraft_java/ftb/feed-the-beast/egg-feed-the-beast.json b/minecraft/java/ftb/feed-the-beast/egg-feed-the-beast.json similarity index 100% rename from minecraft_java/ftb/feed-the-beast/egg-feed-the-beast.json rename to minecraft/java/ftb/feed-the-beast/egg-feed-the-beast.json diff --git a/minecraft/java/ftb/feed-the-beast/egg-ftb-modpacksch-server.json b/minecraft/java/ftb/feed-the-beast/egg-ftb-modpacksch-server.json new file mode 100644 index 00000000..ab911abb --- /dev/null +++ b/minecraft/java/ftb/feed-the-beast/egg-ftb-modpacksch-server.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/minecraft_java/ftb/ftb-revelation/egg-f-t-b-revelation.json b/minecraft/java/ftb/ftb-revelation/egg-f-t-b-revelation.json similarity index 100% rename from minecraft_java/ftb/ftb-revelation/egg-f-t-b-revelation.json rename to minecraft/java/ftb/ftb-revelation/egg-f-t-b-revelation.json diff --git a/minecraft/java/magma/README.md b/minecraft/java/magma/README.md new file mode 100644 index 00000000..51847897 --- /dev/null +++ b/minecraft/java/magma/README.md @@ -0,0 +1,11 @@ +# Magma + +Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability. + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/java/magma/egg-magma.json b/minecraft/java/magma/egg-magma.json new file mode 100644 index 00000000..52d31ba4 --- /dev/null +++ b/minecraft/java/magma/egg-magma.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-28T14:53:55-04:00", + "name": "Magma", + "author": "support@pterodactyl.io", + "description": "Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\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": "## 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\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\n## get latest download link\r\necho -e \"Set to download the ${BUILD} build\"\r\nif [ \"${BUILD}\" == \"dev\" ]; then\r\n echo -e \"dev tag is ${tag}\"\r\nfi\r\n\r\ncase ${BUILD} in\r\n\r\n \"recommended\" | \"stable\" | \"latest\")\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/stable\/latest\/download\"\r\n ;;\r\n\r\n \"dev\")\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/dev\/${TAG}\/download\"\r\n ;;\r\n\r\n *)\r\n DOWNLOAD_URL=\"https:\/\/api.magmafoundation.org\/api\/resources\/magma\/${VANILLA_VERSION}\/stable\/latest\/download\"\r\n ;;\r\nesac\r\n\r\necho -e \"Download URL is ${DOWNLOAD_URL}\"\r\n\r\n## validate download link\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\n# Adding '.jar' if it isn't part of the file name\r\nif [[ ${SERVER_JARFILE} == *\\.jar ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n## mv old server files\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n echo -e \"moving old server.jar\"\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\n## download files\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\r\n\r\necho -e \"Install Complete\"", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Server Version", + "description": "The version of Minecraft Vanilla to install.\r\n\r\nOnly version currently supported is 1.12.2 as that is all there are builds for.", + "env_variable": "VANILLA_VERSION", + "default_value": "1.12.2", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|between:3,15" + }, + { + "name": "Magma Build", + "description": "What version of magma to download.\r\n\r\nrecommended, stable, latest = current stable\r\ndev = latest dev build", + "env_variable": "BUILD", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Magma Dev Tag", + "description": "The dev tagged version to download. default is latest.", + "env_variable": "TAG", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/minecraft_java/paper/README.MD b/minecraft/java/paper/README.MD similarity index 100% rename from minecraft_java/paper/README.MD rename to minecraft/java/paper/README.MD diff --git a/minecraft_java/paper/egg-paper.json b/minecraft/java/paper/egg-paper.json similarity index 92% rename from minecraft_java/paper/egg-paper.json rename to minecraft/java/paper/egg-paper.json index 05a8bfce..6dda06d6 100644 --- a/minecraft_java/paper/egg-paper.json +++ b/minecraft/java/paper/egg-paper.json @@ -3,21 +3,21 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-28T15:18:36-04:00", + "exported_at": "2019-08-01T04:49:37-04:00", "name": "Paper", "author": "parker@pterodactyl.io", "description": "High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-8-jre", - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", "config": { - "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"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 \"server-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": "{}", "stop": "stop" }, "scripts": { "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\nif [ -f ${SERVER_JARFILE} ]; then\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\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", + "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\nif [ -f ${SERVER_JARFILE} ]; then\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\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" } @@ -60,4 +60,4 @@ "rules": "required|string|max:20" } ] -} \ No newline at end of file +} diff --git a/minecraft_java/server.properties b/minecraft/java/server.properties similarity index 100% rename from minecraft_java/server.properties rename to minecraft/java/server.properties diff --git a/minecraft_java/spigot/spigot/README.MD b/minecraft/java/spigot/README.MD similarity index 100% rename from minecraft_java/spigot/spigot/README.MD rename to minecraft/java/spigot/README.MD diff --git a/minecraft_java/spigot/spigot/egg-spigot.json b/minecraft/java/spigot/egg-spigot.json similarity index 100% rename from minecraft_java/spigot/spigot/egg-spigot.json rename to minecraft/java/spigot/egg-spigot.json diff --git a/minecraft/java/spongeforge/README.MD b/minecraft/java/spongeforge/README.MD new file mode 100644 index 00000000..685f7f66 --- /dev/null +++ b/minecraft/java/spongeforge/README.MD @@ -0,0 +1,9 @@ +# SpongeForge +SpongeForge is the implementation of the Sponge API on the Minecraft Forge platform. + +## Server Ports +Minecraft servers requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/java/spongeforge/egg-sponge-forge.json b/minecraft/java/spongeforge/egg-sponge-forge.json new file mode 100644 index 00000000..76fa3a1f --- /dev/null +++ b/minecraft/java/spongeforge/egg-sponge-forge.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-11T01:44:03+03:00", + "name": "SpongeForge", + "author": "parker@parkervcp.com", + "description": "A community-driven open source Minecraft: Java Edition modding platform.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"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": "{}", + "stop": "stop" + }, + "scripts": { + "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\"", + "container": "openjdk:8-jre-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "SpongeForge Version", + "description": "Example 1.12.2-2825-7.1.6\r\n\r\nIf the version fails it defaults to recommended", + "env_variable": "SF_VERSION", + "default_value": "recommended", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Server Jar File", + "description": "The name of the Jarfile to use when running Forge Mod.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + } + ] +} \ No newline at end of file diff --git a/minecraft/java/spongevanilla/README.MD b/minecraft/java/spongevanilla/README.MD new file mode 100644 index 00000000..611b3648 --- /dev/null +++ b/minecraft/java/spongevanilla/README.MD @@ -0,0 +1,10 @@ +# SpongeVanilla +A community-driven open source Minecraft: Java Edition modding platform. + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/java/spongevanilla/egg-sponge-vanilla.json b/minecraft/java/spongevanilla/egg-sponge-vanilla.json new file mode 100644 index 00000000..3b129848 --- /dev/null +++ b/minecraft/java/spongevanilla/egg-sponge-vanilla.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-09-13T21:18:48-04:00", + "name": "SpongeVanilla", + "author": "parker@parkervcp.com", + "description": "SpongeVanilla is the implementation of the Sponge API on top of Vanilla Minecraft.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"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": "{}", + "stop": "stop" + }, + "scripts": { + "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\"", + "container": "debian:stable-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "SpongeVanilla Version", + "description": "Example 1.12.2-7.1.6\r\n\r\nIf the version fails it defaults to recommended", + "env_variable": "SV_VERSION", + "default_value": "recommended", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Server Jar File", + "description": "The name of the Jarfile to use when running Mod.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + } + ] +} \ No newline at end of file diff --git a/minecraft/java/technic/README.md b/minecraft/java/technic/README.md new file mode 100644 index 00000000..af6deac4 --- /dev/null +++ b/minecraft/java/technic/README.md @@ -0,0 +1,24 @@ +## How to import an egg + +If you are reading this it looks like you are looking to add an egg to your server. + +1. Download any of the json files located in the folders below. + 1. It's easiest to right click the `raw` button and save as. +2. In your panel go to the `Nests` section in the admin part of the panel +3. Click the green `Import Egg` button +4. Browse to the json file you saved earlier +5. Select what nest you want to put the egg in. + 1. If you want a new nest you need to create it before importing the egg. +6. Restart the daemon on your node before creating a server using the new egg(s). + +# You must restart your daemon after importing an egg + +## Technic Eggs + +[Technic](/minecraft_java/technic/) +* [Attack of the B-Team](/minecraft_java/technic/attack-of-the-bteam/) +* [Blightfall](/minecraft_java/technic/blightfall/) +* [Hexxit](/minecraft_java/technic/hexxit/) +* [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/) \ No newline at end of file diff --git a/minecraft/java/technic/attack-of-the-bteam/README.MD b/minecraft/java/technic/attack-of-the-bteam/README.MD new file mode 100644 index 00000000..f5bc5be3 --- /dev/null +++ b/minecraft/java/technic/attack-of-the-bteam/README.MD @@ -0,0 +1,11 @@ +# Minecraft: Attack of the B Team + +A very good modpack! + +## 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 | diff --git a/minecraft/java/technic/attack-of-the-bteam/egg-attack-of-the-b--team.json b/minecraft/java/technic/attack-of-the-bteam/egg-attack-of-the-b--team.json new file mode 100644 index 00000000..f38046e3 --- /dev/null +++ b/minecraft/java/technic/attack-of-the-bteam/egg-attack-of-the-b--team.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-06-02T11:29:46+02:00", + "name": "Attack of the B-Team", + "author": "support@pterodactyl.io", + "description": "This modpack was designed with one thing in mind, crazy mad science! With the help of the B-Team we hand picked the wackiest mods we could find and shoved them all in a modpack for you guys. The result is Attack of the B-Team!", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar BTeam.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:\/\/servers.technicpack.net\/Technic\/servers\/bteam\/BTeam_Server_v$MODPACK_VERSION.zip -o BTeam_Server_v$MODPACK_VERSION.zip\r\n\r\nunzip BTeam_Server_v$MODPACK_VERSION.zip\r\n\r\nrm -rf BTeam_Server_v$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": "1.0.12c", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} diff --git a/minecraft_java/technic/blightfall/egg-blightfall.json b/minecraft/java/technic/blightfall/egg-blightfall.json similarity index 100% rename from minecraft_java/technic/blightfall/egg-blightfall.json rename to minecraft/java/technic/blightfall/egg-blightfall.json diff --git a/minecraft_java/technic/hexxit/egg-hexxit.json b/minecraft/java/technic/hexxit/egg-hexxit.json similarity index 100% rename from minecraft_java/technic/hexxit/egg-hexxit.json rename to minecraft/java/technic/hexxit/egg-hexxit.json diff --git a/minecraft/java/technic/tekkit-classic/egg-tekkit-classic.json b/minecraft/java/technic/tekkit-classic/egg-tekkit-classic.json new file mode 100644 index 00000000..d225188f --- /dev/null +++ b/minecraft/java/technic/tekkit-classic/egg-tekkit-classic.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/minecraft_java/technic/tekkit-legends/egg-tekkit-legends.json b/minecraft/java/technic/tekkit-legends/egg-tekkit-legends.json similarity index 100% rename from minecraft_java/technic/tekkit-legends/egg-tekkit-legends.json rename to minecraft/java/technic/tekkit-legends/egg-tekkit-legends.json diff --git a/minecraft/java/technic/the-1-7-10-pack/README.MD b/minecraft/java/technic/the-1-7-10-pack/README.MD new file mode 100644 index 00000000..117f3b69 --- /dev/null +++ b/minecraft/java/technic/the-1-7-10-pack/README.MD @@ -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 | diff --git a/minecraft/java/technic/the-1-7-10-pack/egg-the1-7-10-pack.json b/minecraft/java/technic/the-1-7-10-pack/egg-the1-7-10-pack.json new file mode 100644 index 00000000..519e1be4 --- /dev/null +++ b/minecraft/java/technic/the-1-7-10-pack/egg-the1-7-10-pack.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/minecraft/java/tuinity/.gitignore b/minecraft/java/tuinity/.gitignore new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/minecraft/java/tuinity/.gitignore @@ -0,0 +1 @@ + diff --git a/minecraft/java/tuinity/egg-tuinity.json b/minecraft/java/tuinity/egg-tuinity.json new file mode 100644 index 00000000..9bf94c40 --- /dev/null +++ b/minecraft/java/tuinity/egg-tuinity.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-27T00:25:53-04:00", + "name": "Tuinity", + "author": "unknown@unknown.com", + "description": "Fork of Paper aimed at improving server performance at high playercounts.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-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": "{}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Tuinity Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl\r\ncd \/mnt\/server\r\n\r\nif [ ! -f server.properties ]; then\r\ncurl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/Spottedleaf\/job\/Tuinity\/lastStableBuild\/artifact\/tuinity-paperclip.jar", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} diff --git a/minecraft/java/vanillacord/README.md b/minecraft/java/vanillacord/README.md new file mode 100644 index 00000000..c5d91e0e --- /dev/null +++ b/minecraft/java/vanillacord/README.md @@ -0,0 +1,9 @@ +# VanillaCord + +A patch for vanilla servers to work with BungeeCord's ip_forward setting. + +This uses [ME1312's fork](https://github.com/ME1312/VanillaCord) of VanillaCord which has been updated for modern Minecraft. + +## Note: + +If you've set up Spigot, Paper or some other server with BungeeCord's IP forwarding you might know that you have to set online-mode to false. Due to the way that VanillaCord works this is not necessary with this Egg, you can (and should) leave online-mode as true. diff --git a/minecraft/java/vanillacord/egg-vanilla-cord.json b/minecraft/java/vanillacord/egg-vanilla-cord.json new file mode 100644 index 00000000..7df2d5c5 --- /dev/null +++ b/minecraft/java/vanillacord/egg-vanilla-cord.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-06-06T09:33:27-04:00", + "name": "VanillaCord", + "author": "support@pterodactyl.io", + "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.\r\n\r\nVanillaCord adds support for BungeeCord's ip_forward setting.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n\r\napk --no-cache --update add curl jq\r\n\r\ncd \/mnt\/server\r\n\r\necho $VANILLA_VERSION\r\n\r\nLATEST_VERSION=`curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif { [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; } then\r\n INSTALLING_VERSION=$LATEST_VERSION\r\nelse\r\n INSTALLING_VERSION=$VANILLA_VERSION\r\nfi\r\n\r\nMAJOR_VERSION=$(echo $INSTALLING_VERSION | sed -En 's\/^([0-9]*)\\.[0-9]*\\.[0-9]*$\/\\1\/p')\r\nMINOR_VERSION=$(echo $INSTALLING_VERSION | sed -En 's\/^[0-9]*\\.([0-9]*)\\.[0-9]*$\/\\1\/p')\r\nPATCH_VERSION=$(echo $INSTALLING_VERSION | sed -En 's\/^[0-9]*\\.[0-9]*\\.([0-9]*)$\/\\1\/p')\r\n\r\nVANILLACORD_URL=https:\/\/src.me1312.net\/jenkins\/job\/VanillaCord\/job\/1.12\/lastSuccessfulBuild\/artifact\/artifacts\/VanillaCord.jar\r\nif [ $MAJOR_VERSION -eq 1 ] && [ $MINOR_VERSION -lt 12 ]; then\r\n VANILLACORD_URL=https:\/\/src.me1312.net\/jenkins\/job\/VanillaCord\/job\/1.7.10\/lastSuccessfulBuild\/artifact\/artifacts\/VanillaCord.jar\r\nfi\r\n\r\nif { [ $MAJOR_VERSION -eq 1 ] && [ $MINOR_VERSION -eq 7 ] && [ $PATCH_VERSION -lt 10 ]; } || { [ $MAJOR_VERSION -eq 1 ] && [ $MINOR_VERSION -lt 7 ]; } then\r\n echo \"VanillaCord is only supported on Minecraft 1.7.10 or higher! You cannot use it with $INSTALLING_VERSION.\"\r\n exit 1\r\nfi\r\n\r\ncurl -o vanillacord.jar $VANILLACORD_URL\r\njava -jar vanillacord.jar $INSTALLING_VERSION\r\n\r\nrm -f vanillacord.jar\r\nrm -rf in\r\nmv out\/*.jar $SERVER_JARFILE\r\nrm -rf out", + "container": "openjdk:8-jre-alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Server Version", + "description": "The version of Minecraft Vanilla to install. Use \"latest\" to install the latest version.", + "env_variable": "VANILLA_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|between:3,15" + } + ] +} diff --git a/minecraft/proxy/travertine/README.md b/minecraft/proxy/travertine/README.md new file mode 100644 index 00000000..8d797744 --- /dev/null +++ b/minecraft/proxy/travertine/README.md @@ -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 | \ No newline at end of file diff --git a/minecraft/proxy/travertine/egg-travertine.json b/minecraft/proxy/travertine/egg-travertine.json new file mode 100644 index 00000000..904e4fb9 --- /dev/null +++ b/minecraft/proxy/travertine/egg-travertine.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/minecraft/proxy/typhoonlimbo/README.md b/minecraft/proxy/typhoonlimbo/README.md new file mode 100644 index 00000000..697210e2 --- /dev/null +++ b/minecraft/proxy/typhoonlimbo/README.md @@ -0,0 +1,10 @@ +# TyphoonLimbo server +Lightweight minecraft limbo server + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/proxy/typhoonlimbo/egg-typhoon-limbo.json b/minecraft/proxy/typhoonlimbo/egg-typhoon-limbo.json new file mode 100644 index 00000000..e19feef8 --- /dev/null +++ b/minecraft/proxy/typhoonlimbo/egg-typhoon-limbo.json @@ -0,0 +1,26 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-06-20T11:37:02-04:00", + "name": "TyphoonLimbo", + "author": "parker@parkervcp.com", + "description": "Lightweight minecraft limbo server", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": "`sleep 2 && .\/TyphoonLimbo`", + "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}", + "startup": "{\r\n \"done\": \"launched on port\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "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.14-buster", + "entrypoint": "bash" + } + }, + "variables": [] +} \ No newline at end of file diff --git a/minecraft/proxy/velocity/README.md b/minecraft/proxy/velocity/README.md new file mode 100644 index 00000000..c1c794dc --- /dev/null +++ b/minecraft/proxy/velocity/README.md @@ -0,0 +1,10 @@ +# Velocity Minecraft Proxy +Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility. + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/minecraft/proxy/velocity/egg-velocity.json b/minecraft/proxy/velocity/egg-velocity.json new file mode 100644 index 00000000..7cfc2206 --- /dev/null +++ b/minecraft/proxy/velocity/egg-velocity.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-07-14T20:36:29-04:00", + "name": "Velocity", + "author": "parker@parkervcp.com", + "description": "Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"velocity.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bind = \": \"bind = \\\"0.0.0.0:{{server.build.default.port}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Done (\"\r\n}", + "logs": "{}", + "stop": "shutdown" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add --no-cache curl\r\n\r\nmkdir -p \/mnt\/server\/\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ -z ${VELOCITY_VERSION} ] || [ ${VELOCITY_VERSION} == \"latest\" ]; then\r\n\tVELOCITY_VERSION=\/lastStableBuild\r\nfi\r\n\r\necho -e \"Getting download link\"\r\nDOWNLOAD_ENDPOINT=$(curl https:\/\/ci.velocitypowered.com\/job\/velocity\/${VELOCITY_VERSION}\/ | grep -Eo 'href=\"[^\\\"]+\"' | grep -vE \"view|fingerprint\" | grep \".jar\" | sed -n 's\/.*href=\"\\([^\"]*\\).*\/\\1\/p')\r\nDOWNLOAD_LINK=https:\/\/ci.velocitypowered.com\/job\/velocity\/lastStableBuild\/${DOWNLOAD_ENDPOINT}\r\n\r\necho -e \"Downloading ${DOWNLOAD_LINK}\"\r\ncurl ${DOWNLOAD_LINK} -o ${SERVER_JARFILE}\r\n\r\nif [ -f velocity.toml ]; then\r\n echo -e \"velocity config file exists\"\r\nelse\r\n echo -e \"downloading velocity config file.\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/proxy\/velocity\/velocity.toml -o velocity.toml\r\nfi\r\n\r\necho -e \"install complete\"", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Velocity Version", + "description": "The Velocity Proxy version to download.\r\n\r\nset to 'latest ' the download the last stable build.", + "env_variable": "VELOCITY_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Server Jar File", + "description": "Server Jar File name", + "env_variable": "SERVER_JARFILE", + "default_value": "velocity.jar", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/minecraft/proxy/velocity/velocity.toml b/minecraft/proxy/velocity/velocity.toml new file mode 100644 index 00000000..1221a696 --- /dev/null +++ b/minecraft/proxy/velocity/velocity.toml @@ -0,0 +1,106 @@ +# Config version. Do not change this +config-version = "1.0" + +# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577. +bind = "0.0.0.0:25577" + +# What should be the MOTD? This gets displayed when the player adds your server to +# their server list. Legacy color codes and JSON are accepted. +motd = "&3A Velocity Server" + +# What should we display for the maximum number of players? (Velocity does not support a cap +# on the number of players online.) +show-max-players = 500 + +# Should we authenticate players with Mojang? By default, this is on. +online-mode = true + +# Should we forward IP addresses and other data to backend servers? +# Available options: +# - "none": No forwarding will be done. All players will appear to be connecting from the +# proxy and will have offline-mode UUIDs. +# - "legacy": Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this if +# you run servers using Minecraft 1.12 or lower. +# - "modern": Forward player IPs and UUIDs as part of the login process using Velocity's +# native forwarding. Only applicable for Minecraft 1.13 or higher. +player-info-forwarding-mode = "NONE" + +# If you are using modern IP forwarding, configure an unique secret here. +forwarding-secret = "FrP42MxySW6Y" + +# Announce whether or not your server supports Forge. If you run a modded server, we +# suggest turning this on. +announce-forge = false + +[servers] +# Configure your servers here. Each key represents the server's name, and the value +# represents the IP address of the server to connect to. +lobby = "127.0.0.1:30066" +minigames = "127.0.0.1:30068" +factions = "127.0.0.1:30067" + +# In what order we should try servers when a player logs in or is kicked from aserver. +try = [ + "lobby" +] + +[forced-hosts] +# Configure your forced hosts here. +"minigames.example.com" = [ + "minigames" +] +"lobby.example.com" = [ + "lobby" +] +"factions.example.com" = [ + "factions" +] + +[advanced] +# How large a Minecraft packet has to be before we compress it. Setting this to zero will +# compress all packets, and setting it to -1 will disable compression entirely. +compression-threshold = 256 + +# How much compression should be done (from 0-9). The default is -1, which uses the +# default level of 6. +compression-level = -1 + +# How fast (in milliseconds) are clients allowed to connect after the last connection? By +# default, this is three seconds. Disable this by setting this to 0. +login-ratelimit = 3000 + +# Specify a custom timeout for connection timeouts here. The default is five seconds. +connection-timeout = 5000 + +# Specify a read timeout for connections here. The default is 30 seconds. +read-timeout = 30000 + +# Enables compatibility with HAProxy. +proxy-protocol = false + +[query] +# Whether to enable responding to GameSpy 4 query responses or not. +enabled = false + +# If query is enabled, on what port should the query protocol listen on? +port = 25577 + +# This is the map name that is reported to the query services. +map = "Velocity" + +# Whether plugins should be shown in query response by default or not +show-plugins = false + +[metrics] +# Whether metrics will be reported to bStats (https://bstats.org). +# bStats collects some basic information, like how many people use Velocity and their +# player count. We recommend keeping bStats enabled, but if you're not comfortable with +# this, you can turn this setting off. There is no performance penalty associated with +# having metrics enabled, and data sent to bStats can't identify your server. +enabled = true + +# A unique, anonymous ID to identify this proxy with. +id = "b12f2e77-133c-4a5f-b288-d8833be3dc4d" + +log-failure = false + diff --git a/minecraft/proxy/waterfall/README.md b/minecraft/proxy/waterfall/README.md new file mode 100644 index 00000000..0ca909b9 --- /dev/null +++ b/minecraft/proxy/waterfall/README.md @@ -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 | \ No newline at end of file diff --git a/minecraft_proxy/waterfall/config.yml b/minecraft/proxy/waterfall/config.yml similarity index 100% rename from minecraft_proxy/waterfall/config.yml rename to minecraft/proxy/waterfall/config.yml diff --git a/minecraft/proxy/waterfall/egg-waterfall.json b/minecraft/proxy/waterfall/egg-waterfall.json new file mode 100644 index 00000000..1454f996 --- /dev/null +++ b/minecraft/proxy/waterfall/egg-waterfall.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-06-03T16:13:49-04:00", + "name": "Waterfall", + "author": "hostmaster@waterfallgaming.net", + "description": "Waterfall is a fork of the well-known BungeeCord 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\/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": "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" + } + ] +} diff --git a/minecraft_java/README.md b/minecraft_java/README.md deleted file mode 100644 index 0302be2e..00000000 --- a/minecraft_java/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Minecraft - -It’s a game about placing blocks and going on adventures - -It’s set in infinitely-generated worlds of wide open terrain - icy mountains, swampy bayous, vast pastures and much more - filled with secrets, wonders and peril! - -## Server Ports -The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. - -## Forge -[Forge MC](https://files.minecraftforge.net/) -This is a direct fork of the default forge service -- Has a version detection fix for "latest" - -[Curse Generic](https://www.curseforge.com/) -A generic service to pull forge mod packs from the curseforge site. - -## FTB Packs -[FTB](https://www.feed-the-beast.com/modpacks) -A generic service to pull forge mod packs from the FTB site. -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_VERSION: version of the modpack to install - -[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. - -## Paper -Currently the default on pterodactyl for many reasons. First being that you don't need to build the jar. - -## Spigot -A collection of spigot and forked spigot eggs. - -[Spigot](https://www.spigotmc.org/) -This is a direct fork of the default spigot service with the added benefit of being able to build the spigot jar. -- (It's noted that building the jar is intensive and time consuming) - -[PaperMC GitHub](https://github.com/PaperMC/Paper) -High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies - -#### Technic Packs -[Hexxit](https://www.technicpack.net/modpack/hexxit) -Gear up and set forth on a campaign worthy of legend, for Hexxit has been unearthed! - -[Blightfall](https://www.technicpack.net/modpack/blightfall) -Blightfall is a combination modpack and adventure map about surviving on an alien planet. - -[Tekkit Legends](https://www.technicpack.net/modpack/tekkit-legends) -The ancient power of Tekkits past return in this legendary pack! diff --git a/minecraft_java/forge/forge-generic/egg-forge-generic.json b/minecraft_java/forge/forge-generic/egg-forge-generic.json deleted file mode 100644 index 53da7298..00000000 --- a/minecraft_java/forge/forge-generic/egg-forge-generic.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2019-05-03T11:53:00-04:00", - "name": "Forge Generic", - "author": "parker@parkervcp.com", - "description": "A generic egg for a forge modpack", - "image": "quay.io\/pterodactyl\/core:java", - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar 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\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nfunction install_required {\r\n apk --no-cache --update add curl jq\r\n}\r\n\r\nfunction get_download {\r\n BASE_URL=${MODPACK_URL}\/files\r\n\r\n if [ -z \"${MODPACK_VERSION}\" ] || [ \"${MODPACK_VERSION}\" == \"latest\" ]; then\r\n ID=`curl -sl ${BASE_URL} | grep -i -A9 'title=\"release\"' | grep -m 1 -i -o 'href=\".*\"' | cut -d \"\/\" -f5 | sed s\/\\\"\/\/g`\r\n echo \"ID: ${ID}\"\r\n else\r\n ID=`curl -sl ${BASE_URL} | grep -i -A9 \"${MODPACK_VERSION}\" | grep -m 1 -oE 'href=\"[^\\\"]+\"' | cut -d \"\/\" -f5 | grep -oE [0-9]+`\r\n echo \"ID: ${ID}\"\r\n fi\r\n\r\n SECONDURL=${BASE_URL}\/${ID}\r\n echo \"SECONDURL: ${SECONDURL}\"\r\n\r\n GOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\n if [ -z \"$GOOD_ID\" ]; then\r\n GOOD_ID=$ID\r\n fi\r\n echo \"GOOD_ID: ${GOOD_ID}\"\r\n\r\n DL_URL=${BASE_URL}\/${GOOD_ID}\/download\r\n echo \"Download_URL: ${DL_URL}\"\r\n\r\n cd \/mnt\/server\r\n\r\n echo \"Executing curl -L ${DL_URL} -o server.zip\"\r\n curl -L ${DL_URL} -o server.zip\r\n\r\n unzip -o server.zip\r\n\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n java -jar *installer.jar --installServer\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n\r\n mv *universal.jar server.jar\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=\"https:\/\/minecraft.curseforge.com\/projects\/${projID}\/files\/${fileID}\/download\"\r\n echo \"mods file url: ${URL}\"\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n FINAL_URL=$(curl $URL -s -L -o \/dev\/null -w '%{url_effective}')\r\n echo \"Mod direct url: $FINAL_URL\"\r\n curl -JLO ${FINAL_URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", - "container": "openjdk:8-alpine", - "entrypoint": "ash" - } - }, - "variables": [ - { - "name": "modpack URL", - "description": "The modpack URL from the curseforge site.\r\n\r\n(Ex. https:\/\/minecraft.curseforge.com\/projects\/sevtech-ages)", - "env_variable": "MODPACK_URL", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string" - }, - { - "name": "Modpack Version", - "description": "Version of the modpack to use.", - "env_variable": "MODPACK_VERSION", - "default_value": "latest", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - } - ] -} \ No newline at end of file diff --git a/minecraft_proxy/waterfall/README.md b/minecraft_proxy/waterfall/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/minecraft_proxy/waterfall/egg-waterfall.json b/minecraft_proxy/waterfall/egg-waterfall.json deleted file mode 100644 index 68aa6ac4..00000000 --- a/minecraft_proxy/waterfall/egg-waterfall.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2019-03-02T21:19:50-05:00", - "name": "Waterfall", - "author": "hostmaster@waterfallgaming.net", - "description": "Waterfall is a fork of the well-known BungeeCord 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\/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\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_WATERFALL_VERSION=`curl -s https:\/\/papermc.io\/api\/v1\/waterfall | 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 waterfall version\"\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \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_PAPER_BUILD=`curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${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\/waterfall\/${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\ncurl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml", - "container": "alpine:3.9", - "entrypoint": "ash" - } - }, - "variables": [ - { - "name": "Waterfall Version", - "description": "The version of Waterfall to download and use.", - "env_variable": "WATERFALL_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)$\/" - } - ] -} \ No newline at end of file diff --git a/mount_and_blade/warband/README.md b/mount_and_blade/warband/README.md deleted file mode 100644 index 0798ccfd..00000000 --- a/mount_and_blade/warband/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Mount & Blade Warband - -Mount & Blade: Warband is a stand alone expansion pack for the game that brought medieval battlefields to life with its realistic mounted combat and detailed fighting system. Many modifications have been developed to bring the Warband universe into different eras, including the popular Napoleonic Wars DLC, among many others, featuring battles of up to concurrent 200 players. - -### Server Ports - -Warband requires a single port (default 7240) - -| Port | default | -|---------|---------| -| Game | 7240 | - -### Other Notes - -* The server can only use the main IP address of the node due to limitations in the way Warband's server reporting system operates, no alias or secondary IP addresses can be used. -* A complete list of modules supported by this egg can be found [here](https://github.com/masonr/pterodactyl-images/tree/mb-warband), the module name will need to be copied exactly as shown. -* The current module can be changed at any time and will automatically download the new files upon restart after changing the module name diff --git a/mount_and_blade/warband/egg-m--b-warband.json b/mount_and_blade/warband/egg-m--b-warband.json deleted file mode 100644 index 9d46ddd4..00000000 --- a/mount_and_blade/warband/egg-m--b-warband.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-07-28T22:01:58-04:00", - "name": "M&B Warband", - "author": "mason@rowe.sh", - "description": "Mount & Blade Warband server", - "image": "masonr\/pterodactyl-images:mb-warband", - "startup": "WINEDEBUG=\"fixme-all\" wine mb_warband_dedicated.exe -r Config.txt -m {{MODULE}}", - "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"Starting mission\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"Logs\/\"\r\n}", - "stop": "^C" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\napt update\r\napt install -y wget dos2unix\r\ncd \/mnt\/server\/\r\n\r\nif [[ -z \"$MODULE\" ]] ; then\r\n\tMODULE=\"Native\"\r\nfi\r\n\r\n# Download helper script with all server file links\r\nwget \"https:\/\/files.rowe.sh\/pterodactyl\/mb-warband\/mb-warband-links.sh\"\r\nchmod +x mb-warband-links.sh\r\n\r\n# Generate links for server files\r\nMODULE_BASE_LINK=`.\/mb-warband-links.sh link \"$MODULE\" base`\r\nMODULE_LINK=`.\/mb-warband-links.sh link \"$MODULE\" mod`\r\n\r\n# Ensure module files link has been obtained, exit if not\r\nif [[ -z \"$MODULE_LINK\" ]] ; then\r\n\techo \"ERROR: Module name was mistyped or is not currently supported.\"\r\n\techo \"Available modules:\"\r\n\t.\/mb-warband-links.sh modules\r\n\texit 1\r\nfi\r\n\r\n# Install base server files, if needed\r\nif [[ ! -z \"$MODULE_BASE_LINK\" ]] ; then\r\n\twget -qO- $MODULE_BASE_LINK | tar xvz --strip-components=1\r\nfi\r\n\r\n# Install module files\r\nwget -qO- $MODULE_LINK | tar xvz --strip-components=1\r\ncp -rf \"$MODULE\"_Sample_Config.txt Config.txt\r\ndos2unix Config.txt\r\n\r\necho \"Module: $MODULE has been sucessfully installed.\"\r\nrm mb-warband-links.sh\r\n\r\n# Edit Server Name ($SERVER_NAME)\r\nsed -i 's\/.*set_server_name.*\/set_server_name '\"$SERVER_NAME\"'\/g' Config.txt\r\n\r\n# Edit Server Admin Password ($ADMIN_PASSWORD)\r\nsed -i 's\/.*set_pass_admin.*\/set_pass_admin '\"$ADMIN_PASS\"'\/g' Config.txt\r\n\r\n# Edit Server Password ($SERVER_PASS)\r\nsed -i 's\/.*set_pass .*\/set_pass '\"$SERVER_PASS\"'\/g' Config.txt\r\nsed -i 's\/.*set_pass$\/set_pass '\"$SERVER_PASS\"'\/g' Config.txt\r\n\r\n# Edit Server Welcome Message ($MOTD)\r\nsed -i 's\/.*set_welcome_message.*\/set_welcome_message '\"$MOTD\"'\/g' Config.txt\r\n\r\n# Edit Player Count ($PLAYERS)\r\nsed -i 's\/.*set_max_players.*\/set_max_players '\"$PLAYERS\"' '\"$PLAYERS\"'\/g' Config.txt\r\n\r\n# Edit Server Port ($SERVER_PORT)\r\nsed -i 's\/.*set_port.*\/set_port '\"$SERVER_PORT\"'\/g' Config.txt", - "container": "ubuntu:16.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Module", - "description": "Name of the module. For a full list of supported modules visit --- https:\/\/github.com\/masonr\/pterodactyl-images\/tree\/mb-warband --- and copy the module name from the first column exactly as shown.", - "env_variable": "MODULE", - "default_value": "Native", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:200" - }, - { - "name": "Player Count", - "description": "Number of players", - "env_variable": "PLAYERS", - "default_value": "32", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|integer|max:200" - }, - { - "name": "Server Name", - "description": "Name of the game server", - "env_variable": "SERVER_NAME", - "default_value": "Pterodactyl_Server", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:100" - }, - { - "name": "Admin Password", - "description": "Password for admin login", - "env_variable": "ADMIN_PASS", - "default_value": "ptero", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:50" - }, - { - "name": "Welcome Message", - "description": "Welcome message \/ MOTD", - "env_variable": "MOTD", - "default_value": "Welcome!", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:500" - }, - { - "name": "Server Password", - "description": "Password for the server.\r\nLeave blank to keep server unlocked.", - "env_variable": "SERVER_PASS", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|string|max:50" - } - ] -} diff --git a/rdr/README.md b/rdr/README.md new file mode 100644 index 00000000..abade62b --- /dev/null +++ b/rdr/README.md @@ -0,0 +1,6 @@ +# Read Dead Redemption + +## RedM + +[RedM](https://redm.gg/) +RedM, for Red Dead Redemption 2 on PC. Launching now, based on the CitizenFX framework and Cfx.re technology. \ No newline at end of file diff --git a/rdr/redm/README.md b/rdr/redm/README.md new file mode 100644 index 00000000..469e3f07 --- /dev/null +++ b/rdr/redm/README.md @@ -0,0 +1,16 @@ +# Red M + +### From the [RedM](https://redm.gg/) Site +RedM, for Red Dead Redemption 2 on PC. Launching now, based on the CitizenFX framework and Cfx.re technology. + +### Install notes +- Only installs latest version versions are not selectable. + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 30120 | +| ServerListing | 30110 | +| cfx join links | 30130 | \ No newline at end of file diff --git a/rdr/redm/egg-red-m.json b/rdr/redm/egg-red-m.json new file mode 100644 index 00000000..8e2c3f9d --- /dev/null +++ b/rdr/redm/egg-red-m.json @@ -0,0 +1,81 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-02-01T08:00:01-05:00", + "name": "RedM", + "author": "parker@parkervcp.com", + "description": "A new RedM egg for the latest builds due to recent changes in RedM", + "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 {{CFX_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg +set gamename rdr3", + "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}", + "startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# CFx 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 \/mnt\/server\/logs\/\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 [ \"${CFX_VERSION}\" == \"latest\" ] || [ -z ${CFX_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 ${CFX_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\necho \"install complete\"", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "CFX license", + "description": "Required to start the service. Get your keys at https:\/\/keymaster.fivem.net\/", + "env_variable": "CFX_LICENSE", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "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", + "description": "Set the fivem max play count", + "env_variable": "MAX_PLAYERS", + "default_value": "32", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,32" + }, + { + "name": "Server Hostname", + "description": "The name that shows up in the server browser", + "env_variable": "SERVER_HOSTNAME", + "default_value": "My new FXServer!", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "CFX version", + "description": "The CFX Server version that is to be installed.\r\n\r\nan example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "env_variable": "CFX_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:50" + }, + { + "name": "Download Link", + "description": "This is the link to download redm from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", + "env_variable": "DOWNLOAD_URL", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "string|nullable" + } + ] +} diff --git a/scripts/download_link_validator.sh b/scripts/download_link_validator.sh new file mode 100644 index 00000000..10a6d69a --- /dev/null +++ b/scripts/download_link_validator.sh @@ -0,0 +1,11 @@ +## this is a simple script to validate a download url actaully exists + +if [ ! -z "${DOWNLOAD_URL}"]; then + if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then + echo -e "link is valid. setting download link to ${DOWNLOAD_URL}" + DOWNLOAD_LINK=${DOWNLOAD_URL} + else + echo -e "link is invalid closing out" + exit 2 + fi +fi \ No newline at end of file diff --git a/scripts/file_unpacker.sh b/scripts/file_unpacker.sh new file mode 100644 index 00000000..c5d818f5 --- /dev/null +++ b/scripts/file_unpacker.sh @@ -0,0 +1,16 @@ +## only needs to have the file with a file passed into it to get the filetype. +## only supports tar.gz/xz and zip currently for unpacking. +## The value for ${DOWNLOAD_LINK##*/} is derived from DOWNLOAD_LINK +## if the download link is https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar then the ##*/ is server.jar + +FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2) +if [ "$FILETYPE" == "gzip" ]; then + tar xzvf ${DOWNLOAD_LINK##*/} +elif [ "$FILETYPE" == "Zip" ]; then + unzip ${DOWNLOAD_LINK##*/} +elif [ "$FILETYPE" == "XZ" ]; then + tar xvf ${DOWNLOAD_LINK##*/} +else + echo -e "unknown filetype. Exeting" + exit 2 +fi \ No newline at end of file diff --git a/scripts/github_release_grabber.sh b/scripts/github_release_grabber.sh new file mode 100644 index 00000000..14d4e70e --- /dev/null +++ b/scripts/github_release_grabber.sh @@ -0,0 +1,27 @@ +## this is a simple script to use the github API for release versions. +## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way) +## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.) +## if you are getting hit with GitHub API limit issues then you need to have the user and token set. + +if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then + echo -e "using anon api call" +else + echo -e "user and oauth token set" + alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} ' +fi + +## get release info and download links +LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest") +RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases") + +if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then + DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH}) +else + VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name') + if [ "${VERSION}" == "${VERSION_CHECK}" ]; then + DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH}) + else + echo -e "defaulting to latest release" + DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url) + fi +fi \ No newline at end of file diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh new file mode 100644 index 00000000..7742daa9 --- /dev/null +++ b/scripts/steamcmd_installer.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# steamcmd Base Installation Script +# +# Server Files: /mnt/server +# 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 --no-install-recommends install curl lib32gcc1 ca-certificates + +## just in case someone removed the defaults. +if [ "${STEAM_USER}" == "" ]; then + echo -e "steam user is not set.\n" + echo -e "Using anonymous user.\n" + STEAM_USER=anonymous + STEAM_PASS="" + STEAM_AUTH="" +else + echo -e "user set to ${STEAM_USER}" +fi + +## download and install steamcmd +cd /tmp +mkdir -p /mnt/server/steamcmd +curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz +tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd +cd /mnt/server/steamcmd + +# SteamCMD fails otherwise for some reason, even running as root. +# This is changed at the end of the install process anyways. +chown -R root:root /mnt +export HOME=/mnt/server + +## install game using steamcmd +./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 +mkdir -p /mnt/server/.steam/sdk32 +cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so + +## set up 64 bit libraries +mkdir -p /mnt/server/.steam/sdk64 +cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so \ No newline at end of file diff --git a/source_servers/starbound/egg-starbound.json b/source_servers/starbound/egg-starbound.json deleted file mode 100644 index 39dcccc8..00000000 --- a/source_servers/starbound/egg-starbound.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-08-14T10:11:29-05:00", - "name": "Starbound", - "author": "hostmaster@watefallnetwork.net", - "description": "Starbound takes place in a two-dimensional, procedurally generated universe which the player is able to explore in order to obtain new weapons, armor, and items, and to visit towns and villages inhabited by various intelligent lifeforms.", - "image": "quay.io\/pterodactyl\/core:source", - "startup": ".\/starbound_server", - "config": { - "files": "{\r\n \"storage\/starbound_server.config\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"gameServerPort\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Starting UniverseServer\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "^C" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl 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\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmv \/mnt\/server\/linux\/* \/mnt\/server\/\r\nrm -rf \/mnt\/server\/linux\r\nsed -i -e 's\/\\.\\.\/\\.\/g' \/mnt\/server\/sbinit.config\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\nmkdir \/mnt\/server\/storage\r\n\r\ncat <> \/mnt\/server\/storage\/starbound_server.config\r\n{\r\n \"allowAdminCommands\" : true,\r\n \"allowAdminCommandsFromAnyone\" : false,\r\n \"allowAnonymousConnections\" : true,\r\n \"allowAssetsMismatch\" : true,\r\n \"anonymousConnectionsAreAdmin\" : false,\r\n \"bannedIPs\" : [],\r\n \"bannedUuids\" : [],\r\n \"checkAssetsDigest\" : false,\r\n \"clearPlayerFiles\" : false,\r\n \"clearUniverseFiles\" : false,\r\n \"clientIPJoinable\" : false,\r\n \"clientP2PJoinable\" : true,\r\n \"configurationVersion\" : {\r\n \"basic\" : 2,\r\n \"server\" : 4\r\n },\r\n \"crafting\" : {\r\n \"filterHaveMaterials\" : false\r\n },\r\n \"gameServerBind\" : \"::\",\r\n \"gameServerPort\" : 21025,\r\n \"interactiveHighlight\" : true,\r\n \"inventory\" : {\r\n \"pickupToActionBar\" : true\r\n },\r\n \"maxPlayers\" : 8,\r\n \"maxTeamSize\" : 4,\r\n \"monochromeLighting\" : false,\r\n \"playerBackupFileCount\" : 3,\r\n \"queryServerBind\" : \"::\",\r\n \"queryServerPort\" : 21025,\r\n \"rconServerBind\" : \"::\",\r\n \"rconServerPassword\" : \"\",\r\n \"rconServerPort\" : 21026,\r\n \"rconServerTimeout\" : 1000,\r\n \"runQueryServer\" : false,\r\n \"runRconServer\" : false,\r\n \"safeScripts\" : true,\r\n \"scriptInstructionLimit\" : 10000000,\r\n \"scriptInstructionMeasureInterval\" : 10000,\r\n \"scriptProfilingEnabled\" : false,\r\n \"scriptRecursionLimit\" : 100,\r\n \"serverFidelity\" : \"automatic\",\r\n \"serverName\" : \"A Starbound Server\",\r\n \"serverOverrideAssetsDigest\" : null,\r\n \"serverUsers\" : {\r\n },\r\n \"tutorialMessages\" : true\r\n}\r\nEOF", - "container": "ubuntu:16.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Steam User", - "description": "A Steam username with Starbound 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" - }, - { - "name": "Game ID", - "description": "The ID corresponding to the game to download and run using SRCDS.", - "env_variable": "SRCDS_APPID", - "default_value": "211820", - "user_viewable": 1, - "user_editable": 0, - "rules": "string" - } - ] -} \ No newline at end of file diff --git a/squad/squad/egg-squad.json b/squad/squad/egg-squad.json deleted file mode 100644 index a8735ce7..00000000 --- a/squad/squad/egg-squad.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-02-21T13:00:36-05:00", - "name": "Squad", - "author": "brycea@rapidnetworks.org", - "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", - "startup": ".\/SquadServer.sh Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", - "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"LogInit:Display: Starting Game.\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}", - "stop": "^C" - }, - "scripts": { - "installation": { - "script": "apt 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\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 403240 +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", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Query Port", - "description": "Query port for your Squad server.", - "env_variable": "QUERY_PORT", - "default_value": "27165", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|numeric" - } - ] -} \ No newline at end of file diff --git a/starmade/starmade/README.md b/starmade/starmade/README.md new file mode 100644 index 00000000..33583884 --- /dev/null +++ b/starmade/starmade/README.md @@ -0,0 +1,10 @@ +# Starmade Server +### From their [Homepage](https://starmadedock.net/) - [Guide](https://www.star-made.org/help/setting_up_a_server) +The ultimate space sandbox. Participate in epic fleet battles, form alliances, strive to dominate entire galaxies and harness the universe’s resources for your industrious empire or the destruction of others. Customise your experience, the universe is yours! + +### Server Ports +Ports required to run the server + +| Port | default | +|---------|---------| +| Game | 4242 | diff --git a/starmade/starmade/egg-starmade.json b/starmade/starmade/egg-starmade.json new file mode 100644 index 00000000..3a20b6e8 --- /dev/null +++ b/starmade/starmade/egg-starmade.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-07-14T13:03:01+02:00", + "name": "starmade", + "author": "contact@hunters-tavern.de", + "description": "starmade", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128m -Xmx{{SERVER_MEMORY}}m -jar {{SERVER_JARFILE}} -server -port:{{SERVER_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"SenableGameState(1)\"\r\n}", + "logs": "{}", + "stop": "\/shutdown 0" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# starmade 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\nwget -O starter.jar http:\/\/files.star-made.org\/StarMade-Starter.jar\r\n\r\njava -jar starter.jar -nogui\r\n\r\nmv .\/StarMade\/* .\/\r\nrm -r .\/StarMade", + "container": "openjdk:13-ea-27-jdk-alpine3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jarfile", + "description": "", + "env_variable": "SERVER_JARFILE", + "default_value": "StarMade.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + } + ] +} diff --git a/source_servers/7_days_to_die/README.md b/steamcmd_servers/7_days_to_die/README.md similarity index 100% rename from source_servers/7_days_to_die/README.md rename to steamcmd_servers/7_days_to_die/README.md diff --git a/source_servers/7_days_to_die/egg-7-days-to-die.json b/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json similarity index 65% rename from source_servers/7_days_to_die/egg-7-days-to-die.json rename to steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 5f5f7c0b..858e871d 100644 --- a/source_servers/7_days_to_die/egg-7-days-to-die.json +++ b/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -3,14 +3,14 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-10-23T10:20:04-04:00", + "exported_at": "2019-11-06T20:06:59-05:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", - "image": "quay.io\/parkervcp\/pterodactyl-images:source", - "startup": "'.\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${{SERVER_PORT}} -ServerMaxPlayerCount=${{MAX_PLAYERS}} -GameDifficulty=${{GAME_DIFFICULTY}} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=8081 -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 8081; do echo \"Waiting for telnet connection...\"; sleep 5; done && telnet -E 127.0.0.1 8081'", + "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", + "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=8081 -logfile logs\/latest.log & echo -e \"Checing on telnet connection\" && until nc -z -v -w5 127.0.0.1 8081; do echo \"Waiting for telnet connection...\"; sleep 5; done && telnet -E 127.0.0.1 8081", "config": { - "files": "{\r\n \"serverconfig.xml\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"ServerPort\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "files": "{}", "startup": "{\r\n \"done\": \"Connected with 7DTD server\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "shutdown" @@ -49,6 +49,24 @@ "user_viewable": 0, "user_editable": 0, "rules": "required|string|max:20" + }, + { + "name": "Auto Update", + "description": "This is to auto update the server on start.\r\n\r\nOptions are 0 or 1\r\nDefault is 1", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|boolean" + }, + { + "name": "ld lib path", + "description": "This is really annoying that more games are doing this.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" } ] -} +} \ No newline at end of file diff --git a/steamcmd_servers/README.md b/steamcmd_servers/README.md new file mode 100644 index 00000000..0bf6968c --- /dev/null +++ b/steamcmd_servers/README.md @@ -0,0 +1,72 @@ +# steamcmd servers + +This is a collection of servers that use steamcmd to install. + +## 7 Days To Die +[7dtd](7_days_to_die/) + +## ARK +[ark](ark_survival_evolved/) + +## ARMA +[arma](arma/) +* [arma 3](arma/arma3/) +* [arma 3 headless](arma/arma3_headless_client/) + +## Citadel: Forged with Fire +[citadel](citadel/) + +## Conan Exiles +[conan_exiles](conan_exiles/) + +## Don't Starve +[dont_starve](dont_starve/) + +## ECO +[ECO](eco/) + +## HLDS Server +[hlds](hlds_server/) + +## Hurtworld +[hurtworld](hurtworld/) + +## Insurgency: Sandstorm +[Insurgency: Sandstorm](insurgency_sandstorm/) + +## Mordhau +[mordhau](mordhau/) + +## Onset +[onset](onset/) + +## Project Zomboid +[project_zomboid](project_zomboid/) + +## Rust Staging +[rust staging](rust_staging/) + +## SCP: Secret Laboratory +[SCP: Secret Laboratory](/scpsl/) + +## Soldat +[soldat](soldat/) + +## Squad +[squad](squad/) + +## Starbound +[starbound](starbound/) + +## Stationeers +[Stationeers](/steamcmd_servers/stationeers/) + +## Sven coop +[svencoop](svencoop) + +## Tower Unite +[Tower Unite](tower_unite) + +## Unturned + * [RocketMod](rocketmod) + * [Unturned](unturned) diff --git a/source_servers/ark_survival_evolved/README.md b/steamcmd_servers/ark_survival_evolved/README.md similarity index 70% rename from source_servers/ark_survival_evolved/README.md rename to steamcmd_servers/ark_survival_evolved/README.md index 1546d680..094dc5d6 100644 --- a/source_servers/ark_survival_evolved/README.md +++ b/steamcmd_servers/ark_survival_evolved/README.md @@ -2,7 +2,13 @@ Steam Description : As a man or woman stranded naked, freezing and starving on the shores of a mysterious island called ARK, you must hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements. Use your cunning and resources to kill or tame & breed the leviathan dinosaurs and other primeval creatures roaming the land, and team up with or prey on hundreds of other players to survive, dominate... and escape! -### Server Ports +## Recommended server settings +### Minimum RAM +This server requires about 4096M to run with no players. It is recommended to run 6144M by the ARK creators. + +See the following - https://ark.gamepedia.com/Dedicated_Server_Setup#Hardware + +## Server Ports | Port | default | |-------|---------| diff --git a/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json b/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json new file mode 100644 index 00000000..94678900 --- /dev/null +++ b/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json @@ -0,0 +1,117 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-07-10T21:55:50-04:00", + "name": "Ark: Survival Evolved", + "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", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", + "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": { + "files": "{}", + "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}", + "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 '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": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "env_variable": "SRCDS_APPID", + "default_value": "376030", + "user_viewable": 1, + "user_editable": 0, + "rules": "nullable|numeric" + }, + { + "name": "Server Name", + "description": "ARK server name", + "env_variable": "SESSION_NAME", + "default_value": "ARK SERVER", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:128" + }, + { + "name": "Server Password", + "description": "If specified, players must provide this password to join the server.", + "env_variable": "ARK_PASSWORD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|alpha_dash|between:1,100" + }, + { + "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.", + "env_variable": "ARK_ADMIN_PASSWORD", + "default_value": "PleaseChangeMe", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|alpha_dash|between:1,100" + }, + { + "name": "Use Rcon", + "description": "Enable or disable rcon system. (true or false)\r\n\r\nDefault True for the console to work.", + "env_variable": "ENABLE_RCON", + "default_value": "True", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|in:True,False" + }, + { + "name": "Rcon Port", + "description": "ARK rcon port used by rcon tools.", + "env_variable": "RCON_PORT", + "default_value": "27020", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric" + }, + { + "name": "Query Port", + "description": "ARK query port used by steam server browser and ark client server browser.", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric" + }, + { + "name": "Server Map", + "description": "Available Maps: TheIsland, TheCenter, Ragnarok, ScorchedEarth_P, Aberration_P, Extinction, Valguero_P, Genesis", + "env_variable": "SERVER_MAP", + "default_value": "TheIsland", + "user_viewable": 1, + "user_editable": 1, + "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" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/arma/README.md b/steamcmd_servers/arma/README.md new file mode 100644 index 00000000..f90116a9 --- /dev/null +++ b/steamcmd_servers/arma/README.md @@ -0,0 +1,9 @@ +# ARMA + +ARMA is a series of first-person tactical military shooters, originally released for Microsoft Windows. It features large elements of realism and simulation; a blend of large-scale military conflict spread across large areas alongside the more close quartered battles. + +## ARMA III +[arma 3](arma3/) + +## ARMA III headless client +[arma 3 headless](arma3_headless_client/) \ No newline at end of file diff --git a/arma/arma3/README.md b/steamcmd_servers/arma/arma3/README.md similarity index 97% rename from arma/arma3/README.md rename to steamcmd_servers/arma/arma3/README.md index 9bd5392a..15eb3296 100644 --- a/arma/arma3/README.md +++ b/steamcmd_servers/arma/arma3/README.md @@ -1,4 +1,4 @@ -# Example Server Name +# Arma 3 ### From their [Site](https://arma3.com/) Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. diff --git a/arma/arma3/egg-arma3-config/basic.cfg b/steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg similarity index 100% rename from arma/arma3/egg-arma3-config/basic.cfg rename to steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg diff --git a/arma/arma3/egg-arma3-config/server.cfg b/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg similarity index 88% rename from arma/arma3/egg-arma3-config/server.cfg rename to steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg index ee73e428..2615bf70 100644 --- a/arma/arma3/egg-arma3-config/server.cfg +++ b/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg @@ -14,7 +14,7 @@ // GENERAL SETTINGS // Hostname for server. -hostname = "Arma 3 Server" +hostname = "Arma 3 Server"; // Server password - for private servers. //password = "arma3pass"; @@ -34,6 +34,34 @@ logFile = "arma3server.log"; // Minimum Required Client Build //requiredBuild = 95691 +class Missions +{ + class Mission1 + { + template = ; + difficulty = "Regular"; + class Params {}; + }; + class Mission2 + { + template = ; + difficulty = "Regular"; + class Params {}; + }; + class Mission3 + { + template = ; + difficulty = "Regular"; + class Params {}; + }; + class Mission4 + { + template = ; + difficulty = "Regular"; + class Params {}; + }; +}; + // Message of the Day (MOTD) motd[] = { "Welcome to My Arma 3 Server", @@ -127,4 +155,4 @@ localClient[] = {"127.0.0.1", "172.18.0.1"}; // BattlEye Anti-Cheat License // 0 = decline // 1 = accept -battleyeLicense = 1; \ No newline at end of file +battleyeLicense = 1; diff --git a/arma/arma3/egg-arma3.json b/steamcmd_servers/arma/arma3/egg-arma3.json similarity index 64% rename from arma/arma3/egg-arma3.json rename to steamcmd_servers/arma/arma3/egg-arma3.json index 6cafce19..66496d91 100644 --- a/arma/arma3/egg-arma3.json +++ b/steamcmd_servers/arma/arma3/egg-arma3.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-13T18:40:40-04:00", + "exported_at": "2019-12-26T15:50:38-05:00", "name": "Arma 3", "author": "daave@aaathats3as.com", "description": "Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC's premier military game. Authentic, diverse, open - Arma 3 sends you to war.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl\r\napt -y --no-install-recommends install lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSLO http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\ntouch \/mnt\/server\/latest.log\r\nchown -R root:root \/mnt\r\n\r\ntar -xzvf \/tmp\/steamcmd_linux.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${APP_ID} validate +quit\r\n\r\ncd \/mnt\/server\/\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/server.cfg", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\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## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg", + "container": "debian:buster-slim", "entrypoint": "bash" } }, @@ -26,21 +26,12 @@ { "name": "Game App ID", "description": "Steam CMD App ID.", - "env_variable": "APP_ID", + "env_variable": "SRCDS_APPID", "default_value": "233780", "user_viewable": 1, "user_editable": 0, "rules": "required|alpha_dash|between:1,100" }, - { - "name": "Basic", - "description": "Basic network config", - "env_variable": "BASIC", - "default_value": "basic.cfg", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, { "name": "Config", "description": "Server config", @@ -95,6 +86,15 @@ "user_editable": 0, "rules": "nullable|string" }, + { + "name": "Basic", + "description": "Basic network config", + "env_variable": "BASIC", + "default_value": "basic.cfg", + "user_viewable": 1, + "user_editable": 1, + "rules": "string|nullable" + }, { "name": "Steam Auth Code", "description": "Steam Auth Code only when you're using Steam Auth", @@ -105,4 +105,4 @@ "rules": "nullable|string" } ] -} +} \ No newline at end of file diff --git a/arma/arma3_headless_client/README.md b/steamcmd_servers/arma/arma3_headless_client/README.md similarity index 100% rename from arma/arma3_headless_client/README.md rename to steamcmd_servers/arma/arma3_headless_client/README.md diff --git a/arma/arma3_headless_client/egg-arma3-headless-client.json b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json similarity index 62% rename from arma/arma3_headless_client/egg-arma3-headless-client.json rename to steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json index b0cb6e02..775b722a 100644 --- a/arma/arma3_headless_client/egg-arma3-headless-client.json +++ b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-25T14:09:36+01:00", + "exported_at": "2019-12-26T15:50:34-05:00", "name": "Arma 3 Headless Client", "author": "brainp4in@blueberry-hood-clan.de", "description": "Headless Clients are used to offload AI calculations from the Arma 3 Server.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl\r\napt -y --no-install-recommends install lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSLO http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\ntouch \/mnt\/server\/latest.log\r\nchown -R root:root \/mnt\r\n\r\ntar -xzvf \/tmp\/steamcmd_linux.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${APP_ID} validate +quit\r\n\r\ncd \/mnt\/server\/\r\ncurl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/server.cfg\r\ncurl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/basic.cfg", + "script": "#!\/bin\/bash\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## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -26,7 +26,7 @@ { "name": "Game App ID", "description": "Steam CMD App ID.", - "env_variable": "APP_ID", + "env_variable": "SRCDS_APPID", "default_value": "233780", "user_viewable": 1, "user_editable": 0, @@ -96,4 +96,4 @@ "rules": "nullable|string" } ] -} +} \ No newline at end of file diff --git a/steamcmd_servers/citadel/README.md b/steamcmd_servers/citadel/README.md new file mode 100644 index 00000000..e85ca5c1 --- /dev/null +++ b/steamcmd_servers/citadel/README.md @@ -0,0 +1,16 @@ +# Citadel: Forged with fire +Citadel: Forged With Fire is a massive online sandbox RPG set in the mystical world of Ignus. Featuring magic, spellcasting, building, exploring and crafting as you fight to make a name for yourself and achieve notoriety across the land. + +## Server Ports + +| Port | default | +|-------|---------| +| Game | 7777 | +| Query | 27015 | + +## Notes + +You need to setup the Config of the Server in +/Config/Game.ini + +-> WorldCreationSettings diff --git a/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json b/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json new file mode 100644 index 00000000..d8f8e048 --- /dev/null +++ b/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-21T09:35:15+02:00", + "name": "Citadel: Forged with Fire", + "author": "info@goover.de", + "description": "Citadel: Forged With Fire is a massive online sandbox RPG set in the mystical world of Ignus. Featuring magic, spellcasting, building, exploring and crafting as you fight to make a name for yourself and achieve notoriety across the land.", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/CitadelServer.sh", + "config": { + "files": "{\r\n \"Config\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ConnectionPort=\": \"ConnectionPort={{server.build.default.port}}\",\r\n \"QueryPort=\": \"QueryPort={{server.build.env.QPORT}}\",\r\n \"Password\": \"Password={{server.build.env.ADMIN_PASSWD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Steam Server initialized and registered with UWorks\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "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 'ubuntu:18.04'\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##Copy steamclient.so to correct Dir\r\nmkdir -p $HOME\/Citadel\/Plugins\/UWorks\/Source\/ThirdParty\/Linux\r\nchmod -R a+w,a+x $HOME\/Citadel\/Plugins\/UWorks\/Source\/ThirdParty\/Linux\r\nif [[ ! -f $HOME\/Citadel\/Plugins\/UWorks\/Source\/ThirdParty\/Linux\/steamclient.so ]]; then \r\n\tln -s ..\/..\/..\/..\/..\/..\/linux64\/steamclient.so $HOME\/Citadel\/Plugins\/UWorks\/Source\/ThirdParty\/Linux\/steamclient.so\r\n\r\nfi\r\n\r\n## Create Game.ini\r\nmkdir $HOME\/Config\r\n\r\nif [[ -d $HOME\/Citadel\/Saved\/Config\/LinuxServer ]]; then \r\n\trm -rf $HOME\/Citadel\/Saved\/Config\/LinuxServer\r\nfi\r\n\r\nif [[ -d $HOME\/Engine\/Saved\/Config\/LinuxServer ]]; then \r\n\trm -rf $HOME\/Engine\/Saved\/Config\/LinuxServer\r\nfi\r\n\r\nmkdir -p $HOME\/Citadel\/Saved\/Config\r\nmkdir -p $HOME\/Engine\/Saved\/Config\r\n\r\nln -s ..\/..\/..\/Config $HOME\/Citadel\/Saved\/Config\/LinuxServer\r\nln -s ..\/..\/..\/Config $HOME\/Engine\/Saved\/Config\/LinuxServer\r\n\r\n#rm -fR $HOME\/Citadel\/Saved\/Config\/LinuxServer\/Game.ini\r\ncat < $HOME\/Config\/Game.ini\r\n[UWorks]\r\nConnectionPort=7777\r\nQueryPort=27015\r\n\r\n[\/Script\/Citadel.SocialManager]\r\nPassword=changeme\r\n\r\n[\/Script\/Citadel.CitadelGameInstance]\r\nWorldCreationSettings=(ServerName=\"CitadelServer\",Password=\"YourServerPassword\",ServerType=PVP,PlayerLimit=20,bPrivate=true,ExperienceMultiplier=1.000000,InventoryCapacityMultipler=1.000000,KnowledgePointEarnedMultiplier=1.000000,CharacterPointEarnedMultiplier=1.000000,bUnlimitedResources=false,PlayerDamageMultiplier=1.000000,ArmorMultiplier=1.000000,BaseManaRegen=1.000000,bInventoryWeightRestrictions=true,MagicFindMultiplier=1.000000,CraftingMagicFindChanceMultiplier=1.000000,FlyingCostMultiplier=1.000000,FlyingSpeedMultiplier=1.000000,ResourceCollectionMultiplier=1.000000,StructureDamageMultiplier=1.000000,bRespectNoBuildZones=true,MagicStructureManaRegenerationMultiplier=1.000000,MagicStructureManaConsumptionMultiplier=0.000000,bFreeBuildMode=false,TimeOfDayLock=Auto,NPCPopulationMultiplier=1.000000,StructureDecayMultiplier=2.000000,bThronesDecay=true)\r\nEOT\r\n\r\nchmod +x $HOME\/CitadelServer.sh", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "ID", + "env_variable": "SRCDS_APPID", + "default_value": "489650", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Query Port", + "description": "port", + "env_variable": "QPORT", + "default_value": "27015", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:100" + }, + { + "name": "Admin Password", + "description": "", + "env_variable": "ADMIN_PASSWD", + "default_value": "changeme", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:100" + } + ] +} \ No newline at end of file diff --git a/conan_exiles/conan_exiles/README.md b/steamcmd_servers/conan_exiles/README.md similarity index 51% rename from conan_exiles/conan_exiles/README.md rename to steamcmd_servers/conan_exiles/README.md index c490ffdd..4ec44fe6 100644 --- a/conan_exiles/conan_exiles/README.md +++ b/steamcmd_servers/conan_exiles/README.md @@ -1,5 +1,5 @@ -### From their [Site](https://arma3.com/) -Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. +### From their [Site](https://conanexiles.com/) +Conan Exiles is online multiplayer survival game set in the lands of Conan the Barbarian ### Minimum RAM warning This server requires about 4096m to run properly. diff --git a/steamcmd_servers/conan_exiles/egg-conan-exiles.json b/steamcmd_servers/conan_exiles/egg-conan-exiles.json new file mode 100644 index 00000000..65c9c0b0 --- /dev/null +++ b/steamcmd_servers/conan_exiles/egg-conan-exiles.json @@ -0,0 +1,72 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-07-11T08:34:24-04:00", + "name": "Conan Exiles", + "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.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_wine-5", + "startup": "xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine \/home\/container\/ConanSandboxServer.exe -console -log", + "config": { + "files": "{}", + "startup": "{}", + "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\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": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download.", + "env_variable": "SRCDS_APPID", + "default_value": "443030", + "user_viewable": 1, + "user_editable": 0, + "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" + } + ] +} \ No newline at end of file diff --git a/dont_starve/dont_starve/README.md b/steamcmd_servers/dont_starve/README.md similarity index 100% rename from dont_starve/dont_starve/README.md rename to steamcmd_servers/dont_starve/README.md diff --git a/steamcmd_servers/dont_starve/egg-don-t-starve-together.json b/steamcmd_servers/dont_starve/egg-don-t-starve-together.json new file mode 100644 index 00000000..20a42350 --- /dev/null +++ b/steamcmd_servers/dont_starve/egg-don-t-starve-together.json @@ -0,0 +1,108 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-07-10T10:48:40-04:00", + "name": "Don't Starve Together", + "author": "parker@parkervcp.com", + "description": "Don\u2019t Starve Together is an uncompromising wilderness survival game full of science and magic.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", + "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": { + "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}", + "logs": "{}", + "stop": "c_shutdown()" + }, + "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\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", + "entrypoint": "bash" + } + }, + "variables": [ + { + "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.\r\n\r\ndefault is 16", + "env_variable": "MAX_PLAYERS", + "default_value": "16", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,31" + }, + { + "name": "Server Token", + "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", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "App ID", + "description": "Steam Server App ID", + "env_variable": "SRCDS_APPID", + "default_value": "343050", + "user_viewable": 1, + "user_editable": 0, + "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" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/dont_starve/server.caves.ini b/steamcmd_servers/dont_starve/server.caves.ini new file mode 100644 index 00000000..574cb73d --- /dev/null +++ b/steamcmd_servers/dont_starve/server.caves.ini @@ -0,0 +1,10 @@ +[ACCOUNT] +encode_user_path = true + +[NETWORK] +server_port = 11000 + +[SHARD] +is_master = false +name = Caves +id = 1137196188 \ No newline at end of file diff --git a/steamcmd_servers/dont_starve/server.cluster.ini b/steamcmd_servers/dont_starve/server.cluster.ini new file mode 100644 index 00000000..78eb5a8b --- /dev/null +++ b/steamcmd_servers/dont_starve/server.cluster.ini @@ -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 \ No newline at end of file diff --git a/steamcmd_servers/dont_starve/server.master.ini b/steamcmd_servers/dont_starve/server.master.ini new file mode 100644 index 00000000..fc917d28 --- /dev/null +++ b/steamcmd_servers/dont_starve/server.master.ini @@ -0,0 +1,8 @@ +[ACCOUNT] +encode_user_path = true + +[NETWORK] +server_port = 10999 + +[SHARD] +is_master = true diff --git a/steamcmd_servers/dont_starve/worldgenoverride.caves.lua b/steamcmd_servers/dont_starve/worldgenoverride.caves.lua new file mode 100644 index 00000000..b26748d1 --- /dev/null +++ b/steamcmd_servers/dont_starve/worldgenoverride.caves.lua @@ -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" + }, +} \ No newline at end of file diff --git a/steamcmd_servers/dont_starve/worldgenoverride.master.lua b/steamcmd_servers/dont_starve/worldgenoverride.master.lua new file mode 100644 index 00000000..981ec088 --- /dev/null +++ b/steamcmd_servers/dont_starve/worldgenoverride.master.lua @@ -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" + }, +} \ No newline at end of file diff --git a/steamcmd_servers/eco/README.md b/steamcmd_servers/eco/README.md new file mode 100644 index 00000000..147bda91 --- /dev/null +++ b/steamcmd_servers/eco/README.md @@ -0,0 +1,15 @@ +# Eco +Steam Description +Eco is a community-based game; the players develop laws, government, and an economy to determine the success of their world. We need extensive playtesting to get the balance of our core features just right. Early Access is the perfect fit for finding an audience for this while also funding additional development. + +### Server Ports +Eco requires up to 2 ports + +game port (default 3000) +web port (default 3001) + + +| Port | default | +|---------|---------------| +| Game | 3000 | +| Web | 3001 | \ No newline at end of file diff --git a/steamcmd_servers/eco/egg-eco.json b/steamcmd_servers/eco/egg-eco.json new file mode 100644 index 00000000..49041fa0 --- /dev/null +++ b/steamcmd_servers/eco/egg-eco.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-30T09:04:05+01:00", + "name": "Eco", + "author": "info@goover.de", + "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", + "startup": "\/usr\/bin\/mono .\/EcoServer.exe -nogui", + "config": { + "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n \"Password\": \"{{server.build.env.SRV_PWD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server Initialization \",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "exit" + }, + "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\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", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "ID", + "env_variable": "SRCDS_APPID", + "default_value": "739590", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Web server port", + "description": "port", + "env_variable": "WEB_PORT", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Public Server", + "description": "Public Server = true | Private Server = false", + "env_variable": "PUB_SRV", + "default_value": "false", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Server Password", + "description": "Password to join the Server", + "env_variable": "SRV_PWD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:20" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/hlds_server/README.md b/steamcmd_servers/hlds_server/README.md new file mode 100644 index 00000000..8f65ef99 --- /dev/null +++ b/steamcmd_servers/hlds_server/README.md @@ -0,0 +1,12 @@ +# HLDS Servers + +This is for older games like CS 1.6 (default game) and other servers that still run on the older HLDS server under id 90 + +### Server Ports +HLDS servers require up to 6 ports + +| Port | default | +|-----------|---------| +| Game/rcon | 27015 | +| HLTV | 27020 | +| VAC | 26900 | \ No newline at end of file diff --git a/steamcmd_servers/hlds_server/egg-custom-h-l-d-s-engine-game.json b/steamcmd_servers/hlds_server/egg-custom-h-l-d-s-engine-game.json new file mode 100644 index 00000000..173dc848 --- /dev/null +++ b/steamcmd_servers/hlds_server/egg-custom-h-l-d-s-engine-game.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-06-28T20:41:35-04:00", + "name": "Custom HLDS Engine Game", + "author": "parker@parkervcp.com", + "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel.", + "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", + "startup": ".\/hlds_run -console -game {{HLDS_GAME}} -port {{SERVER_PORT}} -sport {{VAC_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl 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\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +app_set_config 90 mod ${HLDS_GAME} +quit\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": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using HLDS.\r\n\r\nThe HLDS server ID is 90. This should not be changed.", + "env_variable": "SRCDS_APPID", + "default_value": "90", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Game Name", + "description": "The name corresponding to the game to download and run using HLDS.\r\n\r\nall the HLDS server names are here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Server_Name_Enumeration", + "env_variable": "HLDS_GAME", + "default_value": "cstrike", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|alpha_dash|between:1,100" + }, + { + "name": "Map", + "description": "The default map for the server.", + "env_variable": "SRCDS_MAP", + "default_value": "de_dust2", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|alpha_dash" + }, + { + "name": "VAC port", + "description": "Specifies the VAC port the server should use. Default is 26900.", + "env_variable": "VAC_PORT", + "default_value": "26900", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,5" + } + ] +} diff --git a/steamcmd_servers/hurtworld/README.md b/steamcmd_servers/hurtworld/README.md new file mode 100644 index 00000000..eb62c64e --- /dev/null +++ b/steamcmd_servers/hurtworld/README.md @@ -0,0 +1,15 @@ +# Hurtworld +### From their [website](http://hurtworld.com/) + +### 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. + +### Server Ports +These are the servers required ports + +| Port | default | +|---------|---------| +| Game | 12871 | +| Query | 13871 | + +#### Mods/Plugins may require ports to be added to the server. diff --git a/steamcmd_servers/hurtworld/egg-hurtworld.json b/steamcmd_servers/hurtworld/egg-hurtworld.json new file mode 100644 index 00000000..135369c1 --- /dev/null +++ b/steamcmd_servers/hurtworld/egg-hurtworld.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-16T20:41:27-04:00", + "name": "Hurtworld", + "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.", + "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", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"orphaned items\"\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "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\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", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "405100", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|regex:\/^(405100)$\/" + }, + { + "name": "Query Port", + "description": "Server Query Default Port", + "env_variable": "QUERY_PORT", + "default_value": "13871", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Max Players", + "description": "Max players allowed on the server at one time.", + "env_variable": "MAX_PLAYERS", + "default_value": "60", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:60" + }, + { + "name": "Server Name", + "description": "The name of your server in the public server list.", + "env_variable": "HOSTNAME", + "default_value": "A Hurtworld Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:50" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/insurgency_sandstorm/README.md b/steamcmd_servers/insurgency_sandstorm/README.md new file mode 100644 index 00000000..61d81823 --- /dev/null +++ b/steamcmd_servers/insurgency_sandstorm/README.md @@ -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 | diff --git a/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json b/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json new file mode 100644 index 00000000..03c21356 --- /dev/null +++ b/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/killing_floor_2/README.md b/steamcmd_servers/killing_floor_2/README.md new file mode 100644 index 00000000..49c02fd1 --- /dev/null +++ b/steamcmd_servers/killing_floor_2/README.md @@ -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 Biotech’s 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 | \ No newline at end of file diff --git a/steamcmd_servers/killing_floor_2/egg-killing-floor2.json b/steamcmd_servers/killing_floor_2/egg-killing-floor2.json new file mode 100644 index 00000000..db35b49a --- /dev/null +++ b/steamcmd_servers/killing_floor_2/egg-killing-floor2.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/mordhau/README.md b/steamcmd_servers/mordhau/README.md new file mode 100644 index 00000000..e7aa78b7 --- /dev/null +++ b/steamcmd_servers/mordhau/README.md @@ -0,0 +1,66 @@ +mog#Mordhau +Steam Description +MORDHAU is a medieval first & third person multiplayer slasher. Enter a hectic battlefield of up to 64 players as a mercenary in a fictional, but realistic world, where you will get to experience the brutal and satisfying melee combat that will have you always coming back for more. + + +### Server Ports +Mordhau requires 3 ports + +game port (default 7777) +query port (default 27015) +Beacon (default 15000) + +| Port | default | +|---------|---------------| +| Game | 7777 | +| Query | 27015 | +| Beacon | 15000 | + + + +### Map Rotation / Change Config +Lots of good information in this [thread](https://mordhau.com/forum/topic/10348/dedicated-server-hosting-guide-linux/?page=1) +You'll need to run the server once before the Mordhau/Saved/Config/LinuxServer folder is available + + +### Default Map Variable +By default the game always starts the same game map and mode. Change this variable to start the server wth your choice of map and mode. For example , Grad/HRD_Grad OR TaigaMap/FL_Taiga + +Map Types +HRD = Hoard +SKM = Skirmish +FL = Frontline +FFA = Deathmatch +BR = BattleRoyal +TDM = Team Death Match + + + +Valid types per map + +Grad/ +HRD_Grad +BR_Grad +FFA_Grad +FL_Grad +SKM_Grad + +Contraband/ +FFA_Contraband +SKM_Contraband +TDM_Contraband + +DuelCamp/ +FFA_Camp +FL_Camp +HRD_Camp +SKM_Camp +TDM_Camp_64 +TDM_Camp + +MaxMap/ +FFA_MountainPeak +FL_MountainPeak +HRD_MountainPeak +SKM_MountainPeak +TDM_MountainPeak diff --git a/steamcmd_servers/mordhau/egg-mordhau.json b/steamcmd_servers/mordhau/egg-mordhau.json new file mode 100644 index 00000000..f923995e --- /dev/null +++ b/steamcmd_servers/mordhau/egg-mordhau.json @@ -0,0 +1,99 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-09-07T20:08:55-04:00", + "name": "Mordhau", + "author": "trey@chazx.cc", + "description": "Mordhau is a multiplayer medieval hack 'n slash video game, developed by Slovenian independent studio Triternion, with a prominent aspect of skill-based competitive play and customization.", + "image": "quay.io\/parkervcp\/pterodactyl-images:game_mordhau", + "startup": ".\/MordhauServer.sh \/Game\/Mordhau\/Maps\/{{DEFAULT_MAP}}?MaxSlots={{MAX_PLAYERS}}? -USEALLAVAILABLECORES -Port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -beaconport={{BEACON_PORT}}", + "config": { + "files": "{\r\n \"Mordhau\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword=\": \"AdminPassword={{server.build.env.ADMIN_PASSWORD}}\",\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"ServerPassword=\": \"ServerPassword={{server.build.env.GAME_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Session GameSession successfully created\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\n\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\n\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\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\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 629800 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Max Players", + "description": "Max Players", + "env_variable": "MAX_PLAYERS", + "default_value": "48", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Source APP ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "629800", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Query Port", + "description": "", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:20" + }, + { + "name": "Admin Password", + "description": "Password for managing server from in game", + "env_variable": "ADMIN_PASSWORD", + "default_value": "password123", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:20" + }, + { + "name": "Server Name", + "description": "Name to show up in server Browser", + "env_variable": "SERVER_NAME", + "default_value": "Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:40" + }, + { + "name": "Server Password", + "description": "Password to get on the server", + "env_variable": "GAME_PASSWORD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:20" + }, + { + "name": "DEFAULT_MAP", + "description": "First map to load. Format Expected is \"MAPNAME\/TYPE_NAME\". Examples in Readme", + "env_variable": "DEFAULT_MAP", + "default_value": "Grad\/FL_Grad", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:40" + }, + { + "name": "Beacon Port", + "description": "Beacon Port required", + "env_variable": "BEACON_PORT", + "default_value": "15000", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/onset/README.md b/steamcmd_servers/onset/README.md new file mode 100644 index 00000000..274faf9e --- /dev/null +++ b/steamcmd_servers/onset/README.md @@ -0,0 +1,20 @@ +# Onset +From their [site](https://playonset.com/): +Onset is an open world multiplayer sandbox without predefined goals. Create and host your very own experience in Onset using scripting functions. Whether that is Roleplay, Cops and Robbers or classic Freeroam. Or just enjoy the different gamemodes created by other players. + +## Recommended server settings +### RAM +This server requires about 100M to run. + +See the following - https://dev.playonset.com/wiki/DedicatedServer#Minimum_requirements_2 + +### Disk +This server uses about 50M of disk. + +## Server Ports + +| Port | default | +|-------|---------| +| Game | 7777 | +| Query | 7776 | +| file | 7775 | \ No newline at end of file diff --git a/steamcmd_servers/onset/egg-onset.json b/steamcmd_servers/onset/egg-onset.json new file mode 100644 index 00000000..923fc507 --- /dev/null +++ b/steamcmd_servers/onset/egg-onset.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-12T18:56:28-05:00", + "name": "Onset", + "author": "parker@parkervcp.com", + "description": "Onset is an open world multiplayer sandbox without predefined goals. Create and host your very own experience in Onset using scripting functions. Whether that is Roleplay, Cops and Robbers or classic Freeroam. Or just enjoy the different gamemodes created by other players.", + "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", + "startup": ".\/OnsetServer", + "config": { + "files": "{\r\n \"server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"ipaddress\": \"0.0.0.0\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"servername\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"password\":\"{{server.build.env.SERVER_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Entering simulation\",\r\n \"userInteraction\": []\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 'ubuntu:18.04'\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 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\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", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "env_variable": "SRCDS_APPID", + "default_value": "1204170", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "ld lib path", + "description": "required to load server libraries.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Auto Update Server", + "description": "This flag will auto update the server on restart. (default is 1) \r\n\r\nSet to 1 to update\r\nSet to 0 to no update", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/source_servers/pixark/README.md b/steamcmd_servers/pixark/README.md similarity index 100% rename from source_servers/pixark/README.md rename to steamcmd_servers/pixark/README.md diff --git a/source_servers/pixark/egg-pix-a-r-k.json b/steamcmd_servers/pixark/egg-pix-a-r-k.json similarity index 97% rename from source_servers/pixark/egg-pix-a-r-k.json rename to steamcmd_servers/pixark/egg-pix-a-r-k.json index 16bb3905..219447bb 100644 --- a/source_servers/pixark/egg-pix-a-r-k.json +++ b/steamcmd_servers/pixark/egg-pix-a-r-k.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-06-07T12:39:45-04:00", + "exported_at": "2019-10-24T00:00:15-04:00", "name": "PixARK", "author": "hello@venatus.digital", "description": "A simple Docker container with Wine to run PixARK using Pterodactyl Panel", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# PixARK: 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\n\r\ntar -xzvf steamcmd.tar.gz -C \/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\/mnt\/server\/steamcmd\/steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir \/home\/container +app_update {{SRCDS_APPID}} +quit", + "script": "#!\/bin\/bash\r\n# PixARK: 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\n\r\ntar -xzvf steamcmd.tar.gz -C \/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\/mnt\/server\/steamcmd\/steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir \/mnt\/server +app_update {{SRCDS_APPID}} +quit", "container": "ubuntu:latest", "entrypoint": "bash" } diff --git a/steamcmd_servers/project_zomboid/README.md b/steamcmd_servers/project_zomboid/README.md new file mode 100644 index 00000000..9a6c9389 --- /dev/null +++ b/steamcmd_servers/project_zomboid/README.md @@ -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 | diff --git a/steamcmd_servers/project_zomboid/egg-project-zomboid.json b/steamcmd_servers/project_zomboid/egg-project-zomboid.json new file mode 100644 index 00000000..92910441 --- /dev/null +++ b/steamcmd_servers/project_zomboid/egg-project-zomboid.json @@ -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" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/rust/rust_autowipe/README.md b/steamcmd_servers/rust/rust_autowipe/README.md new file mode 100644 index 00000000..1a913465 --- /dev/null +++ b/steamcmd_servers/rust/rust_autowipe/README.md @@ -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) diff --git a/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json b/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json new file mode 100644 index 00000000..6bb60689 --- /dev/null +++ b/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json @@ -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" + } + ] +} diff --git a/source_servers/rust-staging/README.md b/steamcmd_servers/rust/rust_staging/README.md similarity index 100% rename from source_servers/rust-staging/README.md rename to steamcmd_servers/rust/rust_staging/README.md diff --git a/source_servers/rust-staging/egg-rust-staging.json b/steamcmd_servers/rust/rust_staging/egg-rust-staging.json similarity index 100% rename from source_servers/rust-staging/egg-rust-staging.json rename to steamcmd_servers/rust/rust_staging/egg-rust-staging.json diff --git a/steamcmd_servers/scpsl/README.md b/steamcmd_servers/scpsl/README.md new file mode 100644 index 00000000..33b220b1 --- /dev/null +++ b/steamcmd_servers/scpsl/README.md @@ -0,0 +1,30 @@ +## SCP: Secret Laboratory + +### [dedicated](dedicated/) +SCP: Secret Laboratory Dedicated Linux Server AddID: [996560](https://steamdb.info/app/996560/) +This Server is NOT compatible with ServerMod2 or MultiAdmin + +### [MultiAdmin](multiadmin) +SCP: Secret Laboratory Pterodactyl egg. Works with MP2. Steam AppID: [996560](https://steamdb.info/app/996560/) +This server is **NOT** compatible with SMod2 due to it not being updated for MP2. +This server is **NOT** compatible with LocalAdmin due to server input causing it to crash. MultiAdmin with a config option is used instead. + +### Minimum RAM +Minimum memory required to run the server: 3096 MB + +### Server Port +Default port required to run the server. + +| Port | Default | +|---------|---------| +| Game | 7777 | + +### Verification + +The server must be verified with the SCP:SL developers in order for it to be visible in the server browser. + +Instructions are as follows: +* Make sure your server complies with the [Verified Server Rules](https://scpslgame.com/Verified_server_rules.pdf). +* Send an email to `server.verification@scpslgame.com` from your configured contact email with the following information: + 1. The **public** IPv4 address of your server, with port. e.g. `69.69.69.69:7777` + 2. If the server's IP is static or dynamic. diff --git a/steamcmd_servers/scpsl/dedicated/README.md b/steamcmd_servers/scpsl/dedicated/README.md new file mode 100644 index 00000000..60411e1b --- /dev/null +++ b/steamcmd_servers/scpsl/dedicated/README.md @@ -0,0 +1,31 @@ +# SCP: Secret Laboratory +SCP: Secret Laboratory Dedicated Linux Server AddID: [996560](https://steamdb.info/app/996560/) + +This Server is NOT compatible with ServerMod2 or MultiAdmin + + +### Minimum RAM warning +Minimum required memory to run the server: 3096 MB + + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 7777 | + +### Verification + +The server must be verified to be visible in the Server Browser. + +Before requesting verification make sure your server follows the [Verified Server Rules](https://scpslgame.com/Verified_server_rules.pdf). + +#### Requesting Verification +Once ready send an email to server.verification@scpslgame.com with the following info: + +* The server's external IPv4 address +* The port used by the server +* If the server IP is static or dynamic + +#### Mods/Plugins may require ports to be added to the server. diff --git a/steamcmd_servers/scpsl/dedicated/egg-scpsl.json b/steamcmd_servers/scpsl/dedicated/egg-scpsl.json new file mode 100644 index 00000000..fff58d92 --- /dev/null +++ b/steamcmd_servers/scpsl/dedicated/egg-scpsl.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-01-29T19:54:33+01:00", + "name": "SCP:SL", + "author": "info@goover.de", + "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", + "startup": ".\/LocalAdmin {{SERVER_PORT}}", + "config": { + "files": "{\r\n \"config_gameplay.txt\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server_ip\": \"0.0.0.0\",\r\n \"forward_ports\": \"false\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Waiting for players..\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "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\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#echo 'gamedir_for_configs: true' >> \/mnt\/server\/hoster_policy.txt\r\n#chmod +x \/mnt\/server\/hoster_policy.txt\r\n\r\n#URL=$(curl https:\/\/api.github.com\/repos\/Grover-c13\/MultiAdmin\/releases\/latest | grep browser_download_url | cut -d '\"' -f 4)\r\n#wget -P \/mnt\/server\/ $URL\r\n#chmod +x \/mnt\/server\/MultiAdmin.exe\r\n\r\n#SmodVersion=$(curl https:\/\/api.github.com\/repos\/Grover-c13\/Smod2\/releases\/latest | grep tag_name | cut -d '\"' -f 4)\r\n#AssemblyURL=\"https:\/\/github.com\/Grover-c13\/Smod2\/releases\/download\/${SmodVersion}\/Assembly-CSharp.dll\"\r\n#SmodURL=\"https:\/\/github.com\/Grover-c13\/Smod2\/releases\/download\/${SmodVersion}\/Smod2.dll\"\r\n#wget -O \/mnt\/server\/SCPSL_Data\/Managed\/Smod2.dll $SmodURL\r\n#wget -O \/mnt\/server\/SCPSL_Data\/Managed\/Assembly-CSharp.dll $AssemblyURL\r\n#chmod +x \/mnt\/server\/SCPSL_Data\/Managed\/Smod2.dll\r\n#chmod +x \/mnt\/server\/SCPSL_Data\/Managed\/Assembly-CSharp.dll", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "996560", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/scpsl/multiadmin/README.md b/steamcmd_servers/scpsl/multiadmin/README.md new file mode 100644 index 00000000..52e05da4 --- /dev/null +++ b/steamcmd_servers/scpsl/multiadmin/README.md @@ -0,0 +1,29 @@ +# SCP: Secret Laboratory +SCP: Secret Laboratory Pterodactyl egg. Works with MP2. Steam AppID: [996560](https://steamdb.info/app/996560/) + +This server is **NOT** compatible with SMod2 due to it not being updated for MP2. + +This server is **NOT** compatible with LocalAdmin due to server input causing it to crash. MultiAdmin with a config option is used instead. + + +### Minimum RAM +Minimum memory required to run the server: 3096 MB + + +### Server Port +Default port required to run the server. + +| Port | Default | +|---------|---------| +| Game | 7777 | + + +### Verification + +The server must be verified with the SCP:SL developers in order for it to be visible in the server browser. + +Instructions are as follows: +* Make sure your server complies with the [Verified Server Rules](https://scpslgame.com/Verified_server_rules.pdf). +* Send an email to `server.verification@scpslgame.com` from your configured contact email with the following information: + 1. The **public** IPv4 address of your server, with port. e.g. `69.69.69.69:7777` + 2. If the server's IP is static or dynamic. diff --git a/steamcmd_servers/scpsl/multiadmin/egg-scpsl.json b/steamcmd_servers/scpsl/multiadmin/egg-scpsl.json new file mode 100644 index 00000000..d60f3a3f --- /dev/null +++ b/steamcmd_servers/scpsl/multiadmin/egg-scpsl.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-09T01:05:52-04:00", + "name": "SCP: Secret Laboratory", + "author": "lumi@hedr.al", + "description": "The latest vanilla version of SCP:SL running through MultiAdmin for compatibility. LocalAdmin does not work. No SMod2.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", + "startup": "mono MultiAdmin.exe --port {{SERVER_PORT}}", + "config": { + "files": "{\r\n \"scp_multiadmin.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"use_new_input_system: true\": \"use_new_input_system: false\",\r\n \"max_players:\": \"max_players: {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n },\r\n \".config\/SCP Secret Laboratory\/config\/{{SERVER_PORT}}\/config_gameplay.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"server_ip:\": \"server_ip: 0.0.0.0\",\r\n \"forward_ports: true\": \"forward_ports: false\",\r\n \"contact_email:\": \"contact_email: {{server.build.env.CONTACT_EMAIL}}\",\r\n \"max_players:\": \"max_players: {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Waiting for players\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "EXIT" + }, + "scripts": { + "installation": { + "script": "# Downloads SteamCMD\r\napt update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates wget\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\n# Extracts SteamCMD\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\n# Downloads the server\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 996560 +quit\r\n\r\n# Hoster policy\r\necho 'gamedir_for_configs: true' >> \/mnt\/server\/hoster_policy.txt\r\nchmod +x \/mnt\/server\/hoster_policy.txt\r\n\r\n# Downloads MultiAdmin\r\nURL=$(curl https:\/\/api.github.com\/repos\/Grover-c13\/MultiAdmin\/releases\/latest | grep browser_download_url | cut -d '\"' -f 4)\r\nwget -P \/mnt\/server\/ $URL\r\nchmod +x \/mnt\/server\/MultiAdmin.exe\r\n\r\n# Compatibility fix for MultiAdmin\r\necho \"use_new_input_system: false\" >> \/mnt\/server\/scp_multiadmin.cfg\r\necho \"max_players: 20\" >> \/mnt\/server\/scp_multiadmin.cfg", + "container": "ubuntu:latest", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Contact Email", + "description": "A contact email is required for this server to show up on the public server list. Leave \"default\" to opt out.", + "env_variable": "CONTACT_EMAIL", + "default_value": "default", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:254" + }, + { + "name": "Max Players", + "description": "This will change the maximum player count.", + "env_variable": "MAX_PLAYERS", + "default_value": "20", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|integer" + } + ] +} diff --git a/steamcmd_servers/soldat/README.md b/steamcmd_servers/soldat/README.md new file mode 100644 index 00000000..d1fc670e --- /dev/null +++ b/steamcmd_servers/soldat/README.md @@ -0,0 +1,9 @@ +# Soldat +Soldat is a unique 2D (side-view) multiplayer action game. It has been influenced by the best of games such as Liero, Worms, Quake, and Counter-Strike and provides a fast-paced gaming experience with tons of blood and flesh. Soldiers fight against each other in 2D battle arenas using a deadly arsenal of military weapons, across 7 default game modes. It features 18 different weapons and 60 maps to frag away on, with full support for user created content. + +## Server Ports + +| Port | default | +|-------|---------| +| Game | 23073 | +| Query | 23083 | diff --git a/steamcmd_servers/soldat/egg-soldat.json b/steamcmd_servers/soldat/egg-soldat.json new file mode 100644 index 00000000..b9b60fae --- /dev/null +++ b/steamcmd_servers/soldat/egg-soldat.json @@ -0,0 +1,72 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-04-24T16:03:28+02:00", + "name": "Soldat", + "author": "info@goover.de", + "description": "Soldat is a unique 2D (side-view) multiplayer action game. It has been influenced by the best of games such as Liero, Worms, Quake, and Counter-Strike and provides a fast-paced gaming experience with tons of blood and flesh. Soldiers fight against each other in 2D battle arenas using a deadly arsenal of military weapons, across 7 default game modes. It features 18 different weapons and 60 maps to frag away on, with full support for user created content.\r\n\r\nSteam: https:\/\/store.steampowered.com\/app\/638490\/Soldat\/", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/soldatserver", + "config": { + "files": "{\r\n \"soldat.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Port=\": \"Port={{server.build.default.port}}\",\r\n \"Max_Players=\": \"Max_Players={{server.build.env.MAX_PLAYERS}}\",\r\n \"Game_Password=\": \"Game_Password={{server.build.env.SRV_PWD}}\",\r\n \"Admin_Password=\": \"Admin_Password={{server.build.env.ADMIN_PASSWD}}\",\r\n \"Server_Name=\": \"Server_Name={{server.build.env.SRV_NAME}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Done\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "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\ndpkg --add-architecture i386\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates libstdc++6 lib32stdc++6 util-linux\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\ncd \/mnt\/server\r\nchmod +x soldatserver", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Admin Passwort", + "description": "Admin Password for the Server", + "env_variable": "ADMIN_PASSWD", + "default_value": "changeme", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Server Password", + "description": "Password to join Server", + "env_variable": "SRV_PWD", + "default_value": "chageme", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Server Name", + "description": "Name of the Server", + "env_variable": "SRV_NAME", + "default_value": "MySoldatServer", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:100" + }, + { + "name": "Max Players", + "description": "Max Players can join", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "ADD IP", + "description": "Steam APP ID", + "env_variable": "SRCDS_APPID", + "default_value": "638500", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/squad/squad/README.md b/steamcmd_servers/squad/README.md similarity index 100% rename from squad/squad/README.md rename to steamcmd_servers/squad/README.md diff --git a/steamcmd_servers/squad/egg-squad.json b/steamcmd_servers/squad/egg-squad.json new file mode 100644 index 00000000..51a36b6b --- /dev/null +++ b/steamcmd_servers/squad/egg-squad.json @@ -0,0 +1,126 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-10-08T08:47:08-04:00", + "name": "Squad", + "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.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": "\/home\/container\/SquadGame\/Binaries\/Linux\/SquadGameServer SquadGame Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", + "config": { + "files": "{\r\n \"SquadGame\/ServerConfig\/Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName=\\\"{{server.build.env.servername}}\\\"\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.maxplayers}}\",\r\n \"AllowTeamChanges\": \"AllowTeamChanges={{server.build.env.allowteamchange}}\",\r\n \"ShouldAdvertise\": \"ShouldAdvertise={{server.build.env.advertise}}\",\r\n \"NumReservedSlots\": \"NumReservedSlots={{server.build.env.reservedslots}}\",\r\n \"PreventTeamChangeIfUnbalanced\": \"PreventTeamChangeIfUnbalanced={{server.build.env.ptciu}}\",\r\n \"EnforceTeamBalance\": \"EnforceTeamBalance={{server.build.env.teambal}}\",\r\n \"RecordDemos\": \"RecordDemos={{server.build.env.recorddemos}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Engine Initialization\",\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 squad\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n\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\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install squad\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\nchmod +x \/mnt\/server\/SquadGame\/Binaries\/Linux\/SquadGameServer", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Query Port", + "description": "Query port for your Squad server.", + "env_variable": "QUERY_PORT", + "default_value": "27165", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric" + }, + { + "name": "ld lib path", + "description": "this is needed for some reason", + "env_variable": "LD_LIBRARY_PATH", + "default_value": "\/home\/container\/linux64\/", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "403240", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Server Name", + "description": "The name for the server in the server list", + "env_variable": "servername", + "default_value": "Squad Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:30" + }, + { + "name": "Max Players", + "description": "Sets the maximum number of players.", + "env_variable": "maxplayers", + "default_value": "80", + "user_viewable": 1, + "user_editable": 1, + "rules": "required" + }, + { + "name": "Allow Team Change", + "description": "Allow players to change teams ( true \/ false )", + "env_variable": "allowteamchange", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Advertise Server", + "description": "Have the server report to the public server list ( true \/ false )", + "env_variable": "advertise", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Reserved Slows", + "description": "The number of reserved slots for admins \/ mods", + "env_variable": "reservedslots", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Prevent Team Change If Unbalanced", + "description": "This will prevent players from changing teams if they're already unbalanced ( true \/ false )", + "env_variable": "ptciu", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Enforce Team Balance", + "description": "This will FORCE team balance if the teams are too uneven ( true \/ false )", + "env_variable": "teambal", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Record Demos", + "description": "This will record demos of the players ( true \/ false )", + "env_variable": "recorddemos", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + } + ] +} \ No newline at end of file diff --git a/source_servers/starbound/README.md b/steamcmd_servers/starbound/README.md similarity index 100% rename from source_servers/starbound/README.md rename to steamcmd_servers/starbound/README.md diff --git a/steamcmd_servers/starbound/egg-starbound.json b/steamcmd_servers/starbound/egg-starbound.json new file mode 100644 index 00000000..f0c0d07a --- /dev/null +++ b/steamcmd_servers/starbound/egg-starbound.json @@ -0,0 +1,81 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-17T08:01:28+01:00", + "name": "Starbound", + "author": "parker@parkervcp.com", + "description": "Starbound takes place in a two-dimensional, procedurally generated universe which the player is able to explore in order to obtain new weapons, armor, and items, and to visit towns and villages inhabited by various intelligent lifeforms.", + "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", + "startup": ".\/starbound_server", + "config": { + "files": "{\r\n \"storage\/starbound_server.config\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"gameServerPort\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Starting UniverseServer\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "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 'ubuntu:18.04'\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## Starbound specific setup.\r\ncd \/mnt\/server\/\r\n\r\n\r\n## edit sbinit config\r\nmv \/mnt\/server\/linux\/* \/mnt\/server\/\r\nrm -rf \/mnt\/server\/linux\r\nsed -i -e 's\/\\.\\.\/\\.\/g' \/mnt\/server\/sbinit.config\r\n\r\n## pull starbound_server.config\r\nmkdir -p \/mnt\/server\/storage\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/starbound\/starbound_server.config > \/mnt\/server\/storage\/starbound_server.config\r\n\r\n## use Worksop content\r\nif [ \"${WORKSHOP}\" == \"1\" ]; then\r\n for dir in \/mnt\/server\/steamapps\/workshop\/content\/211820\/*\/\r\n do\r\n dir=${dir%*\/}\r\n echo Sym-linking mod ${dir##*\/} into the mods folder\r\n ln -r -s \/mnt\/server\/steamapps\/workshop\/content\/211820\/${dir##*\/}\/contents.pak \/mnt\/server\/mods\/${dir##*\/}.pak\r\n done\r\nfi", + "container": "ubuntu:18.04", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "Steam User", + "description": "This is a required setting and cannot be set to anonymous.", + "env_variable": "STEAM_USER", + "default_value": "", + "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": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "211820", + "user_viewable": 1, + "user_editable": 0, + "rules": "string" + }, + { + "name": "Steam Auth", + "description": "Steam account auth code. Required if you have 2fa enabled.", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:5" + }, + { + "name": "Auto Update Server", + "description": "This is to auto-update the game server.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|bool" + }, + { + "name": "Use Workshop content", + "description": "Set to true if you want to use your subscribed Workshop content", + "env_variable": "WORKSHOP", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|bool" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/starbound/starbound_server.config b/steamcmd_servers/starbound/starbound_server.config new file mode 100644 index 00000000..c9785af0 --- /dev/null +++ b/steamcmd_servers/starbound/starbound_server.config @@ -0,0 +1,50 @@ +{ + "allowAdminCommands" : true, + "allowAdminCommandsFromAnyone" : false, + "allowAnonymousConnections" : true, + "allowAssetsMismatch" : true, + "anonymousConnectionsAreAdmin" : false, + "bannedIPs" : [], + "bannedUuids" : [], + "checkAssetsDigest" : false, + "clearPlayerFiles" : false, + "clearUniverseFiles" : false, + "clientIPJoinable" : false, + "clientP2PJoinable" : true, + "configurationVersion" : { + "basic" : 2, + "server" : 4 + }, + "crafting" : { + "filterHaveMaterials" : false + }, + "gameServerBind" : "::", + "gameServerPort" : 21025, + "interactiveHighlight" : true, + "inventory" : { + "pickupToActionBar" : true + }, + "maxPlayers" : 8, + "maxTeamSize" : 4, + "monochromeLighting" : false, + "playerBackupFileCount" : 3, + "queryServerBind" : "::", + "queryServerPort" : 21025, + "rconServerBind" : "::", + "rconServerPassword" : "", + "rconServerPort" : 21026, + "rconServerTimeout" : 1000, + "runQueryServer" : false, + "runRconServer" : false, + "safeScripts" : true, + "scriptInstructionLimit" : 10000000, + "scriptInstructionMeasureInterval" : 10000, + "scriptProfilingEnabled" : false, + "scriptRecursionLimit" : 100, + "serverFidelity" : "automatic", + "serverName" : "A Starbound Server", + "serverOverrideAssetsDigest" : null, + "serverUsers" : { + }, + "tutorialMessages" : true +} \ No newline at end of file diff --git a/steamcmd_servers/stationeers/README.md b/steamcmd_servers/stationeers/README.md new file mode 100644 index 00000000..63aefa53 --- /dev/null +++ b/steamcmd_servers/stationeers/README.md @@ -0,0 +1,15 @@ +# Stationeers +Steam Description +Construct and manage your own space station either by yourself in singleplayer or with friends online! Fully functioning atmospherics, science, power, engineering, medical, logic, and agricultural systems. Explore to find asteroids and construct elaborate factories to harvest your resources! + +### Server Ports +Stationeers requires up to 2 ports + +game port (default 27500) +Steam Query Ports (default 27015) + + +| Port | default | +|---------|---------------| +| Game | 27500 | +| Query | 27015 | \ No newline at end of file diff --git a/steamcmd_servers/stationeers/egg-stationeers.json b/steamcmd_servers/stationeers/egg-stationeers.json new file mode 100644 index 00000000..3d498438 --- /dev/null +++ b/steamcmd_servers/stationeers/egg-stationeers.json @@ -0,0 +1,90 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-08-04T20:01:04-07:00", + "name": "Stationeers", + "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.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/rocketstation_DedicatedServer.x86_64 -batchmode -nographics -autostart -autosaveinterval={{SAVE_INTERVAL}} -clearallinterval={{CLEAR_INTERVAL}} -worldtype={{SERVER_MAP}} -worldname={{SAVE_NAME}} -loadworld={{SAVE_NAME}} -basedirectory=\/home\/container -updateport={{UPDATE_PORT}} -gameport={{GAME_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Dedicated Server Started\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "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\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": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Map", + "description": "Available Maps: Moon, Mars, Europa, Vulcan, Space, Mimas, Loulan", + "env_variable": "SERVER_MAP", + "default_value": "Moon", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Save Interval", + "description": "Sets the server\u2019s auto-save interval in seconds.", + "env_variable": "SAVE_INTERVAL", + "default_value": "300", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer" + }, + { + "name": "Auto Clear Disconnected Player", + "description": "Clear disconnected player interval in seconds", + "env_variable": "CLEAR_INTERVAL", + "default_value": "86400", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer" + }, + { + "name": "Save Name", + "description": "Name of the save of your world.\r\nAuto save & auto load worlds on server startup.", + "env_variable": "SAVE_NAME", + "default_value": "stationeers_1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Gameport", + "description": "UDP port for game. Avoid to set 27015-27020. It's steam's local server query ports.", + "env_variable": "GAME_PORT", + "default_value": "27500", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer" + }, + { + "name": "Update Port", + "description": "UDP port for steam query must be between 27015-27020.", + "env_variable": "UPDATE_PORT", + "default_value": "27015", + "user_viewable": 1, + "user_editable": 1, + "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" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/svencoop/README.md b/steamcmd_servers/svencoop/README.md new file mode 100644 index 00000000..af43edf9 --- /dev/null +++ b/steamcmd_servers/svencoop/README.md @@ -0,0 +1,12 @@ +# Sven Co-op +Sven Co-op is a co-operative game originally based around Valve Software's Half-Life. In this game players must work together against computer controlled enemies and solve puzzles as a team. + +### Server Ports +Sven co-op requires a single port to be opened + +game ports (default 27015 ) + +| Port | default | +|---------|---------| +| Game | 27015 | +| VAC | 26900 | diff --git a/steamcmd_servers/svencoop/egg-sven-co-op.json b/steamcmd_servers/svencoop/egg-sven-co-op.json new file mode 100644 index 00000000..c341b5a7 --- /dev/null +++ b/steamcmd_servers/svencoop/egg-sven-co-op.json @@ -0,0 +1,81 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-11-14T21:43:14+01:00", + "name": "Sven Co-op", + "author": "pteroducktyl@yildri.nl", + "description": "Sven Co-op is a co-operative game originally based around Valve Software's Half-Life. In this game players must work together against computer controlled enemies and solve puzzles as a team.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/svends_run -console -port {{SERVER_PORT}} +maxplayers {{SC_PLAYERS}} +map {{SC_MAP}} +ip 0.0.0.0 -strictportbind -norestart", + "config": { + "files": "{\r\n \"svencoop\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname\": \"hostname \\\"{{env.SC_NAME}}\\\"\",\r\n \"sv_password\": \"sv_password \\\"{{env.SC_PASSWORD}}\\\"\",\r\n \"\/\/sv_password\": \"sv_password \\\"{{env.SC_PASSWORD}}\\\"\",\r\n \"sv_region\": \"sv_region {{env.SC_REGION}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Sven co-op Base 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\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 276060 validate +quit\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": "Default Map", + "description": "The default map for the server.", + "env_variable": "SC_MAP", + "default_value": "svencoop1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Max Players", + "description": "The maximum amount of players that can play on the server at once.", + "env_variable": "SC_PLAYERS", + "default_value": "12", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric|between:2,32" + }, + { + "name": "Server Name", + "description": "The name your server will appear as on the in Sven Co-op in-game server list.", + "env_variable": "SC_NAME", + "default_value": "Sven Co-op server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:40" + }, + { + "name": "Password", + "description": "Password required to join the server. Leave blank to disable.", + "env_variable": "SC_PASSWORD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:20" + }, + { + "name": "Region", + "description": "The region your server is in. This is used in Steam's server browser, so players can look for servers near by. This does not restrict players from connecting to your server.\r\n\r\n-1: Do not list server in the server browser.\r\n0: USA east coast.\r\n1: USA west coast.\r\n2: South America (continent)\r\n3: Europe.\r\n4: Asia.\r\n5: Australia (continent, aka Oceania)\r\n6: Middle East.\r\n7: Africa.\r\n255: International.", + "env_variable": "SC_REGION", + "default_value": "255", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric|between:-1,255" + }, + { + "name": "Source AppID", + "description": "Required for game to update on server restart. Do not modify this.", + "env_variable": "SRCDS_APPID", + "default_value": "276060", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/tower_unite/README.md b/steamcmd_servers/tower_unite/README.md new file mode 100644 index 00000000..f43f9408 --- /dev/null +++ b/steamcmd_servers/tower_unite/README.md @@ -0,0 +1,11 @@ +# Tower Unite +Their desctiption: +Every aspect of Tower Unite allows for online multiplayer interaction. It is a living and evolving online game world, driven by the community. Play games online with your friends, or make new friends from across the globe. + +### Server Ports +Tower Unite requires a single port to be opened + +| Port | default | +|---------|---------| +| Game | 7778 | +| Query | 27016 | diff --git a/steamcmd_servers/tower_unite/egg-tower-unite.json b/steamcmd_servers/tower_unite/egg-tower-unite.json new file mode 100644 index 00000000..43f7687b --- /dev/null +++ b/steamcmd_servers/tower_unite/egg-tower-unite.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-02-08T01:46:57+01:00", + "name": "Tower Unite", + "author": "teamwuffy@gmail.com", + "description": "Tower Unite\r\n\r\nDefault Port: 7778\r\nDefault Query Port: 27016\r\n\r\nConfig Path: Tower\/Saved\/Config\/TowerServer.ini", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/Tower\/Binaries\/Linux\/TowerServer-Linux-Shipping -log -Port={{SERVER_PORT}} -MULTIHOME=0.0.0.0 -TowerServerINI=..\/..\/Saved\/Config\/TowerServer.ini", + "config": { + "files": "{\r\n \"Tower\/Saved\/Config\/TowerServer.ini\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"MaxPlayers\": \"{{server.build.env.SERVER_MAX_PLAYER}}\",\r\n \"ServerTitle\": \"{{server.build.env.SERVER_TITLE}}\",\r\n \"SteamLoginToken\": \"{{server.build.env.STEAM_LOGIN_TOKEN}}\",\r\n \"AdminSteamID\": \"{{server.build.env.STEAM_ADMIN_ID}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Match State Changed from EnteringMap to WaitingToStart\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Tower Unite Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --install-recommends install curl ca-certificates lib32gcc1\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\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\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 439660 validate +quit\r\n\r\ncd mnt\/server\r\n\r\nmkdir -p Tower\/Saved\/Config\r\nmkdir -p Tower\/Binaries\/Linux\r\n\r\nmv \/mnt\/server\/steamcmd\/linux64\/steamclient.so \/mnt\/server\/Tower\/Binaries\/Linux\r\n\r\ncat <> Tower\/Saved\/Config\/TowerServer.ini\r\n[\/script\/towernetworking.dedicatedserveroptions]\r\nMaxPlayers=$SERVER_MAX_PLAYER\r\nServerTitle=$SERVER_TITLE\r\nSteamLoginToken=$STEAM_LOGIN_TOKEN\r\n\r\n[Administration]\r\nAdminSteamID=$STEAM_ADMIN_ID\r\nEOF", + "container": "ubuntu:18.10", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Login Token", + "description": "Login and generate a token for the app-id: 394690\r\nhttps:\/\/steamcommunity.com\/dev\/managegameservers", + "env_variable": "STEAM_LOGIN_TOKEN", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:100" + }, + { + "name": "Steam Admin ID", + "description": "Note that your admin id is only a number!", + "env_variable": "STEAM_ADMIN_ID", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer|max:76561202255233023" + }, + { + "name": "Server Title", + "description": "", + "env_variable": "SERVER_TITLE", + "default_value": "Tower Unite Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:512" + }, + { + "name": "Max Players", + "description": "", + "env_variable": "SERVER_MAX_PLAYER", + "default_value": "40", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|integer|max:512" + } + ] +} \ No newline at end of file diff --git a/unturned/rocketmod/README.md b/steamcmd_servers/unturned/rocketmod/README.md similarity index 81% rename from unturned/rocketmod/README.md rename to steamcmd_servers/unturned/rocketmod/README.md index b4386da3..d2ad1551 100644 --- a/unturned/rocketmod/README.md +++ b/steamcmd_servers/unturned/rocketmod/README.md @@ -1,4 +1,4 @@ -# Unturned +# Unturned - RocketMod Steam Description You're one of the few not yet turned zombie. Keeping it that way will be a challenge. @@ -6,6 +6,8 @@ You're one of the few not yet turned zombie. Keeping it that way will be a chall - 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) diff --git a/steamcmd_servers/unturned/rocketmod/egg-rocket-mod-modern.json b/steamcmd_servers/unturned/rocketmod/egg-rocket-mod-modern.json new file mode 100644 index 00000000..2583951b --- /dev/null +++ b/steamcmd_servers/unturned/rocketmod/egg-rocket-mod-modern.json @@ -0,0 +1,26 @@ +{ + "_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": [] +} \ No newline at end of file diff --git a/unturned/rocketmod/egg-rocketmod.json b/steamcmd_servers/unturned/rocketmod/egg-rocketmod-old.json similarity index 98% rename from unturned/rocketmod/egg-rocketmod.json rename to steamcmd_servers/unturned/rocketmod/egg-rocketmod-old.json index acaf657f..5c5c3243 100644 --- a/unturned/rocketmod/egg-rocketmod.json +++ b/steamcmd_servers/unturned/rocketmod/egg-rocketmod-old.json @@ -4,7 +4,7 @@ "version": "PTDL_v1" }, "exported_at": "2018-04-27T21:30:05+00:00", - "name": "RocketMod", + "name": "RocketMod Old", "author": "isaac@isaacs.site", "description": "The RocketMod server mod for Unturned.", "image": "registry.gitlab.com\/tenten8401\/pterodactyl-unturned", @@ -51,4 +51,4 @@ "rules": "nullable|string" } ] -} \ No newline at end of file +} diff --git a/steamcmd_servers/unturned/unturned/README.md b/steamcmd_servers/unturned/unturned/README.md new file mode 100644 index 00000000..32b69f98 --- /dev/null +++ b/steamcmd_servers/unturned/unturned/README.md @@ -0,0 +1,16 @@ +# Unturned + +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. + +### Server Ports +Rocketmod requires 3 ports to run properly. + +| Port | default | +|---------|---------| +| Game | 27015 | +| Game +1 | 27016 | +| Game +2 | 27017 | diff --git a/steamcmd_servers/unturned/unturned/egg-unturned.json b/steamcmd_servers/unturned/unturned/egg-unturned.json new file mode 100644 index 00000000..df6abd65 --- /dev/null +++ b/steamcmd_servers/unturned/unturned/egg-unturned.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-07-12T22:04:47-04:00", + "name": "Unturned", + "author": "parker@parkervcp.com", + "description": "Vanilla Unturned with the included RockerMod.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", + "startup": ".\/Unturned_Headless.x86_64 -batchmode -nographics -bind 0.0.0.0 -port {{SERVER_PORT}}", + "config": { + "files": "{}", + "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": "#!\/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", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam App ID", + "description": "Steam App ID require for install and startup update", + "env_variable": "SRCDS_APPID", + "default_value": "1110390", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "ld lib path", + "description": "This is needed to load specific libraries", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/Unturned_Headless_Data\/Plugins\/x86_64\/", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Steam User", + "description": "Should be left blank for anon user", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Steam Password", + "description": "", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/minecraft/README.md b/stock-eggs/minecraft/README.md new file mode 100644 index 00000000..89d19035 --- /dev/null +++ b/stock-eggs/minecraft/README.md @@ -0,0 +1,6 @@ +# Minecraft + +All the default minecraft things + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. \ No newline at end of file diff --git a/stock-eggs/minecraft/egg-bungeecord.json b/stock-eggs/minecraft/egg-bungeecord.json new file mode 100644 index 00000000..d527024f --- /dev/null +++ b/stock-eggs/minecraft/egg-bungeecord.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2017-11-03T22:15:10-05:00", + "name": "Bungeecord", + "author": "support@pterodactyl.io", + "description": "For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.", + "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].query_enabled\": true,\r\n \"listeners[0].query_port\": \"{{server.build.default.port}}\",\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:25577\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"proxy.log.0\"\r\n}", + "stop": "end" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\n# Bungeecord Installation Script\n#\n# Server Files: \/mnt\/server\napk update\napk add curl\n\ncd \/mnt\/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https:\/\/ci.md-5.net\/job\/BungeeCord\/${BUNGEE_VERSION}\/artifact\/bootstrap\/target\/BungeeCord.jar", + "container": "alpine:3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Bungeecord Version", + "description": "The version of Bungeecord to download and use.", + "env_variable": "BUNGEE_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|alpha_num|between:1,6" + }, + { + "name": "Bungeecord Jar File", + "description": "The name of the Jarfile to use when running Bungeecord.", + "env_variable": "SERVER_JARFILE", + "default_value": "bungeecord.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + } + ] +} diff --git a/stock-eggs/minecraft/egg-forge-minecraft.json b/stock-eggs/minecraft/egg-forge-minecraft.json new file mode 100644 index 00000000..2e8b43bf --- /dev/null +++ b/stock-eggs/minecraft/egg-forge-minecraft.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-02-07T07:47:35-05:00", + "name": "Forge Minecraft", + "author": "support@pterodactyl.io", + "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", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n FORGE_VERSION=$(echo $(curl -sSl http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/ | grep -A2 Latest | grep small) | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's\/ \/\/g')\r\nelse\r\n FORGE_VERSION=$(echo $(curl -sl http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/index_$MC_VERSION.html | grep -A2 Latest | grep small) | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's\/ \/\/g')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\ncurl -sS http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\ncurl -sS http:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -o $SERVER_JARFILE\r\n\r\necho -e \"\\nInstalling forge server usint the installer jar file.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\necho -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\nrm -rf installer.jar", + "container": "openjdk:8-alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the Jarfile to use when running Forge Mod.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Minecraft version", + "description": "The version of minecraft that you want to run. Example (1.10.2).", + "env_variable": "MC_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/minecraft/egg-paper.json b/stock-eggs/minecraft/egg-paper.json new file mode 100644 index 00000000..86208f68 --- /dev/null +++ b/stock-eggs/minecraft/egg-paper.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-02-27T22:23:55-05:00", + "name": "Paper", + "author": "parker@pterodactyl.io", + "description": "High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-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": "{}", + "stop": "stop" + }, + "scripts": { + "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", + "container": "alpine:3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Minecraft Version", + "description": "The version of minecraft to download. \r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest.", + "env_variable": "MINECRAFT_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 0, + "rules": "nullable|string|max:20" + }, + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Download Path", + "description": "A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.", + "env_variable": "DL_PATH", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "nullable|string" + }, + { + "name": "Build Number", + "description": "The build number for the paper release.\r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest.", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/minecraft/egg-sponge--sponge-vanilla.json b/stock-eggs/minecraft/egg-sponge--sponge-vanilla.json new file mode 100644 index 00000000..2bbfba23 --- /dev/null +++ b/stock-eggs/minecraft/egg-sponge--sponge-vanilla.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2017-11-03T22:20:03-05:00", + "name": "Sponge (SpongeVanilla)", + "author": "support@pterodactyl.io", + "description": "SpongeVanilla is the SpongeAPI implementation for Vanilla Minecraft.", + "image": "quay.io\/pterodactyl\/core:java-glibc", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\n# Sponge Installation Script\n#\n# Server Files: \/mnt\/server\n\napk update\napk add curl\n\ncd \/mnt\/server\n\ncurl -sSL \"https:\/\/repo.spongepowered.org\/maven\/org\/spongepowered\/spongevanilla\/${SPONGE_VERSION}\/spongevanilla-${SPONGE_VERSION}.jar\" -o ${SERVER_JARFILE}", + "container": "alpine:3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Sponge Version", + "description": "The version of SpongeVanilla to download and use.", + "env_variable": "SPONGE_VERSION", + "default_value": "1.11.2-6.1.0-BETA-21", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|regex:\/^([a-zA-Z0-9.\\-_]+)$\/" + }, + { + "name": "Server Jar File", + "description": "The name of the Jarfile to use when running SpongeVanilla.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + } + ] +} diff --git a/stock-eggs/minecraft/egg-vanilla-minecraft.json b/stock-eggs/minecraft/egg-vanilla-minecraft.json new file mode 100644 index 00000000..f613c815 --- /dev/null +++ b/stock-eggs/minecraft/egg-vanilla-minecraft.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-25T19:55:01-05:00", + "name": "Vanilla Minecraft", + "author": "support@pterodactyl.io", + "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\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# Vanilla MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add curl --no-cache --update jq\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_VERSION=`curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq -r '.latest.release'`\r\n\r\necho -e \"latest version is $LATEST_VERSION\"\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $LATEST_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url')\r\nelse\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $VANILLA_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url')\r\nfi\r\n\r\nDOWNLOAD_URL=$(curl ${MANIFEST_URL} | jq .downloads.server | jq -r '. | .url')\r\n\r\necho -e \"running: curl -o ${SERVER_JARFILE} $DOWNLOAD_URL\"\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL\r\n\r\necho -e \"Install Complete\"", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Server Version", + "description": "The version of Minecraft Vanilla to install. Use \"latest\" to install the latest version.", + "env_variable": "VANILLA_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|between:3,15" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/rust/README.md b/stock-eggs/rust/README.md new file mode 100644 index 00000000..22d0e83b --- /dev/null +++ b/stock-eggs/rust/README.md @@ -0,0 +1,15 @@ +### 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 +Ports required to run the server. + +| Port | default | +|---------|---------| +| Game and Query | 28015 UDP | +| RCON | 28016 TCP | +| Rust+ App | 28082 TCP | diff --git a/stock-eggs/source/rust/egg-rust.json b/stock-eggs/rust/egg-rust.json similarity index 88% rename from stock-eggs/source/rust/egg-rust.json rename to stock-eggs/rust/egg-rust.json index 9a43d0f5..0426579c 100644 --- a/stock-eggs/source/rust/egg-rust.json +++ b/stock-eggs/rust/egg-rust.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-25T10:30:58-04:00", + "exported_at": "2020-06-03T20:47:00-07:00", "name": "Rust", "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 \\\"{{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": { "files": "{}", "startup": "{\r\n \"done\": \"Server startup complete\",\r\n \"userInteraction\": []\r\n}", @@ -17,8 +17,8 @@ }, "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\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", - "container": "ubuntu:16.04", + "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": "debian:buster-slim", "entrypoint": "bash" } }, @@ -122,6 +122,15 @@ "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.", @@ -132,12 +141,12 @@ "rules": "nullable|string" }, { - "name": "Save Interval", - "description": "Sets the server\u2019s auto-save interval in seconds.", - "env_variable": "SAVEINTERVAL", - "default_value": "60", + "name": "App Port", + "description": "Port for the Rust+ App. -1 for disabled.", + "env_variable": "APP_PORT", + "default_value": "28082", "user_viewable": 1, - "user_editable": 1, + "user_editable": 0, "rules": "required|integer" } ] diff --git a/stock-eggs/source-engine/README.md b/stock-eggs/source-engine/README.md new file mode 100644 index 00000000..a4deb544 --- /dev/null +++ b/stock-eggs/source-engine/README.md @@ -0,0 +1,70 @@ +# Source-Engine + +The Source Dedicated Server or SRCDS is a tool that runs the server component of a Source game without the client component. In other words, it simulates the game without drawing it. + +This also covers games that are installed using the steamcmd utility. + +### Server Ports +Many of these servers will require the steam query ports to be open for the server. +The default steam query port is 27015 + +## ARK Survival Evolved + +### Port Requirements +The ARK server requires 4 ports minimum. + +| Port | default | +|---------|---------| +| Game | 7777 | +| Game +1 | 7778 | +| Query | 27015 | +| RCON | 27020 | + +Please note the server may not show up on steam game server lists due to this requirement if all ports are not set/added. + +## Counter Strike: Global Offensive + +Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gameplay that it pioneered when it was launched 19 years ago. CS: GO features new maps, characters, weapons, and game modes, and delivers updated versions of the classic CS content (de_dust2, etc.). + +### Port Requirements +| Port | default | +|----------|---------| +| Game | 27015 | + +## Custom Source Engine Game + +This is a generic one size fit's all egg that supports srcds game servers. + +This is not for games like Counter Strike 1.6 which is an HLDS title. See [HLDS server](/source_servers/hlds_server) + +### Port Requirements +| Port | default | +|----------|---------| +| Game | 27015 | + +## Garry's Mod + +Garry's Mod is a physics sandbox. There aren't any predefined aims or goals. We give you the tools and leave you to play. + +### Port Requirements +| Port | default | +|----------|---------| +| Game | 27015 | + +## Insurgency + +Take to the streets for intense close quarters combat, where a team's survival depends upon securing crucial strongholds and destroying enemy supply in this multiplayer and cooperative Source Engine based experience. + +### Port Requirements +| Port | default | +|----------|---------| +| Game | 27015 | + +## Team Fortress 2 + +Nine distinct classes provide a broad range of tactical abilities and personalities. Constantly updated with new game modes, maps, equipment and, most importantly, hats! + +### Port Requirements +| Port | default | +|----------|---------| +| Game | 27015 | \ No newline at end of file diff --git a/source_servers/ark_survival_evolved/egg-ark--survival-evolved.json b/stock-eggs/source-engine/egg-ark--survival-evolved.json similarity index 100% rename from source_servers/ark_survival_evolved/egg-ark--survival-evolved.json rename to stock-eggs/source-engine/egg-ark--survival-evolved.json diff --git a/stock-eggs/source-engine/egg-counter--strike--global-offensive.json b/stock-eggs/source-engine/egg-counter--strike--global-offensive.json new file mode 100644 index 00000000..191aa99e --- /dev/null +++ b/stock-eggs/source-engine/egg-counter--strike--global-offensive.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-08T10:52:19-05:00", + "name": "Counter-Strike: Global Offensive", + "author": "support@pterodactyl.io", + "description": "Counter-Strike: Global Offensive is a multiplayer first-person shooter video game developed by Hidden Path Entertainment and Valve Corporation.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/srcds_run -game csgo -console -port {{SERVER_PORT}} +ip 0.0.0.0 +map {{SRCDS_MAP}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# 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 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\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", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Map", + "description": "The default map for the server.", + "env_variable": "SRCDS_MAP", + "default_value": "de_dust2", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|alpha_dash" + }, + { + "name": "Steam Account Token", + "description": "The Steam Account Token required for the server to be displayed publicly.", + "env_variable": "STEAM_ACC", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|alpha_num|size:32" + }, + { + "name": "Source AppID", + "description": "Required for game to update on server restart. Do not modify this.", + "env_variable": "SRCDS_APPID", + "default_value": "740", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-custom-source-engine-game.json b/stock-eggs/source-engine/egg-custom-source-engine-game.json new file mode 100644 index 00000000..aae3b3f3 --- /dev/null +++ b/stock-eggs/source-engine/egg-custom-source-engine-game.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-08T10:54:26-05:00", + "name": "Custom Source Engine Game", + "author": "support@pterodactyl.io", + "description": "This option allows modifying the startup arguments and other details to run a custom SRCDS based game on the panel.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"gameserver Steam ID\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# 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 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\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", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Game Name", + "description": "The name corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_GAME", + "default_value": "", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|alpha_dash|between:1,100" + }, + { + "name": "Map", + "description": "The default map for the server.", + "env_variable": "SRCDS_MAP", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|alpha_dash" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-garrys-mod.json b/stock-eggs/source-engine/egg-garrys-mod.json new file mode 100644 index 00000000..17940e8f --- /dev/null +++ b/stock-eggs/source-engine/egg-garrys-mod.json @@ -0,0 +1,90 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-08T10:56:42-05:00", + "name": "Garrys Mod", + "author": "support@pterodactyl.io", + "description": "Garrys Mod, is a sandbox physics game created by Garry Newman, and developed by his company, Facepunch Studios.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/srcds_run -game garrysmod -console -port {{SERVER_PORT}} +ip 0.0.0.0 +host_workshop_collection {{WORKSHOP_ID}} +map {{SRCDS_MAP}} +gamemode {{GAMEMODE}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}} +maxplayers {{MAX_PLAYERS}} -tickrate {{TICKRATE}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"gameserver Steam ID\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# 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 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\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# Creating needed default files for the game\r\ncd \/mnt\/server\/garrysmod\/lua\/autorun\/server\r\necho '\r\n-- Docs: https:\/\/wiki.garrysmod.com\/page\/resource\/AddWorkshop\r\n-- Place the ID of the workshop addon you want to be downloaded to people who join your server, not the collection ID\r\n-- Use https:\/\/beta.configcreator.com\/create\/gmod\/resources.lua to easily create a list based on your collection ID\r\n\r\nresource.AddWorkshop( \"\" )\r\n' > workshop.lua\r\n\r\ncd \/mnt\/server\/garrysmod\/cfg\r\necho '\r\n\/\/ Please do not set RCon in here, use the startup parameters.\r\n\r\nhostname\t\t\"New Gmod Server\"\r\nsv_password\t\t\"\"\r\nsv_loadingurl \"\"\r\n\r\n\/\/ Steam Server List Settings\r\nsv_region \"255\"\r\nsv_lan \"0\"\r\nsv_max_queries_sec_global \"30000\"\r\nsv_max_queries_window \"45\"\r\nsv_max_queries_sec \"5\"\r\n\r\n\/\/ Server Limits\r\nsbox_maxprops\t\t100\r\nsbox_maxragdolls\t5\r\nsbox_maxnpcs\t\t10\r\nsbox_maxballoons\t10\r\nsbox_maxeffects\t\t10\r\nsbox_maxdynamite\t10\r\nsbox_maxlamps\t\t10\r\nsbox_maxthrusters\t10\r\nsbox_maxwheels\t\t10\r\nsbox_maxhoverballs\t10\r\nsbox_maxvehicles\t20\r\nsbox_maxbuttons\t\t10\r\nsbox_maxsents\t\t20\r\nsbox_maxemitters\t5\r\nsbox_godmode\t\t0\r\nsbox_noclip\t\t 0\r\n\r\n\/\/ Network Settings - Please keep these set to default.\r\n\r\nsv_minrate\t\t75000\r\nsv_maxrate\t\t0\r\ngmod_physiterations\t2\r\nnet_splitpacket_maxrate\t45000\r\ndecalfrequency\t\t12 \r\n\r\n\/\/ Execute Ban Files - Please do not edit\r\nexec banned_ip.cfg \r\nexec banned_user.cfg \r\n\r\n\/\/ Add custom lines under here\r\n' > server.cfg", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Map", + "description": "The default map for the server.", + "env_variable": "SRCDS_MAP", + "default_value": "gm_flatgrass", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|alpha_dash" + }, + { + "name": "Steam Account Token", + "description": "The Steam Account Token required for the server to be displayed publicly.", + "env_variable": "STEAM_ACC", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|alpha_num|size:32" + }, + { + "name": "Source AppID", + "description": "Required for game to update on server restart. Do not modify this.", + "env_variable": "SRCDS_APPID", + "default_value": "4020", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Workshop ID", + "description": "The ID of your workshop collection (the numbers at the end of the URL)", + "env_variable": "WORKSHOP_ID", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|integer" + }, + { + "name": "Gamemode", + "description": "The gamemode of your server.", + "env_variable": "GAMEMODE", + "default_value": "sandbox", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Max Players", + "description": "The maximum amount of players allowed on your game server.", + "env_variable": "MAX_PLAYERS", + "default_value": "32", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer|max:128" + }, + { + "name": "Tickrate", + "description": "The tickrate defines how fast the server will update each entities location.", + "env_variable": "TICKRATE", + "default_value": "22", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer|max:100" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-insurgency.json b/stock-eggs/source-engine/egg-insurgency.json new file mode 100644 index 00000000..7f0c76be --- /dev/null +++ b/stock-eggs/source-engine/egg-insurgency.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-08T10:57:32-05:00", + "name": "Insurgency", + "author": "support@pterodactyl.io", + "description": "Take to the streets for intense close quarters combat, where a team's survival depends upon securing crucial strongholds and destroying enemy supply in this multiplayer and cooperative Source Engine based experience.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart", + "config": { + "files": "{}", + "startup": "{\"done\": \"gameserver Steam ID\", \"userInteraction\": []}", + "logs": "{\"custom\": true, \"location\": \"logs\/latest.log\"}", + "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 'ubuntu:18.04'\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 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\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", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "237410", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|regex:\/^(237410)$\/" + }, + { + "name": "Game Name", + "description": "The name corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_GAME", + "default_value": "insurgency", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|regex:\/^(insurgency)$\/" + }, + { + "name": "Default Map", + "description": "The default map to use when starting the server.", + "env_variable": "SRCDS_MAP", + "default_value": "sinjar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^(\\w{1,20})$\/" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-team-fortress2.json b/stock-eggs/source-engine/egg-team-fortress2.json new file mode 100644 index 00000000..159e7bf9 --- /dev/null +++ b/stock-eggs/source-engine/egg-team-fortress2.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-08T10:58:48-05:00", + "name": "Team Fortress 2", + "author": "support@pterodactyl.io", + "description": "Team Fortress 2 is a team-based first-person shooter multiplayer video game developed and published by Valve Corporation. It is the sequel to the 1996 mod Team Fortress for Quake and its 1999 remake.", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"gameserver Steam ID\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# 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 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\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", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "232250", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|regex:\/^(232250)$\/" + }, + { + "name": "Game Name", + "description": "The name corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_GAME", + "default_value": "tf", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|regex:\/^(tf)$\/" + }, + { + "name": "Default Map", + "description": "The default map to use when starting the server.", + "env_variable": "SRCDS_MAP", + "default_value": "cp_dustbowl", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^(\\w{1,20})$\/" + } + ] +} \ No newline at end of file diff --git a/stock-eggs/source/README.md b/stock-eggs/source/README.md deleted file mode 100644 index 5f2c826b..00000000 --- a/stock-eggs/source/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Source Based Games - -### Server Ports -Many of these servers will require the steam query ports to be open for the server. -The default steam query port is 27015 \ No newline at end of file diff --git a/stock-eggs/source/ark/README.md b/stock-eggs/source/ark/README.md deleted file mode 100644 index 0ccd9589..00000000 --- a/stock-eggs/source/ark/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# ARK Survival Evolved - -#### Port Requirements -The ARK server requires 4 ports minimum. - -| Port | default | -|---------|---------| -| Game | 7777 | -| Game +1 | 7778 | -| Query | 27015 | -| RCON | 27020 | - -Please note the server may not show up on steam game server lists due to this requirement if all ports are not set/added. - -### Server Ports -Many of these servers will require the steam query ports to be open for the server. -The default steam query port is 27015 \ No newline at end of file diff --git a/stock-eggs/source/ark/egg-ark--survival-evolved.json b/stock-eggs/source/ark/egg-ark--survival-evolved.json deleted file mode 100644 index ad08c705..00000000 --- a/stock-eggs/source/ark/egg-ark--survival-evolved.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-07-07T06:35:40-04:00", - "name": "Ark: Survival Evolved", - "author": "support@pterodactyl.io", - "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", - "startup": ".\/ShooterGame\/Binaries\/Linux\/ShooterGameServer TheIsland?listen?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?MaxPlayers={{SERVER_MAX_PLAYERS}}?QueryPort={{QUERY_PORT}}?bRawScokets?RCONPort={{RCON_PORT}}", - "config": { - "files": "{\r\n \"ShooterGame\/Saved\/Config\/LinuxServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"SessionName=\": \"SessionName={{server.build.env.SESSION_NAME}}\",\r\n \"RCONPort=\": \"RCONPort={{server.build.env.RCON_PORT}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID = 346110\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "quit" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n# ARK: 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 ${SRCDS_APPID} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\nHOME=\/mnt\/server\r\nln -s ~\/Steam\/steamapps ~\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux", - "container": "ubuntu:18.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Server Password", - "description": "If specified, players must provide this password to join the server.", - "env_variable": "ARK_PASSWORD", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|alpha_dash|between:1,100" - }, - { - "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.", - "env_variable": "ARK_ADMIN_PASSWORD", - "default_value": "APa55word", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|alpha_dash|between:1,100" - }, - { - "name": "Maximum Players", - "description": "Specifies the maximum number of players that can play on the server simultaneously.", - "env_variable": "SERVER_MAX_PLAYERS", - "default_value": "20", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|numeric|digits_between:1,4" - }, - { - "name": "Game ID", - "description": "The ID corresponding to the game to download and run using SRCDS.", - "env_variable": "SRCDS_APPID", - "default_value": "376030", - "user_viewable": 0, - "user_editable": 0, - "rules": "required|string|max:20" - }, - { - "name": "Query Port", - "description": "This is the steam query port.", - "env_variable": "QUERY_PORT", - "default_value": "27015", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|string|max:20" - }, - { - "name": "Session Name", - "description": "The name that shows up in the server list", - "env_variable": "SESSION_NAME", - "default_value": "ARK Server", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:64" - }, - { - "name": "RCON Port", - "description": "This is the rcon port for the server", - "env_variable": "RCON_PORT", - "default_value": "27020", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|string|max:20" - } - ] -} \ No newline at end of file diff --git a/stock-eggs/source/rust/README.md b/stock-eggs/source/rust/README.md deleted file mode 100644 index 002634ee..00000000 --- a/stock-eggs/source/rust/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# [Rust](https://rust.facepunch.com/) - -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. - -#### Port Requirements -The Rust server requires 3 ports minimum. - -| Port | default | -|---------|---------| -| Game | 28015 | -| Game +1 | 28016 | -| RCON | 28017 | - -Please note the server may not show up on steam game server lists due to this requirement if all ports are not set/added. \ No newline at end of file diff --git a/stock-eggs/terraria/README.md b/stock-eggs/terraria/README.md new file mode 100644 index 00000000..ab8485b0 --- /dev/null +++ b/stock-eggs/terraria/README.md @@ -0,0 +1,14 @@ +# Terraria + +## 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. \ No newline at end of file diff --git a/stock-eggs/terraria/egg-terraria-server--t-shock.json b/stock-eggs/terraria/egg-terraria-server--t-shock.json new file mode 100644 index 00000000..9381890d --- /dev/null +++ b/stock-eggs/terraria/egg-terraria-server--t-shock.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2018-01-21T17:01:31-06:00", + "name": "Terraria Server (TShock)", + "author": "support@pterodactyl.io", + "description": "TShock is a server modification for Terraria, written in C#, and based upon the Terraria Server API. It uses JSON for configuration management, and offers several features not present in the Terraria Server normally.", + "image": "quay.io\/pterodactyl\/core:mono", + "startup": null, + "config": { + "files": "{\"tshock\/config.json\":{\"parser\": \"json\", \"find\":{\"ServerPort\": \"{{server.build.default.port}}\", \"MaxSlots\": \"{{server.build.env.MAX_SLOTS}}\"}}}", + "startup": "{\"done\": \"Type 'help' for a list of commands\", \"userInteraction\": []}", + "logs": "{\"custom\": false, \"location\": \"ServerLog.txt\"}", + "stop": "exit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\n# TShock Installation Script\n#\n# Server Files: \/mnt\/server\napk update\napk add curl unzip\n\ncd \/tmp\n\ncurl -sSLO https:\/\/github.com\/NyxStudios\/TShock\/releases\/download\/v${T_VERSION}\/tshock_${T_VERSION}.zip\n\nunzip -o tshock_${T_VERSION}.zip -d \/mnt\/server", + "container": "alpine:3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "TShock Version", + "description": "Which version of TShock to install and use.", + "env_variable": "T_VERSION", + "default_value": "4.3.22", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([0-9_\\.-]{5,10})$\/" + }, + { + "name": "Maximum Slots", + "description": "Total number of slots to allow on the server.", + "env_variable": "MAX_SLOTS", + "default_value": "20", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,3" + } + ] +} diff --git a/stock-eggs/voice-servers/README.md b/stock-eggs/voice-servers/README.md new file mode 100644 index 00000000..40aed5be --- /dev/null +++ b/stock-eggs/voice-servers/README.md @@ -0,0 +1,29 @@ +# Voice Servers + +## Mumble + +Mumble is an open source, low-latency, high quality voice chat software primarily intended for use while gaming. + +## Required Server Ports +Mumble only requires a single port to run. The default is 64738 + +| Port | default | +|---------|---------| +| Game | 64738 | + +## Teamspeak 3 + +Use crystal clear sound to communicate with your team mates cross-platform with military-grade security, lag-free performance & unparalleled reliability and uptime. + +## Required Server Ports +Teamspeak 3 only requires a single port to run. The default is 9987 + +Other ports for ServerQuery and File Transfers are required for specific things. + +| Port | default | +|---------|---------| +| Server | 9987 | +| Query | 10011 | +| Files | 30033 | + +By default pteordactyl sets the query port to the same as the server port. \ No newline at end of file diff --git a/stock-eggs/voice-servers/egg-mumble-server.json b/stock-eggs/voice-servers/egg-mumble-server.json new file mode 100644 index 00000000..e6256259 --- /dev/null +++ b/stock-eggs/voice-servers/egg-mumble-server.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2018-01-21T17:01:44-06:00", + "name": "Mumble Server", + "author": "support@pterodactyl.io", + "description": "Mumble is an open source, low-latency, high quality voice chat software primarily intended for use while gaming.", + "image": "quay.io\/pterodactyl\/core:glibc", + "startup": ".\/murmur.x86 -fg", + "config": { + "files": "{\"murmur.ini\":{\"parser\": \"ini\", \"find\":{\"logfile\": \"murmur.log\", \"port\": \"{{server.build.default.port}}\", \"host\": \"0.0.0.0\", \"users\": \"{{server.build.env.MAX_USERS}}\"}}}", + "startup": "{\"done\": \"Server listening on\", \"userInteraction\": [ \"Generating new server certificate\"]}", + "logs": "{\"custom\": true, \"location\": \"logs\/murmur.log\"}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\n# Mumble Installation Script\n#\n# Server Files: \/mnt\/server\napk update\napk add tar curl\n\ncd \/tmp\n\ncurl -sSLO https:\/\/github.com\/mumble-voip\/mumble\/releases\/download\/${MUMBLE_VERSION}\/murmur-static_x86-${MUMBLE_VERSION}.tar.bz2\n\ntar -xjvf murmur-static_x86-${MUMBLE_VERSION}.tar.bz2\ncp -r murmur-static_x86-${MUMBLE_VERSION}\/* \/mnt\/server", + "container": "alpine:3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Maximum Users", + "description": "Maximum concurrent users on the mumble server.", + "env_variable": "MAX_USERS", + "default_value": "100", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,5" + }, + { + "name": "Server Version", + "description": "Version of Mumble Server to download and use.", + "env_variable": "MUMBLE_VERSION", + "default_value": "1.2.19", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|regex:\/^([0-9_\\.-]{5,8})$\/" + } + ] +} diff --git a/stock-eggs/voice-servers/egg-teamspeak3-server.json b/stock-eggs/voice-servers/egg-teamspeak3-server.json new file mode 100644 index 00000000..d96ee5c4 --- /dev/null +++ b/stock-eggs/voice-servers/egg-teamspeak3-server.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-31T18:49:40-05:00", + "name": "Teamspeak3 Server", + "author": "support@pterodactyl.io", + "description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/ts3server default_voice_port={{SERVER_PORT}} query_port={{SERVER_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} license_accepted=1", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"listening on 0.0.0.0:\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/ts3.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache tar curl jq\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(wget https:\/\/teamspeak.com\/versions\/server.json -qO - | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2\"\r\ncurl http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar xj --strip-components=1", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Version", + "description": "The version of Teamspeak 3 to use when running the server.", + "env_variable": "TS_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:6" + }, + { + "name": "File Transfer Port", + "description": "The Teamspeak file transfer port", + "env_variable": "FILE_TRANSFER", + "default_value": "30033", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,65535" + } + ] +} \ No newline at end of file diff --git a/terraria/README.md b/terraria/README.md new file mode 100644 index 00000000..1a8469da --- /dev/null +++ b/terraria/README.md @@ -0,0 +1,13 @@ +# Terraria + +## 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 +tModloader, like 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. diff --git a/terraria/tmodloader/README.md b/terraria/tmodloader/README.md index be139132..4fa490da 100644 --- a/terraria/tmodloader/README.md +++ b/terraria/tmodloader/README.md @@ -1,5 +1,5 @@ # tModLoader -### From their [GitHub](https://github.com/blushiemagic/tModLoader) +### From their [GitHub](https://github.com/tModLoader/tModLoader) 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+. ### Install notes @@ -17,3 +17,13 @@ tModloader, like Terraria, only requires a single port to run. The default is 77 | Game | 7777 | #### Plugins may require ports to be added to the server. + +### Extra Information + +If you want to download mods in the console, the startup command has to be changed. + +New startup: +`./tModLoaderServer -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -savedirectory ~/ -tmlsavedirectory ~/saves -modpath ~/mods` + +This will remove the autocreate function, and will thus allow you to download mods and generate world. +Afterwards, you can change it back with the correct world name to start automatic. Word name is set in the configuration panel. \ No newline at end of file diff --git a/terraria/tmodloader/egg-t-modloader.json b/terraria/tmodloader/egg-t-modloader.json index 20847d38..590338e2 100644 --- a/terraria/tmodloader/egg-t-modloader.json +++ b/terraria/tmodloader/egg-t-modloader.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-10-07T10:01:51-04:00", + "exported_at": "2020-06-25T09:46:46-04:00", "name": "tModloader", "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+.", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", - "startup": ".\/tModLoaderServer.bin.x86_64 -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -world ~\/saves\/Worlds\/${WORLD_NAME}.wld -worldname ${WORLD_NAME} -autocreate ${WORLD_SIZE} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5", + "startup": ".\/tModLoaderServer -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -world ~\/saves\/Worlds\/${WORLD_NAME}.wld -worldname ${WORLD_NAME} -autocreate ${WORLD_SIZE} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}", @@ -17,26 +17,17 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vanilla T-shock Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"Downloading tModloader\"\r\nwget https:\/\/github.com\/blushiemagic\/tModLoader\/releases\/download\/${TMODLOADER_VERSION}\/tModLoader.Linux.${TMODLOADER_VERSION}.zip\r\n\r\necho -e \"Unpacking mod loader files\"\r\nunzip tModLoader.Linux.${TMODLOADER_VERSION}.zip\r\n\r\nCLEAN_VERSION=$(echo ${TERRARIA_VERSION} | sed 's\/\\.\/\/g')\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\necho -e \"Cleaning up extra files.\"\r\nrm -rf ${CLEAN_VERSION}\r\n\r\nchmod +x .\/tModLoaderServer.bin.x86_64", - "container": "alpine:3.9", - "entrypoint": "ash" + "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": "debian:buster-slim", + "entrypoint": "bash" } }, "variables": [ { "name": "tModloader Version", "description": "The version of tModloader that is to be used.", - "env_variable": "TMODLOADER_VERSION", - "default_value": "v0.10.1.5", - "user_viewable": 1, - "user_editable": 1, - "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", + "env_variable": "VERSION", + "default_value": "latest", "user_viewable": 1, "user_editable": 1, "rules": "required|string|max:20" @@ -67,6 +58,24 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "GitHub User", + "description": "GitHub user to use for api calls.\r\n\r\nThis only needs to be set if you hit the GitHub API too often across multiple servers.", + "env_variable": "GITHUB_USER", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "string|nullable" + }, + { + "name": "GitHub OAuth Token", + "description": "This can be either an OAuth or a Personal Access Token.\r\n\r\nThis is required for the install is you set a user.", + "env_variable": "GITHUB_OAUTH_TOKEN", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "string|nullable" } ] -} +} \ No newline at end of file diff --git a/terraria/tshock/README.md b/terraria/tshock/README.md index 998d8bec..fec56632 100644 --- a/terraria/tshock/README.md +++ b/terraria/tshock/README.md @@ -12,4 +12,13 @@ TShock, like Terraria, only requires a single port to run. The default is 7777 |---------|---------| | Game | 7777 | -Plugins may require ports to be added to the server. \ No newline at end of file +#### Plugins may require ports to be added to the server. + +### Extra Information +If you want to download mods in the console, the startup command has to be changed. + +New startup: +`mono TerrariaServer.exe -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}}` + +This will remove the autocreate function, and will thus allow you to download mods and generate world. +Afterwards, you can change it back with the correct world name to start automatic. Word name is set in the configuration panel. \ No newline at end of file diff --git a/terraria/tshock/egg-tshock.json b/terraria/tshock/egg-tshock.json index a13bf77f..7cf576d7 100644 --- a/terraria/tshock/egg-tshock.json +++ b/terraria/tshock/egg-tshock.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-02-16T01:48:02-05:00", + "exported_at": "2020-05-18T21:16:19-04:00", "name": "tshock", "author": "parker@parkervcp.com", "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}", "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"ServerLog.txt\"\r\n}", - "stop": "stop" + "stop": "exit" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vanilla T-shock Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"Downloading and installing ${TSHOCK_VERSION}\"\r\n\r\necho -e \"running wget https:\/\/github.com\/Pryaxis\/TShock\/releases\/download\/v${TSHOCK_VERSION}\/tshock_${TSHOCK_VERSION}.zip\"\r\nwget https:\/\/github.com\/Pryaxis\/TShock\/releases\/download\/v${TSHOCK_VERSION}\/tshock_${TSHOCK_VERSION}.zip\r\n\r\nunzip tshock_${TSHOCK_VERSION}.zip", - "container": "alpine:3.9", - "entrypoint": "ash" + "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": "debian:buster-slim", + "entrypoint": "\/bin\/bash" } }, "variables": [ @@ -52,12 +52,12 @@ }, { "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", - "default_value": "4.3.25", + "default_value": "latest", "user_viewable": 1, "user_editable": 0, "rules": "required|string|max:20" } ] -} +} \ No newline at end of file diff --git a/terraria/vanilla/README.md b/terraria/vanilla/README.md new file mode 100644 index 00000000..da96e637 --- /dev/null +++ b/terraria/vanilla/README.md @@ -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. diff --git a/terraria/vanilla/egg-terraria-vanilla.json b/terraria/vanilla/egg-terraria-vanilla.json new file mode 100644 index 00000000..d4761a28 --- /dev/null +++ b/terraria/vanilla/egg-terraria-vanilla.json @@ -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 ']+>' | 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 ']+>' | 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 < 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" + } + ] +} \ No newline at end of file diff --git a/openttd/openttd/README.md b/tycoon_games/openttd/README.md similarity index 100% rename from openttd/openttd/README.md rename to tycoon_games/openttd/README.md diff --git a/openttd/openttd/egg-open-t-t-d-server.json b/tycoon_games/openttd/egg-open-t-t-d-server.json similarity index 56% rename from openttd/openttd/egg-open-t-t-d-server.json rename to tycoon_games/openttd/egg-open-t-t-d-server.json index 834d51c7..c2b4f8a0 100644 --- a/openttd/openttd/egg-open-t-t-d-server.json +++ b/tycoon_games/openttd/egg-open-t-t-d-server.json @@ -3,22 +3,22 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-04-09T22:59:20-04:00", + "exported_at": "2020-01-30T20:47:45-05:00", "name": "OpenTTD Server", "author": "admin@justmyrandomstuff.com", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", "startup": ".\/openttd -D", "config": { - "files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.server_password\": \"{{server.build.env.srv_pass}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\",\r\n \"network.admin_password\": \"{{server.build.env.srv_adminpass}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[net] Map generated, starting game\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}", "stop": "exit" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n\r\napk add --no-cache curl binutils xz\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\ncurl -LSs https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -o openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.xz\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\ncurl -LSs https:\/\/binaries.openttd.org\/extra\/opengfx\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -o opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/openttd\/openttd\/openttd.cfg > openttd.cfg", - "container": "alpine:3.9", + "script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.xz\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -32,15 +32,6 @@ "user_editable": 1, "rules": "required|string|max:20" }, - { - "name": "Server Password", - "description": "The password required to join the server", - "env_variable": "srv_pass", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|string|max:20" - }, { "name": "Show in masterlist?", "description": "Show the server in the serverlist on the client, true or false", @@ -50,29 +41,20 @@ "user_editable": 1, "rules": "required|string|max:5" }, - { - "name": "Admin Password", - "description": "Password to access admin controls in-game", - "env_variable": "srv_adminpass", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - }, { "name": "OpenTTD Version", - "description": "The version of OpenTTD i.e. 1.9.1", + "description": "The version of OpenTTD i.e. 1.10.1", "env_variable": "OPENTTD_VERSION", - "default_value": "1.9.1", + "default_value": "1.10.1", "user_viewable": 1, "user_editable": 0, "rules": "required|string|max:20" }, { "name": "OpenGFX Version", - "description": "The OpenGFX Version i.e. 0.5.5", + "description": "The OpenGFX Version i.e. 0.6.0", "env_variable": "OPENGFX_VERSION", - "default_value": "0.5.5", + "default_value": "0.6.0", "user_viewable": 1, "user_editable": 0, "rules": "required|string|max:20" diff --git a/openttd/openttd/openttd.cfg b/tycoon_games/openttd/openttd.cfg similarity index 100% rename from openttd/openttd/openttd.cfg rename to tycoon_games/openttd/openttd.cfg diff --git a/unreal_engine/tower_unite/README.md b/unreal_engine/tower_unite/README.md index 956a333d..f43f9408 100644 --- a/unreal_engine/tower_unite/README.md +++ b/unreal_engine/tower_unite/README.md @@ -1,11 +1,11 @@ -# Tower Unit +# Tower Unite Their desctiption: Every aspect of Tower Unite allows for online multiplayer interaction. It is a living and evolving online game world, driven by the community. Play games online with your friends, or make new friends from across the globe. ### Server Ports -Tower Unit requires a single port to be oepened +Tower Unite requires a single port to be opened | Port | default | |---------|---------| | Game | 7778 | -| Query | 27016 | \ No newline at end of file +| Query | 27016 | diff --git a/vintage_story/README.md b/vintage_story/README.md new file mode 100644 index 00000000..4bffe25f --- /dev/null +++ b/vintage_story/README.md @@ -0,0 +1,18 @@ +# Vintage Story + +#### The Vintage Story Server +The server supports mods + +#### from the developers + +Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. +Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. +Relive the advent of human civilization, or take your own path. +New to the game? Make sure to checkout their [starter page](https://wiki.vintagestory.at/index.php?title=Main_Page). + +### Server Ports +Vintage Story requires a single port + +| Port | default | +|---------|---------| +| Game | 42420 | \ No newline at end of file diff --git a/vintage_story/vintage_story/egg-vintage-story.json b/vintage_story/vintage_story/egg-vintage-story.json new file mode 100644 index 00000000..0538ec60 --- /dev/null +++ b/vintage_story/vintage_story/egg-vintage-story.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-20T23:54:00+01:00", + "name": "Vintage Story", + "author": "mail@wuffy.eu", + "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete", + "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Dedicated Server now running on Port \",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \".\/data\/Logs\/server-debug.txt\"\r\n}", + "stop": "\/stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y screen wget curl jq\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=`curl -s 'http:\/\/api.vintagestory.at\/stable.json' | jq -r '[.[]] | .[0].server.urls.cdn'`;\r\n# Use specified server release\r\nelse\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Start Options", + "description": "", + "env_variable": "OPTIONS", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "max:200" + }, + { + "name": "Version", + "description": "", + "env_variable": "RELEASE_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Max Clients", + "description": "", + "env_variable": "MAX_CLIENTS", + "default_value": "16", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer|max:2000" + } + ] +} diff --git a/voice_servers/teaspeak/README.md b/voice_servers/teaspeak/README.md new file mode 100644 index 00000000..b3a8ee56 --- /dev/null +++ b/voice_servers/teaspeak/README.md @@ -0,0 +1,12 @@ +# TeaSpeak +### From their [Website](https://teaspeak.de/) +Because a license fee is not my cup of tea! + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Voice | 9987 | +| Query | 10101 | +| File | 30303 | \ No newline at end of file diff --git a/voice_servers/teaspeak/egg-tea-speak.json b/voice_servers/teaspeak/egg-tea-speak.json new file mode 100644 index 00000000..fe395b61 --- /dev/null +++ b/voice_servers/teaspeak/egg-tea-speak.json @@ -0,0 +1,81 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-03-28T13:50:13-04:00", + "name": "TeaSpeak", + "author": "parker@parkervcp.com", + "description": "TeaSpeak is a free to use client and server software for VoIP communication.\r\n\r\nIts the ideal deal software for everyone who is annoyed about limits and restrictions.", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/TeaSpeakServer --property:binding.query.port={{QUERY_PORT}} --property:binding.file.port={{FILE_PORT}} --property:voice.default_port={{SERVER_PORT}}", + "config": { + "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"voice.default_port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.env.QUERY_PORT}}\",\r\n \"file.port\": \"{{server.build.env.FILE_PORT}}\",\r\n \"query.motd\": \"\\\"{{server.build.env.SERVER_MOTD}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Started server on \"\r\n}", + "logs": "{}", + "stop": "shutdown now" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n \r\n## install required packages\r\napt update\r\napt upgrade -y\r\napt install curl -y\r\n\r\n## make and change to directory\r\nmkdir \/mnt\/server\r\ncd \/mnt\/server\/\r\n\r\n## get download link\r\nif [ \"${VERSION}\" == \"\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo \"https:\/\/repo.teaspeak.de\/server\/linux\/amd64\/TeaSpeak-$(curl -sSLk https:\/\/repo.teaspeak.de\/server\/linux\/amd64\/latest).tar.gz\")\r\nelse\r\n DOWNLOAD_URL=$(echo \"https:\/\/repo.teaspeak.de\/server\/linux\/amd64\/TeaSpeak-${VERSION}.tar.gz\")\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\n## download files\r\necho -e \"running: curl -sSL -o teaspeak.tar.gz ${DOWNLOAD_LINK}\"\r\ncurl -sSL -o teaspeak.tar.gz ${DOWNLOAD_LINK}\r\n\r\n## unpack files\r\necho -e \"unpacking files\"\r\ntar xzvf teaspeak.tar.gz\r\n\r\necho -e \"install complete\"", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Query Port", + "description": "The query port for TeaSpeak", + "env_variable": "QUERY_PORT", + "default_value": "10101", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric|max:65535" + }, + { + "name": "File Transfer Port", + "description": "The TeaSpeak File Transfer Port", + "env_variable": "FILE_PORT", + "default_value": "30303", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric|max:65535" + }, + { + "name": "Server MOTD", + "description": "The TeaSpeak Server MOTD", + "env_variable": "SERVER_MOTD", + "default_value": "TeaSpeak\\n\\rHosted on pterodactyl!", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:128" + }, + { + "name": "ld library path", + "description": "Don't touch this if you want the server to start", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/libs\/", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "ld preload", + "description": "Don't touch this if you want the server to start", + "env_variable": "LD_PRELOAD", + "default_value": ".\/libs\/libjemalloc.so.2", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Teaspeak Version", + "description": "What version of teaspeak to install", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file