Merge pull request #1 from parkervcp/master

Update
This commit is contained in:
ViViV_ 2020-02-24 18:55:19 +01:00 committed by GitHub
commit 093a9adb98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
181 changed files with 6089 additions and 571 deletions

View File

@ -4,8 +4,14 @@ 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.
---------------
Panel Version: (version number)
Daemon Version: (version number)
Service: (minecraft/factorio/etc)

View File

@ -1,15 +0,0 @@
Please fill out the information bellow and remove from the line up
---------------
Panel Version: (version number)
Daemon Version: (version number)
New Service: (yes/no) (Is this a request for a new service?)
Service: (minecraft/factorio/etc)
Modified: (yes/no) (did you add or change things, this includes startup configs/install scripts/variables)
Expected Behavior:
Actual Behavior:
Steps to Reproduce: (Step by step what to do to cause the issue)
If this is a request for a new service then you can add info here like links to the site where the server files can be found. If it is a steamcmd game have you looked at the custom source engine service yet?

View File

@ -5,7 +5,15 @@ about: Suggest a server to build an egg for
---
Please fill out the information bellow and remove from the line up
Please understand how Pterodactyl works when you are requesting an egg. (ie. docker-compose doesn't work for a pterodactyl server)
---------------
Service: (Ex. minecraft/factorio/etc)
Link to game: (Ex. minecraft.net/factorio.com/etc)
Does this expand an already existing service: Y/N
Link to game: (Ex. minecraft.net/factorio.com/etc)
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:

View File

@ -1,20 +0,0 @@
### All Submissions:
* [ ] Have you followed the guidelines in our Contributing document?
* [ ] Have you checked to ensure there aren't other open [Pull Requests](../../pulls) for the same update/change?
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### New Feature Submissions:
1. [ ] Does your submission pass tests (server is connectable)?
### Changes to Egg Features:
* [ ] Have you added an explanation of what your changes do and why you'd like us to include them?
* [ ] Have you tested your Egg changes?
### Changes to README:
* [ ] Have you added the server to the main README.md?
* [ ] Have you added a unique README.md for the server you are adding?

22
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,22 @@
### All Submissions:
* [ ] Have you followed the guidelines in our Contributing document?
* [ ] Have you checked to ensure there aren't other open [Pull Requests](../../pulls) for the same update/change?
* [ ] Did you branch your changes and PR from that branch and not from your master branch?
* If not, why?:
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### New Server Submissions:
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 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?

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.DS_Store
node_modules/
.vuepress/*

View File

@ -1 +0,0 @@
.DS_Store

View File

@ -11,6 +11,9 @@
3. Try to stay in the stock containers.
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.
## Step 1.
#### Be aware of the pterodactyl install process.
@ -38,6 +41,6 @@ This is to maintain a clean repo that others can pull and be fully aware of what
## Step 3.
#### Don't be afraid to submit PR's to the egg repo.
#### Make a branch and do your work in there.
I dont bite. I will work with you on the egg and the required things to run it.
I have been getting messy PR's due to people always PRing from their master branch. Please make a branch and PR from there,

128
README.md
View File

@ -2,56 +2,120 @@
I am working on adding a large collection of public eggs for the Pterodactyl community.
With that I am also accepting PR's for new service and also updates to the current ones.
With that I am also accepting PR's for new services and also updates to the current ones.
If you are submitting PR's try and keep names and titles the same.
## How to import an egg
# You must restart your daemon after importing 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
## Please read the CONTRIBUTING.md before submitting PRs
## Bot Eggs
[Discord](/bots/discord/)
* [ATL Bot](/bots/discord/atlbot) NodeJS
* [parkertron](/bots/discord/parkertron/) Golang
* [pixel-bot](/bots/discord/pixelbot/) Python
* [Sinusbot](/bots/discord/sinusbot/)
[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
* [jmusicbot](/bots/discord/jmusicbot) Java
* [parkertron](/bots/discord/parkertron/) Golang
* [pixel-bot](/bots/discord/pixelbot/) Python
* [Sinusbot](/bots/discord/sinusbot/)
[TeamSpeak3](bots/teamspeak3)
* [JTS3ServerMod](/bots/teamspeak3/jts3servermod/)
## Database Eggs
[MariaDB](/database/mariadb/)
## Game Eggs
[Factorio](/factorio/factorio/)
[Grand Theft Auto](/gta/)
* [FiveM](/gta/fivem/)
* [RageMP](/gta/ragemp/)
[ET Legacy](/enemy_territory/etlegacy/)
[Minecraft](/minecraft/)
* [Forge](/minecraft/forge/)
* [Feed The Beast](/minecraft/ftb/)
* [Spigot](/minecraft/spigot/)
* [Technic](/minecraft/technic/)
[Factorio](/factorio/factorio/)
[MinecraftPE](/minecraft_pe/)
* [Bedrock](/minecraft_pe/bedrock/)
* [Nukkit](/minecraft_pe/nukkit/)
* [PocketMine MP](/minecraft_pe/pocketmine_mp/)
[Grand Theft Auto](/gta/)
* GTA V
* [FiveM](/gta/fivem/)
* [RageMP](/gta/ragemp/)
* [alt:V](/gta/altv/)
* GTA SA
* [Multi Theft Auto](/gta/mtasa/)
* [SA-MP](/gta/samp/)
[Minecraft Proxies](/minecraft_proxy/)
* [Waterfall](/minecraft_proxy/waterfall/)
[Minecraft Bedrock](/minecraft_bedrock/) Servers for Bedrock Minecraft
* [Bedrock](/minecraft_bedrock/bedrock/)
* [Nukkit](/minecraft_bedrock/nukkit/)
* [PocketMine MP](/minecraft_bedrock/pocketmine_mp/)
[Mount & Blade Warband](/mb_warband/)
[Minecraft Java](/minecraft_java/) Servers for Java Minecraft
* [Cuberite](/minecraft_java/cuberite/)
* [Forge](/minecraft_java/forge/)
* [Feed The Beast](/minecraft_java/ftb/)
* [Paper](/minecraft_java/paper)
* [Spigot](/minecraft_java/spigot/)
* [spongeforge](/minecraft_java/spongeforge/)
* [SpongeVanilla](/minecraft_java/spongevanilla/)
* [Technic](/minecraft_java/technic/)
* [VanillaCord](/minecraft_java/vanillacord/)
[Source](/source_servers/)
* [7 Days to Die](/source_servers/7_days_to_die/)
* [PixARK](/source_servers/pixark/)
[Minecraft Proxies](/minecraft_proxy/) (these are for the java version of minecraft)
* [Waterfall](/minecraft_proxy/waterfall/)
* [TyphoonLimbo](/minecraft_proxy/typhoonlimbo/)
* [Velocity](/minecraft_proxy/velocity/)
[Squad](/squad/)
[Terraria](/terraria/)
* [tshock](/terraria/tshock/)
[Unturned](/unturned/)
* [RocketMod](/unturned/rocketmod/)
[Red Dead Redemption](/rdr/)
* [RedM](/rdr/redm/)
[Xonotic](/xonotic/)
[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/)
* [Conan Exiles](/steamcmd_servers/conan_exiles)
* [Don't Starve](/steamcmd_servers/dont_starve)
* [ECO](/steamcmd_servers/eco/)
* [HLDS server](/steamcmd_servers/hlds_server)
* [Mordhau](/steamcmd_servers/mordhau)
* [Onset](/steamcmd_servers/onset)
* [PixARK](/steamcmd_servers/pixark/)
* [Rust Staging Branch](/steamcmd_servers/rust_staging/)
* [SCP: Secret Laboratory](/steamcmd_servers/scpsl/)
* [Starbound](/steamcmd_servers/starbound)
* [Sven Co-op](/steamcmd_servers/svencoop)
* [Squad](/steamcmd_servers/squad/)
* [Unturned](/steamcmd_servers/unturned/)
* [RocketMod](/steamcmd_servers/unturned/rocketmod/)
* [Unturned](/steamcmd_servers/unturned/unturned/)
[Tycoon Games](/tycoon_games/)
* [OpenTTD](/tycoon_games/openttd/)
[Unreal Engine](/unreal_engine)
* [Tower Unite](/unreal_engine/tower_unite/)
* [Tower Unite](/steamcmd_servers/tower_unite/)
[Terraria](/terraria/)
* [tmodloader](/terraria/tmodloader)
* [tshock](/terraria/tshock/)
[Tycoon Games](/tycoon_games/)
* [OpenTTD](/tycoon_games/openttd/)
[Xonotic](/xonotic/xonotic/)

View File

@ -2,10 +2,30 @@
### Some of these bots support other services but are primarily Discord bots
#### Generic Discord.js bot egg
discord.js
A generic discord.js bot egg. Meant to pull from a repo can also be used where a user can upload the files on their own.
#### ATLauncher Discord Bot
[ATLauncher/discord-bot](https://github.com/ATLauncher/discord-bot)
Their github has all the info you need
#### Bastion
[TheBastionBot/Bastion](https://github.com/TheBastionBot/Bastion)
Give awesome perks to your Discord server!
#### DiscordJS
[discord.js](https://discord.js.org/)
A generic discord.js egg for running discord bots.
#### fragbot
[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
#### parkertron
[parkervcp/parkertron](https://github.com/parkervcp/parkertron)
The bot that runs as the pterodactyl `@Support Bot`

View File

@ -0,0 +1,6 @@
# ATLBot
### Their [Github](https://github.com/ATLauncher/discord-bot)
This is the code for our Discord bot which runs on the official ATLauncher Discord server
### Server Ports
There are no ports required for the atl bot

View File

@ -1,36 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-02-22T13:32:44-05: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:nodejs",
"startup": "npm run start",
"config": {
"files": "{\r\n \"config\/config.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}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "apk add --no-cache openssl\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\/config.json.example config\/config.json\r\n\r\n\/usr\/local\/bin\/npm install --production\r\n\r\n\/usr\/local\/bin\/npm run build\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",
"container": "node:8.9-alpine",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "client_token",
"description": "Get a discord token at https:\/\/discordapp.com\/developers\/",
"env_variable": "CLIENT_TOKEN",
"default_value": "get_your_own_token_from_discord_",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:75"
}
]
}

View File

@ -0,0 +1,45 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"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 \"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\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"
}
},
"variables": [
{
"name": "client_token",
"description": "Get a discord token at https:\/\/discordapp.com\/developers\/",
"env_variable": "CLIENT_TOKEN",
"default_value": "get_your_own_token_from_discord_",
"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"
}
]
}

View File

@ -0,0 +1,9 @@
# Bastion
### From their [Github](https://github.com/TheBastionBot/Bastion)
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.
### Server Ports
No Ports are required for the bastion bot.

View File

@ -0,0 +1,45 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-05-06T23:13:44-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 .",
"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}",
"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\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",
"container": "node:10-alpine",
"entrypoint": "ash"
}
},
"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\/",
"env_variable": "BOT_TOKEN",
"default_value": "GETABOTTOKEN",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
}
]
}

View File

@ -0,0 +1,7 @@
# discord.js generic
This egg was designed to allow a user to pull their own nodejs 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.

View File

@ -0,0 +1,72 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-02-01T21:36:43-05: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:debian_nodejs-10",
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi && \/usr\/local\/bin\/npm install --production && \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}",
"config": {
"files": "{}",
"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 make gcc g++ python\r\n\r\ncd \/mnt\/server\r\n\r\nif [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\nfi\r\n\r\necho -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n\techo -e \"assuming user knows what they are doing have a good day.\"\r\n\texit 0\r\nelse\r\n\tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n\t\techo -e \"\/mnt\/server directory is not empty.\"\r\n\t if [ -d .git ]; then\r\n\t\t\techo -e \".git directory exists\" \r\n\t\t\tif [ -f .git\/config ]; then\r\n\t\t\t\techo -e \"loading info from git config\"\r\n\t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n\t\t\telse\r\n\t\t\t\techo -e \"files found with no git config\"\r\n\t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n\t\t\t\texit 10\r\n\t\t\tfi\r\n\t\tfi\r\n\t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n\t\t\techo \"pulling latest from github\"\r\n\t\t\tgit pull \r\n\t\t\techo -e \"updating local npm modules\"\r\n\t\t\t\/usr\/local\/bin\/npm install --production\r\n\t\tfi\r\n\telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n\t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n\t\t\techo -e \"assuming master branch\"\r\n\t\t\tINSTALL_BRANCH=master\r\n\t\tfi\r\n \r\n\t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n\t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n\t\techo -e \"install npm modules locally\"\r\n\t\t\/usr\/local\/bin\/npm install --production\r\n\tfi\r\nfi \r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "node:10-alpine",
"entrypoint": "ash"
}
},
"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": 0,
"rules": "nullable|string|max:128"
},
{
"name": "Install Branch",
"description": "The branch of the bot to install",
"env_variable": "INSTALL_BRANCH",
"default_value": "",
"user_viewable": 1,
"user_editable": 0,
"rules": "nullable|string|max:32"
},
{
"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": 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"
}
]
}

View File

@ -0,0 +1,8 @@
# fragbot
### Their [Github](https://github.com/fragforce/fragbot)
The golang based discord bot for fragforce.
Runs the fragforce `@fragbot`
### Server Ports
There are no ports required for fragbot

View File

@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-04-27T21:33:33-04:00",
"name": "fragbot",
"author": "parker@parkervcp.com",
"description": "The fragforce discord bot.\r\n\r\nlocated at https:\/\/github.com\/fragforce\/fragbot",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine",
"startup": ".\/fragbot",
"config": {
"files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"token\": \"{{server.build.env.DISCORD_TOKEN}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Bot is now running\",\r\n \"userInteraction\": []\r\n}",
"logs": "{}",
"stop": "shutdown"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# fragbot 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\r\n\r\necho \"pulling the fragbot repo\"\r\n\r\ngit clone https:\/\/github.com\/fragforce\/fragbot.git\r\n\r\ncd fragbot\/\r\n\r\ngo mod download\r\n\r\necho \"building fragbot\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp fragbot \/mnt\/server\/\r\n\r\nif [ -f \/mnt\/server\/config.json ]; then\r\n echo \"config file exists already\"\r\nelse\r\n cp -r \/root\/fragbot\/config.example.json \/mnt\/server\/config.json\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"",
"container": "golang:1.12-alpine",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Discord Bot Token",
"description": "The token that is to be used for the bot.",
"env_variable": "DISCORD_TOKEN",
"default_value": "ThisNeedsToBeChanged",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:64"
}
]
}

View File

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

View File

@ -0,0 +1,54 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-02-21T13:00:39-05: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=\"All\"\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i config)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i config)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n fi\r\nfi\r\n\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\ncurl -Lo JMusicBot.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"config found\"\r\nelse\r\n echo -e \"config not found getting default\"\r\n curl -Lo config.txt ${CONFIG_LINK}\r\nfi\r\n\r\necho \"Job's Done\"",
"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"
}
]
}

View File

@ -0,0 +1,8 @@
# parkertron
### Their [Github](https://github.com/parkervcp/parkertron)
Purely a chatbot. Not even a smart one.
Runs the Pterodactyl `@support bot`
### Server Ports
There are no ports required for parkertron

View File

@ -3,11 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-07-24T00:13:01-04:00",
"exported_at": "2019-02-17T12:34:32-05:00",
"name": "parkertron",
"author": "parker@parkervcp.com",
"description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron",
"image": "quay.io\/parkervcp\/pterodactyl-images:parkertron",
"image": "quay.io\/parkervcp\/pterodactyl-images:bot_parkertron",
"startup": ".\/parkertron",
"config": {
"files": "{}",
@ -17,8 +17,8 @@
},
"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\nmkdir -p go\/bin go\/src\r\n\r\napk add --no-cache --update go git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"installing dep for golang dependancies\"\r\n\r\ncurl https:\/\/raw.githubusercontent.com\/golang\/dep\/master\/install.sh | sh\r\n\r\ncd go\/src\/\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\ndep ensure\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 -r configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"",
"container": "alpine:3.7",
"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",
"entrypoint": "ash"
}
},

View File

@ -0,0 +1,9 @@
# pixelbot
### Their [Github](https://github.com/possatti/pixelbot)
Bot for pixelcanvas.io
### Server Ports
There are no ports required for pixelbot
### Side notes
This was to make sure the parkervcp/images:python 3 image worked.

View File

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

View File

@ -0,0 +1,15 @@
# SinusBot
### Their [Site](https://www.sinusbot.com/)
Listen to your favorite music together with all of your friends
Welcome the Simple, Elegant & great sounding TS3- and Discord-Bot!
### Server Ports
1 port is required to run SinusBot.
| Port | default |
|---------|---------|
| Game | 8087 |
### Side notes
This uses a custom image.

View File

@ -3,11 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-07-10T00:15:54-04:00",
"exported_at": "2019-07-25T10:48:45-04:00",
"name": "Sinusbot",
"author": "ki2007@damw.eu",
"author": "support@pterodactyl.io",
"description": "Musicbot for Discord and Teamspeak.",
"image": "quay.io\/parkervcp\/pterodactyl-images:sinusbot",
"image": "quay.io\/parkervcp\/pterodactyl-images:bot_sinusbot",
"startup": ".\/sinusbot --override-password=\"${OVERRIDE_PASSWORD}\"",
"config": {
"files": "{\r\n \"config.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ListenPort\": \"ListenPort = {{server.build.default.port}}\",\r\n \"ListenHost\": \"ListenHost = \\\"0.0.0.0\\\"\"\r\n }\r\n }\r\n}",
@ -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 -q `curl https:\/\/www.teamspeak.com\/en\/downloads#client | grep Client-linux_amd64 | grep option | grep 4Net | cut -d'\"' -f2`\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"
}

View File

@ -0,0 +1,7 @@
# TeamSpeak3 Bots
### Some of these bots support other services but are primarily TeamSpeak3 bots
#### JTS3ServerMod
[JTS3ServerMod](https://www.stefan1200.de/forum/index.php?topic=2.0)
Please Check their site for an in depth on the bot.

View File

@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-01-11T00:40:33+01:00",
"name": "JTS3ServerMod",
"author": "teamwuffy@gmail.com",
"description": "Setup:\r\n- Install the latest version\r\n- Go into config\/server1 and edit JTS3ServerMod_server.cfg\r\n- Save and start the server\r\n\r\nAuthor: https:\/\/www.stefan1200.de\/forum\/index.php?topic=2.0",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar .\/JTS3ServerMod.jar",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Successful connected to \",\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# 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",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Version",
"description": "",
"env_variable": "SERVER_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
}
]
}

9
database/README.md Normal file
View File

@ -0,0 +1,9 @@
# databases
## sql DBs
### [mariadb](/database/mariadb/)
https://mariadb.org/
### [postgres](/database/postgres/)
https://www.postgresql.org/

View File

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

View File

@ -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\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit",
"container": "mariadb:10.3",
"entrypoint": "bash"
}
},
"variables": []
}

View File

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

190
database/mariadb/my.cnf Normal file
View File

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

View File

@ -0,0 +1,20 @@
# 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 down.
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://www.etlegacy.com/).
### Server Ports
ET: Legacy requires a single port
| Port | default |
|---------|---------|
| Game | 27960 |

View File

@ -0,0 +1,45 @@
{
"_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 '<a [^>]+>' | 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 '<a [^>]+>' | 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 '<a [^>]+>' | 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"
}
]
}

20
example/README.md Normal file
View File

@ -0,0 +1,20 @@
# Example Server Name
### From their [Github](https://github.com/parkervcp/eggs)
A link to the site that you download game files from.
The description of the server usually provided by the game/server maker.
### 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.
### Minimum RAM warning
Minimum required memory to run the server.
### Server Ports
Ports required to run the server in a table format.
| Port | default |
|---------|---------|
| Game | 25565 |
#### Mods/Plugins may require ports to be added to the server.

View File

@ -3,21 +3,21 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-07-29T02:28:44-04:00",
"exported_at": "2019-08-18T21:02:25+02:00",
"name": "Factorio",
"author": "parker@parkervcp.com",
"description": "The vanilla Factorio server.\r\n\r\nhttps:\/\/www.factorio.com\/",
"image": "quay.io\/pterodactyl\/core:glibc",
"image": "quay.io\/parkervcp\/pterodactyl-images:glibc",
"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}",
"startup": "{\r\n \"done\": \"Hosting game at IP ADDR\",\r\n \"userInteraction\": []\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]\\.[0-9][0-9] | [0-9]\\.[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} --map-settings data\/map-settings.json --map-gen-settings data\/map-gen-settings.json\r\n chmod o+w ${SAVE_NAME}.zip\r\nfi",
"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"
}
@ -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, Blank is none.",
"env_variable": "SERVER_PASS",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:30"
}
]
}

View File

@ -5,10 +5,16 @@
[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/)
SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).
[MTA SA](https://mtasa.com/)
What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.

11
gta/altv/README.md Normal file
View File

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

63
gta/altv/egg-alt--v.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,23 @@
# FiveM
The [FiveM](https://fivem.net/) GTA 5 dedicated server
# Notice
This is to inform all users that the4 fivem team has enabled cloudflare ddos protection and the install script is now broken due to this.
You will need to have a self hosted version of the server files to curl in the install script.
I have added a `DOWNLOAD_URL` variable that needs to point to a `fx.tar.xz` file as I am too lazy to update the entire script.
### From the [FiveM](https://fivem.net/) Site
FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers.
### 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 | 30210 |
| Game+1 | 30211 |

View File

@ -3,22 +3,22 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-07-17T10:59:42-04:00",
"exported_at": "2019-11-03T20:45:20-05: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}} +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}",
"startup": "{\r\n \"done\": \"Server license key authentication succeeded. Welcome!\"\r\n}",
"startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"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\/ | tail -4 | head -1 | cut -d'\"' -f2`\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.7",
"script": "#!\/bin\/ash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add openssl tar xz curl wget git file --no-cache\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/ \r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\nif [ \"${FIVEM_VERSION}\" == \"latest\" ] || [ -z ${FIVEM_VERSION} ] ; then\r\n LATEST_RECOMMENDED=$(echo -e \"${RELEASE_PAGE}\" | grep \"LATEST RECOMMENDED\" -B1 | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1')\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${LATEST_RECOMMENDED})\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${FIVEM_VERSION})\r\n if [ \"${VERSION_LINK}\" == \"\" ]; then\r\n echo -e \"defaulting to latest as the version requested was invalid.\"\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\"]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"",
"container": "alpine:3.10",
"entrypoint": "ash"
}
},
@ -32,11 +32,20 @@
"user_editable": 1,
"rules": "required|string|max:32"
},
{
"name": "Steam Web Api Key",
"description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/",
"env_variable": "STEAM_WEBAPIKEY",
"default_value": "none",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string"
},
{
"name": "Max Players",
"description": "Set the fivem max play count",
"env_variable": "MAX_PLAYERS",
"default_value": "30",
"default_value": "32",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|integer|between:1,32"
@ -49,6 +58,24 @@
"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"
}
]
}

14
gta/mtasa/README.md Normal file
View File

@ -0,0 +1,14 @@
# Multi Theft Auto
[Multi Theft Auto](https://mtasa.com/) is a Open Source Grand Theft Auto: San Andreas Multiplayer modification.
### Server Ports
Multi Theft Auto requires 3 ports.
| Port | Default |
-------|----------
| Game | 22003 |
| http | 22005 |
| ASE | 22126 |
The ASE port is required to announce the server to the mta server list, this port is always the Game port (22003) +123.

View File

@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-03-10T15:39:00+01:00",
"name": "Multi Theft Auto",
"author": "info@six-gaming.com",
"description": "What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.",
"image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source",
"startup": ".\/mta-server64 --port {{SERVER_PORT}} --httpport {{SERVER_WEBPORT}} -n",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Server started and is ready to accept connections\"\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "shutdown"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o multitheftauto_linux_x64.tar.gz https:\/\/linux.mtasa.com\/dl\/multitheftauto_linux_x64.tar.gz\r\ncurl -sSL -o mta-baseconfig.tar.gz https:\/\/linux.mtasa.com\/dl\/baseconfig.tar.gz\r\ncurl -sSL -o mtasa-resources-latest.zip http:\/\/mirror.mtasa.com\/mtasa\/resources\/mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf multitheftauto_linux_x64.tar.gz -C \/mnt\/server\/\r\ncp -r \/mnt\/server\/multitheftauto_linux_x64\/* \/mnt\/server\r\nrm -rf \/mnt\/server\/multitheftauto_linux_x64\/\r\n\r\nmkdir -p \/mnt\/server\/mods\/deathmatch\/resources\r\nunzip -d \/mnt\/server\/mods\/deathmatch\/resources mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server-conf\r\ntar -xzvf mta-baseconfig.tar.gz -C \/mnt\/server-conf\r\ncp -r \/mnt\/server-conf\/baseconfig\/* \/mnt\/server\/mods\/deathmatch\r\nrm -rf \/mnt\/server-conf\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server",
"container": "ubuntu:16.04",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "SERVER_WEBPORT",
"description": "The http port for web resource.\r\nThis Port needs to be the {{SERVER_PORT}}+3.",
"env_variable": "SERVER_WEBPORT",
"default_value": "22005",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|numeric"
}
]
}

View File

@ -1,9 +1,9 @@
{
"announce": false,
"announce": true,
"bind": "0.0.0.0",
"gamemode": "freeroam",
"name": "RAGE:MP Unofficial server",
"maxplayers": 100,
"port": 26011,
"streamdistance": 500
}
}

View File

@ -3,11 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-06-03T00:48:50-04:00",
"exported_at": "2019-09-04T17:31:10-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",
"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.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": "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": "false",
"default_value": "0",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|boolean"

View File

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

View File

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

View File

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

View File

@ -1,45 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-07-15T12:35:48-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\napk update\r\napk add curl\r\n\r\nBASE_URL=${MODPACK_URL}\/files\r\n\r\nif [ -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\nelse \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\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n\r\nSECONDURL=${BASE_URL}\/${ID}\r\necho \"SECONDURL: ${SECONDURL}\"\r\n\r\nGOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\necho \"GOOD_ID: ${GOOD_ID}\"\r\n\r\nDL_URL=${BASE_URL}\/${GOOD_ID}\/download\r\necho \"Download_URL: ${DL_URL}\"\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Executing curl -L ${DL_URL} -o server.zip\"\r\ncurl -L ${DL_URL} -o server.zip\r\n\r\nunzip server.zip\r\n\r\nrm -rf server.zip\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\r\n\r\nmv *universal.jar server.jar",
"container": "frolvlad\/alpine-oraclejdk8:cleaned",
"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|max:64"
},
{
"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"
}
]
}

View File

@ -1,45 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-03-10T00:30:35-06:00",
"name": "Paper Spigot",
"author": "hostmaster@waterfallgaming.net",
"description": "High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.",
"image": "quay.io\/pterodactyl\/core:java-glibc",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Paper Spigot 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\nif [ -z \"${DL_VERSION}\" ] || [ \"${DL_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=\"lastSuccessfulBuild\"\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} https:\/\/ci.destroystokyo.com\/job\/Paper\/${DL_VERSION}\/artifact\/paperclip.jar",
"container": "alpine:3.4",
"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": "PaperSpigot Version",
"description": "The version of PaperSpigot to download, Use \"latest\" for latest.",
"env_variable": "DL_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|between:3,7"
}
]
}

View File

@ -9,5 +9,5 @@ The official Minecraft Bedrock (Formerly Minecraft Pocket Edition) server.
Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition
#### PocketMine MP
[PockletMine MP](https://github.com/pmmp/PocketMine-MP)
A server software for Minecraft: Bedrock Edition in PHP
[PocketMine MP](https://github.com/pmmp/PocketMine-MP)
A server software for Minecraft: Bedrock Edition in PHP

View File

@ -3,38 +3,38 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-09-13T12:06:06-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}",
"startup": "{\r\n \"done\": \"Listening on IPv4 port\"\r\n}",
"startup": "{\r\n \"done\": \"Server started\"\r\n}",
"logs": "{}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n\r\napk add --no-cache zip unzip wget\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Downloading files from https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\"\r\nwget https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\n\r\necho -e \"Unpacking server files\"\r\nunzip bedrock-server-$BEDROCK_VERSION.zip\r\n\r\necho -e \"Done\"",
"container": "alpine:3.8",
"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"
}
},
"variables": [
{
"name": "Bedrock Version",
"description": "The version of bedrock",
"description": "The version of bedrock. (Ex. 1.7.0.13)\r\n\r\nDefault version is latest.",
"env_variable": "BEDROCK_VERSION",
"default_value": "1.6.1.0",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
},
{
"name": "ld lib path",
"description": "This is required to run the server properly.",
"description": "Dumb reasons to need this",
"env_variable": "LD_LIBRARY_PATH",
"default_value": ".",
"user_viewable": 0,

View File

@ -3,7 +3,7 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-05-13T20:03:45+00: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\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/nukkit\/${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%20PE\/nukkit\/nukkit.yml\r\n\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/Minecraft%20PE\/nukkit\/server.properties",
"container": "alpine:3.7",
"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"
}
},

View File

@ -0,0 +1,36 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2020-01-24T08:59:24-05: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: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}",
"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\": \"server.log\"\r\n}",
"stop": "stop"
},
"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.3 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.3-Linux-x86_64\/lastSuccessfulBuild\/artifact\/PHP_Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n getting default server.properties\"\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/pocketmine_mp\/server.properties > server.properties\r\n\r\necho -e \"\\n unpacking php7 binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing pvp7 packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.tx banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs",
"container": "alpine:3.10",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "PocketmineMP Version",
"description": "The build to pull and install. (Ex. 1604)\r\n\r\nThis is the build number on https:\/\/jenkins.pmmp.io",
"env_variable": "PMMP_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|max:20"
}
]
}

View File

@ -7,18 +7,9 @@ Its set in infinitely-generated worlds of wide open terrain - icy mountains,
## Server Ports
The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.
## 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
[Taco Spigot GitHub](https://github.com/TacoSpigot/TacoSpigot)
An even-higher higher performance PaperSpigot fork that adds new features.
## Cuberite
A lightweight, fast and extensible game server for Minecraft
[Cuberite](https://cuberite.org/)
## Forge
[Forge MC](https://files.minecraftforge.net/)
@ -38,7 +29,25 @@ Supply values to 2 variables to use
[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.
#### Technic Packs
## 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!
@ -46,4 +55,4 @@ Gear up and set forth on a campaign worthy of legend, for Hexxit has been uneart
Blightfall is a combination modpack and adventure map about surviving on an alien planet.
[Tekkit Legends](https://www.technicpack.net/modpack/tekkit-legends)
The ancient power of Tekkits past return in this legendary pack!
The ancient power of Tekkits past return in this legendary pack!

View File

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

View File

@ -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:\/\/builds.cuberite.org\/job\/Cuberite%20Linux%20x64%20Master\/lastSuccessfulBuild\/artifact\/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"
}
]
}

View File

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

View File

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

View File

@ -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/<modpack_name>`
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.

File diff suppressed because one or more lines are too long

View File

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

View File

@ -0,0 +1,54 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-12-01T20:05:28-05: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 -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\necho -e \"minecraft version: ${MC_VERSION}\"\r\necho -e \"build type: ${BUILD_TYPE}\"\r\n\r\nJSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\nif [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n\tBUILD_TYPE=recommended\r\n\t\r\n\techo -e \"minecraft version: ${MC_VERSION}\"\r\n\techo -e \"build type: ${BUILD_TYPE}\"\r\nfi\r\n\r\n## some variables for getting versions and things\r\nFILE_SITE=$(echo -e ${JSON_DATA} | jq -r '.homepage')\r\nVERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n## locating the forge version\r\nif [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"latest\"))')\r\nfi\r\n\r\n## Error if the mc version set wasn't valid.\r\nif [ \"${VERSION_KEY}\" == \"\" ]; then\r\n\techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n\texit 1\r\nfi\r\n\r\nFORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\nif [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\nelse\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\nfi\r\n\r\n#Go into main direction\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#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-universal.jar; then\r\n echo -e \"universal jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 3\r\n fi\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\ncurl -s -o $SERVER_JARFILE -sS ${DOWNLOAD_LINK}-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ] || [ ! -f .\/$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\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"
}
]
}

View File

@ -3,22 +3,22 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-04-02T17:20:55-04:00",
"exported_at": "2019-04-03T08:08:25-04:00",
"name": "Feed the Beast",
"author": "aevum@decess.us",
"description": "Egg to handle all official FTB Modpacks",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar FTBserver-*.jar",
"image": "quay.io\/pterodactyl\/core:java-glibc",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar FTBserv*.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 \"level-name\": \"{{server.build.env.LEVEL_NAME}}\",\r\n \"level-seed\": \"{{server.build.env.LEVEL_SEED}}\",\r\n \"max-players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"motd\": \"{{server.build.env.MOTD}}\"\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 \"query.port\": \"{{server.build.default.port}}\",\r\n \"level-name\": \"{{server.build.env.LEVEL_NAME}}\",\r\n \"level-seed\": \"{{server.build.env.LEVEL_SEED}}\",\r\n \"max-players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"motd\": \"{{server.build.env.MOTD}}\"\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# Generic FTB Server Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# MODPACK_VERSION = version of the modpack, set in variables\r\n# i.e MODPACK_VERSION=1.5.0\r\n# MODPACK_URL = url base of the pack, set in variables, hardcoded\r\n# i.e https:\/\/www.feed-the-beast.com\/projects\/ftb-revelation\/files\r\n# MODPACK_URL=ftb-revelation\r\n\r\napk add curl --no-cache\r\n\r\n## Correcting for bad variables\r\nGETPACK=$(echo ${MODPACK_URL} | cut -d \"\/\" -f 5 )\r\necho -e \"\\n The pack being downloaded is $GETPACK \\n\"\r\n\r\n## Getting the Base URL\r\nBASEURL=https:\/\/www.feed-the-beast.com\/projects\/${GETPACK}\/files\r\necho \"The base URL is ${BASEURL}\"\r\n\r\n## This is meant to get the pack ID that is unique and not exactly clear \r\n\r\n\r\nif [ -z \"${MODPACK_VERSION}\" ] || [ \"${MODPACK_VERSION}\" == \"latest\" ]; then\r\n ID=`curl -sl ${BASEURL} | grep -i -A9 'title=\"release\"' | grep -i -o 'href=\".*\"' | cut -d \"\/\" -f5 | sed s\/\\\"\/\/g`\r\n echo \"ID: ${ID}\"\r\nelse \r\n ID=`curl -sl ${BASEURL} | grep -i -A9 \"${MODPACK_VERSION}\" | grep -m1 -oE 'href=\"[^\\\"]+\"' | cut -d \"\/\" -f5 | grep -oE [0-9]+`\r\n echo \"ID: ${ID}\"\r\nfi\r\n\r\nSECONDURL=${BASEURL}\/${ID}\r\necho \"SECONDURL: ${SECONDURL}\"\r\n\r\nGOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\necho \"GOOD_ID: ${GOOD_ID}\"\r\n\r\nDL_URL=${BASEURL}\/${GOOD_ID}\/download\r\necho \"Download_URL: ${DL_URL}\"\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Executing curl -L ${DL_URL} -o $GETPACK.zip\"\r\ncurl -L ${DL_URL} -o $GETPACK.zip\r\n\r\nunzip ${GETPACK}.zip\r\n\r\nrm -rf ${GETPACK}.zip\r\n\r\necho \"Running FTBInstall.sh\"\r\n\r\nsh .\/FTBInstall.sh",
"container": "alpine:3.7",
"script": "#!\/bin\/ash\r\n# Generic FTB Server Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# MODPACK_VERSION = version of the modpack, set in variables\r\n# i.e MODPACK_VERSION=1.5.0\r\n# MODPACK_URL = url base of the pack, set in variables, hardcoded\r\n# i.e https:\/\/www.feed-the-beast.com\/projects\/ftb-revelation\/files\r\n# MODPACK_URL=ftb-revelation\r\n\r\napk add curl --no-cache\r\n\r\n## Correcting for bad variables\r\nGETPACK=$(echo ${MODPACK_URL} | cut -d \"\/\" -f 5 )\r\necho -e \"\\n The pack being downloaded is $GETPACK \\n\"\r\n\r\n## Getting the Base URL\r\nBASEURL=https:\/\/www.feed-the-beast.com\/projects\/${GETPACK}\/files\r\necho \"The base URL is ${BASEURL}\"\r\n\r\n## This is meant to get the pack ID that is unique and not exactly clear \r\n\r\n\r\nif [ -z \"${MODPACK_VERSION}\" ] || [ \"${MODPACK_VERSION}\" == \"latest\" ]; then\r\n ID=`curl -sl ${BASEURL} | grep -i -A9 'title=\"release\"' | grep -i -o 'href=\".*\"' | cut -d \"\/\" -f5 | sed s\/\\\"\/\/g`\r\n echo \"ID: ${ID}\"\r\nelse \r\n ID=`curl -sl ${BASEURL} | grep -i -A9 \"${MODPACK_VERSION}\" | grep -m1 -oE 'href=\"[^\\\"]+\"' | cut -d \"\/\" -f5 | grep -oE [0-9]+`\r\n echo \"ID: ${ID}\"\r\nfi\r\n\r\nSECONDURL=${BASEURL}\/${ID}\r\necho \"SECONDURL: ${SECONDURL}\"\r\n\r\nGOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\necho \"GOOD_ID: ${GOOD_ID}\"\r\n\r\nDL_URL=${BASEURL}\/${GOOD_ID}\/download\r\necho \"Download_URL: ${DL_URL}\"\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Executing curl -L ${DL_URL} -o $GETPACK.zip\"\r\ncurl -L ${DL_URL} -o $GETPACK.zip\r\n\r\nunzip ${GETPACK}.zip\r\n\r\nrm -rf ${GETPACK}.zip\r\n\r\necho \"Running FTBInstall.sh\"\r\nif [ -f .\/FTBInstall.sh ]; then\r\n sh .\/FTBInstall.sh\r\nelse\r\n echo -e \"No FTBInstall script found. Assumeing it's not needed.\"\r\nfi",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},
@ -30,7 +30,7 @@
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|regex:([a-z-0-9]+$)"
"rules": "nullable|regex:([a-z-0-9]+$)"
},
{
"name": "Modpack Version",

View File

@ -3,14 +3,14 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-02-26T23:48:51-05:00",
"exported_at": "2019-03-15T16:25:38+00:00",
"name": "FTB Revelation",
"author": "aevum@decess.us",
"description": "Revelation is a general all-purpose pack that is designed for solo play as well as small and medium population servers. This pack contains a mix of magic, tech and exploration mods, and is the largest pack ever built and released by the Feed The Beast Team.",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar FTBserver-*.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}",
"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"
@ -18,7 +18,7 @@
"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 --no-cache\r\n\r\nBASEURL=https:\/\/www.feed-the-beast.com\/projects\/ftb-revelation\/files\r\nPATTERN=\"(projects\\\/ftb-revelation\\\/files\\\/\\d{7,})\"\r\nID=`curl -sl ${BASEURL}| grep -A2 ${MODPACK_VERSION} | grep -oE \"${PATTERN}\"`\r\nSECONDURL=https:\/\/www.feed-the-beast.com\/${ID}\r\nGOOD_ID=`curl -sl ${SECONDURL} | grep -B2 Server_${MODPACK_VERSION}.zip | grep -oE \"${PATTERN}\"`\r\n\r\nDL_URL=https:\/\/www.feed-the-beast.com\/${GOOD_ID}\/download\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -L ${DL_URL} -o ftbrevelations-${MODPACK_VERSION}.zip\r\n\r\nunzip ftbrevelations-${MODPACK_VERSION}.zip\r\n\r\nrm -rf ftbrevelations-${MODPACK_VERSION}.zip\r\n\r\nsh .\/FTBInstall.sh",
"container": "alpine:3.7",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},

View File

@ -0,0 +1,11 @@
# Paper
Paper is the next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance.
## 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 |

View File

@ -0,0 +1,63 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"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\/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 }\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",
"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"
}
]
}

View File

@ -0,0 +1,3 @@
#Minecraft server properties
server-port=25565
server-ip=

View File

@ -0,0 +1,19 @@
# Spigot
A high performance Minecraft server implementation
## 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 |
## Server Specific
Spigot was hit with a DMCA and now requires that it be built by the user.
#### This egg will build spigot for you.
You can also supply a download link to a server jar if you want.

View File

@ -3,11 +3,11 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-02-25T12:20:22-05:00",
"name": "Spigot-Enhanced",
"exported_at": "2019-03-29T13:00:51-04:00",
"name": "Spigot",
"author": "support@pterodactyl.io",
"description": "Spigot is the most widely-used modded Minecraft server software in the world. It powers many of the top Minecraft server networks around to ensure they can cope with their huge player base and ensure the satisfaction of their players. Spigot works by reducing and eliminating many causes of lag, as well as adding in handy features and settings that help make your job of server administration easier.",
"image": "quay.io\/pterodactyl\/core:java-glibc",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-8-jre",
"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}",
@ -17,8 +17,8 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# Spigot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n apk update\r\n apk add curl\r\n\r\n cd \/mnt\/server\r\n\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n curl -sSL -o ${SERVER_JARFILE} ${MODIFIED_DOWNLOAD}\r\nelse\r\n apk add --no-cache curl git openjdk8 openssl\r\n \r\n cd \/srv\/\r\n \r\n wget https:\/\/hub.spigotmc.org\/jenkins\/job\/BuildTools\/lastSuccessfulBuild\/artifact\/target\/BuildTools.jar\r\n \r\n mv BuildTools.jar \/srv\/\r\n\r\n java -jar BuildTools.jar --rev ${SPIGOT_VERSION}\r\n\r\n mv spigot-*.jar \/mnt\/server\/${SERVER_JARFILE}\r\nfi",
"container": "alpine:3.7",
"script": "#!\/bin\/ash\r\n# Spigot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add --no-cache --update curl git openjdk8 openssl bash nss\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n cd \/mnt\/server\r\n\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n curl -sSL -o ${SERVER_JARFILE} ${MODIFIED_DOWNLOAD}\r\nelse\r\n cd \/srv\/\r\n \r\n wget https:\/\/hub.spigotmc.org\/jenkins\/job\/BuildTools\/lastSuccessfulBuild\/artifact\/target\/BuildTools.jar\r\n \r\n mv BuildTools.jar \/srv\/\r\n\r\n java -jar BuildTools.jar --rev ${DL_VERSION}\r\n\r\n mv spigot-*.jar \/mnt\/server\/${SERVER_JARFILE}\r\nfi",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},
@ -32,15 +32,6 @@
"user_editable": 1,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
},
{
"name": "Spigot Version",
"description": "The version of Spigot to download (using the --rev tag). Use \"latest\" for latest.",
"env_variable": "SPIGOT_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|between:3,7"
},
{
"name": "Download Path",
"description": "A URL to use to download Spigot rather than building it on the server. This is not user viewable. Use <code>{{DL_VERSION}}<\/code> in the URL to automatically insert the assigned version into the URL. If you do not enter a URL Spigot will build directly in the container (this will fail on low memory containers).",
@ -49,6 +40,15 @@
"user_viewable": 0,
"user_editable": 0,
"rules": "nullable|string"
},
{
"name": "Spigot Version",
"description": "The version of Spigot to download (using the --rev tag). Use \"latest\" for latest.",
"env_variable": "DL_VERSION",
"default_value": "latest",
"user_viewable": 1,
"user_editable": 1,
"rules": "required|string|between:3,7"
}
]
}

View File

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

View File

@ -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)$\/"
}
]
}

View File

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

View File

@ -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)$\/"
}
]
}

View File

@ -0,0 +1,22 @@
## 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/)
* [Blightfall](/minecraft_java/technic/blightfall/)
* [Hexxit](/minecraft_java/technic/hexxit/)
* [Tekkit Legends](/minecraft_java/technic/tekkit-legends/)
* [Attack of the B-Team](/minecraft_java/technic/attack-of-the-bteam/)

View File

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

View File

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

View File

@ -3,14 +3,14 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-02-26T20:41:27-05:00",
"exported_at": "2019-03-15T16:25:38+00:00",
"name": "Blightfall",
"author": "aevum@decess.us",
"description": "Blightfall is a combination modpack and adventure map about surviving on an alien planet. It uses magic mods and tech mods to create a novel gameplay experience. Can you survive on a world completely covered by Thaumcraft taint?\r\n\r\nhttps:\/\/www.technicpack.net\/modpack\/blightfall.592618",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar Blightfall.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}",
"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"
@ -18,7 +18,7 @@
"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\/blightfall\/Blightfall_Server_v$MODPACK_VERSION.zip -o Blightfall_$MODPACK_VERSION.zip\r\n\r\nunzip Blightfall_$MODPACK_VERSION.zip\r\n\r\nrm -rf Blightfall_$MODPACK_VERSION.zip",
"container": "alpine:3.7",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},

View File

@ -3,14 +3,14 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-02-26T20:41:41-05:00",
"exported_at": "2019-03-15T16:25:38+00:00",
"name": "Hexxit",
"author": "aevum@decess.us",
"description": "Gear up and set forth on a campaign worthy of legend, for Hexxit has been unearthed! Dark dungeons, towering spires, weathered ruins and musty tomes lay before you. Lay claim to riches or create your own artifacts, tame beasts and carve out your own story in endless wonder. Alone or with friends, adventure awaits in Hexxit.\r\n\r\nHexxit is a new collection of mods for Minecraft that put adventure above all else, in the style of old Dungeons and Dragons campaigns. Exploration is interesting, the dangers are greater and the sense of satisfaction of clearing out a dungeon is intense. The modlist is full of quality content from some very talented individuals. Be sure to head over to the donate page and show your appreciation!\r\n\r\nhttps:\/\/www.technicpack.net\/modpack\/hexxit.552552",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar Hexxit.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}",
"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"
@ -18,7 +18,7 @@
"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\/hexxit\/Hexxit_Server_v$MODPACK_VERSION.zip -o Hexxit_$MODPACK_VERSION.zip\r\n\r\nunzip Hexxit_$MODPACK_VERSION.zip\r\n\r\nrm -rf Hexxit_$MODPACK_VERSION.zip",
"container": "alpine:3.7",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},

View File

@ -3,14 +3,14 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-02-26T20:41:35-05:00",
"exported_at": "2019-03-15T16:25:38+00:00",
"name": "Tekkit Legends",
"author": "aevum@decess.us",
"description": "The ancient power of Tekkits past return in this legendary pack! Wield the philosopher's stone, ride the rails, breed the bees, and much, much more! This pack will remind you of what you've always loved about Tekkit, while bringing you new mods to discover and enjoy!\r\n\r\nhttps:\/\/www.technicpack.net\/modpack\/tekkit-legends.735902",
"image": "quay.io\/pterodactyl\/core:java",
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar TekkitLegends.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}",
"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"
@ -18,7 +18,7 @@
"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\nhttp:\/\/servers.technicpack.net\/Technic\/servers\/tekkit-legends\/Tekkit_Legends_Server_v1.1.1.zip\r\ncurl -sS http:\/\/servers.technicpack.net\/Technic\/servers\/tekkit-legends\/Tekkit_Legends_Server_v$MODPACK_VERSION.zip -o TekkitLegends_$MODPACK_VERSION.zip\r\n\r\nunzip TekkitLegends_$MODPACK_VERSION.zip\r\n\r\nrm -rf TekkitLegends_$MODPACK_VERSION.zip",
"container": "alpine:3.7",
"container": "alpine:3.9",
"entrypoint": "ash"
}
},

View File

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

View File

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

View File

@ -1,26 +0,0 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-07-03T15:36:00-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\/pterodactyl\/core:glibc",
"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}",
"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\": \"server.log\"\r\n}",
"stop": "stop"
},
"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 latest pocketmine MP build\"\r\ncurl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/Stable\/artifact\/PocketMine-MP.phar\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-Aggregate\/6\/artifact\/PHP-7.2-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%20PE\/PocketmineMP\/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.7",
"entrypoint": "ash"
}
},
"variables": []
}

View File

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

View File

@ -0,0 +1,26 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2019-07-15T23:01:54-04:00",
"name": "TyphoonLimbo",
"author": "parker@parkervcp.com",
"description": "Lightweight minecraft limbo server",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine",
"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\/ash\r\n# TyphoonLimbo Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\napk add --no-cache --update git curl\r\n\r\ncd \/tmp\/\r\n\r\necho \"pulling the TyphoonLimbo pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/TyphoonMC\/TyphoonLimbo.git\r\ncd TyphoonLimbo\r\n\r\ngo get github.com\/TyphoonMC\/TyphoonCore\r\n\r\necho -e \"building TyphoonLimbo\"\r\ngo build\r\n\r\nmv TyphoonLimbo \/mnt\/server\/\r\n\r\nif [ -f \/mnt\/server\/config.json ]; then\r\n\techo -e \"config exists nothing to do\"\r\nelse\r\n\techo -e \"copying default config over\"\r\n\tcp config.json \/mnt\/server\/\r\nfi\r\n\r\necho -e \"install complete\"",
"container": "golang:1.12-alpine",
"entrypoint": "ash"
}
},
"variables": []
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,3 @@
listeners:
- query_port: 25573
host: 0.0.0.0:25573

View File

@ -3,30 +3,30 @@
"meta": {
"version": "PTDL_v1"
},
"exported_at": "2018-09-26T12:40:31-04:00",
"exported_at": "2019-12-23T13:23:16-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].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}",
"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# Waterfall 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\nif [ -z \"${WATERFALL_VERSION}\" ] || [ \"${WATERFALL_VERSION}\" == \"latest\" ]; then\r\n WATERFALL_VERSION=\"lastStableBuild\"\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} https:\/\/papermc.io\/ci\/job\/Waterfall\/${WATERFALL_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterfall.jar",
"container": "alpine:3.4",
"script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n else\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | contains ([$VERSION])')\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n fi\r\n \r\n if [ ! ${BUILD_NUMBER} == \"latest\" ] ; then\r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_WATERFALL_VERSION}\r\n fi\r\n fi\r\n \r\n echo \"Version being downloaded: ${BUILD_NUMBER}\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"container": "alpine:3.10",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Waterfall Version",
"description": "The version of Waterfall to download and use.",
"env_variable": "WATERFALL_VERSION",
"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,
@ -40,6 +40,24 @@
"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"
}
]
}

6
rdr/README.md Normal file
View File

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

16
rdr/redm/README.md Normal file
View File

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

81
rdr/redm/egg-red-m.json Normal file
View File

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

View File

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

Some files were not shown because too many files have changed in this diff Show More