Merge branch 'master' into add/beamng_kissmp

This commit is contained in:
Michael (Parker) Parker 2021-04-27 21:53:32 -04:00 committed by GitHub
commit dee7bb8a4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
75 changed files with 2115 additions and 320 deletions

View File

@ -1,4 +1,4 @@
# Parkers Pterodactyl eggs repo # Parkers Pterodactyl eggs repo
I am working on adding a large collection of public eggs for the Pterodactyl community. I am working on adding a large collection of public eggs for the Pterodactyl community.
@ -73,6 +73,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [CrewLink Server](/among_us/crewlink_server) * [CrewLink Server](/among_us/crewlink_server)
[BeamNG.drive](/beamng) [BeamNG.drive](/beamng)
* [BeamMP Server](/beammp/beammp)
* [KissMP](/beamng/kissmp) * [KissMP](/beamng/kissmp)
[Cryofall](/cryofall/cryofall) [Cryofall](/cryofall/cryofall)
@ -93,12 +94,16 @@ If you are reading this it looks like you are looking to add an egg to your serv
* GTA SA * GTA SA
* [Multi Theft Auto](/gta/mtasa) * [Multi Theft Auto](/gta/mtasa)
* [SA-MP](/gta/samp) * [SA-MP](/gta/samp)
* GTAC [/gta/gtac]
[Mindustry](/mindustry) [Mindustry](/mindustry)
* [Mindustry](/mindustry/mindustry)
[League Sandbox](/leaguesandbox) [League Sandbox](/leaguesandbox)
* [League Sandbox](/leaguesandbox/leaguesandbox)
[Minetest](/minetest) (including MTG) [Minetest](/minetest) (including MTG)
* [Minetest](/minetest/minetest)
[Minecraft](/minecraft) [Minecraft](/minecraft)
* [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) * [Bedrock](/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console)
@ -126,6 +131,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Proxies](/minecraft/proxy) Minecraft Server Proxies * [Proxies](/minecraft/proxy) Minecraft Server Proxies
* [Java](/minecraft/proxy/java) * [Java](/minecraft/proxy/java)
* [FlameCord](/minecraft/proxy/java/flamecord)
* [Travertine](/minecraft/proxy/java/travertine) * [Travertine](/minecraft/proxy/java/travertine)
* [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) * [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo)
* [Velocity](/minecraft/proxy/java/velocity) * [Velocity](/minecraft/proxy/java/velocity)
@ -133,8 +139,10 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Cross Platform](/minecraft/proxy/cross_platform) * [Cross Platform](/minecraft/proxy/cross_platform)
* [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [GeyserMC](/minecraft/proxy/cross_platform/geyser)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog) * [Waterdog](/minecraft/proxy/cross_platform/waterdog)
* DragonProxy abandoned in favour of GeyserMC.
[OpenArena](/openarena)
* [openarena](/openarena/openarena)
[OpenRA](/openra) [OpenRA](/openra)
* [OpenRA Dune2000](/openra/openra_dune2000) * [OpenRA Dune2000](/openra/openra_dune2000)
* [OpenRA Red Alert](/openra/openra_red_alert) * [OpenRA Red Alert](/openra/openra_red_alert)
@ -150,8 +158,8 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Arma 3](/steamcmd_servers/arma/arma3) * [Arma 3](/steamcmd_servers/arma/arma3)
* [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64) * [Arma 3 64 Bit](/steamcmd_servers/arma/arma3_x64)
* [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client) * [Arma 3 Headless Client](/steamcmd_servers/arma/arma3_headless_client)
* [Avorion](/steamcmd_servers/avorion)
* [Assetto Corsa](/steamcmd_servers/assetto_corsa) * [Assetto Corsa](/steamcmd_servers/assetto_corsa)
* [Avorion](/steamcmd_servers/avorion)
* [Barotrauma](/steamcmd_servers/barotrauma) * [Barotrauma](/steamcmd_servers/barotrauma)
* [Citadel: Forged with Fire](/steamcmd_servers/citadel) * [Citadel: Forged with Fire](/steamcmd_servers/citadel)
* [Conan Exiles](/steamcmd_servers/conan_exiles) * [Conan Exiles](/steamcmd_servers/conan_exiles)
@ -162,9 +170,11 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Hurtworld](/steamcmd_servers/hurtworld) * [Hurtworld](/steamcmd_servers/hurtworld)
* [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm) * [Insurgency: Sandstorm](/steamcmd_servers/insurgency_sandstorm)
* [Killing Floor 2](/steamcmd_servers/killing_floor_2) * [Killing Floor 2](/steamcmd_servers/killing_floor_2)
* [Modiverse](/steamcmd_servers/modiverse)
* [Mordhau](/steamcmd_servers/mordhau) * [Mordhau](/steamcmd_servers/mordhau)
* [Onset](/steamcmd_servers/onset) * [Onset](/steamcmd_servers/onset)
* [PixARK](/steamcmd_servers/pixark) * [PixARK](/steamcmd_servers/pixark)
* [Post Scriptum](/steamcmd_servers/post_scriptum)
* [Project Zomboid](/steamcmd_servers/project_zomboid) * [Project Zomboid](/steamcmd_servers/project_zomboid)
* [Quake Live](/steamcmd_servers/quake_live) * [Quake Live](/steamcmd_servers/quake_live)
* [Rising World](/steamcmd_servers/rising_world) * [Rising World](/steamcmd_servers/rising_world)
@ -175,15 +185,19 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [dedicated](/steamcmd_servers/scpsl/dedicated) * [dedicated](/steamcmd_servers/scpsl/dedicated)
* [multiadmin](/steamcmd_servers/scpsl/multiadmin) * [multiadmin](/steamcmd_servers/scpsl/multiadmin)
* [Soldat](/steamcmd_servers/soldat) * [Soldat](/steamcmd_servers/soldat)
* [Space Engineers](/steamcmd_servers/space_engineers)
* [Squad](/steamcmd_servers/squad) * [Squad](/steamcmd_servers/squad)
* [Starbound](/steamcmd_servers/starbound) * [Starbound](/steamcmd_servers/starbound)
* [Stationeers](/steamcmd_servers/stationeers) * [Stationeers](/steamcmd_servers/stationeers)
* [Stormworks: Build and Rescue](/steamcmd_servers/stormworks) * [Stormworks: Build and Rescue](/steamcmd_servers/stormworks)
* [Subnautica: Nitrox Mod](/steamcmd_servers/subnautica_nitrox_mod)
* [Sven Co-op](/steamcmd_servers/svencoop) * [Sven Co-op](/steamcmd_servers/svencoop)
* [The Forest](/steamcmd_servers/the_forest) * [The Forest](/steamcmd_servers/the_forest)
* [Team Fortress 2 Classic](/steamcmd_servers/team_fortress_2_classic) * [Team Fortress 2 Classic](/steamcmd_servers/team_fortress_2_classic)
* [Unturned](/steamcmd_servers/unturned) * [Unturned](/steamcmd_servers/unturned)
* [Valheim](/steamcmd_servers/valheim) * [Valheim](/steamcmd_servers/valheim)
* [Valheim Vanilla](/steamcmd_servers/valheim/valheim_vanilla)
* [Valheim Plus Mod](/steamcmd_servers/valheim/valheim_plus)
[Teeworlds](/teeworlds) [Teeworlds](/teeworlds)
* [Teeworlds](/teeworlds/teeworlds) * [Teeworlds](/teeworlds/teeworlds)
@ -200,10 +214,16 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Tower Unite](/unreal_engine/tower_unite) * [Tower Unite](/unreal_engine/tower_unite)
* [Tower Unite](/steamcmd_servers/tower_unite) * [Tower Unite](/steamcmd_servers/tower_unite)
[Veloren](/veloren/veloren)
[Vintage Story](/vintage_story/vintage_story) [Vintage Story](/vintage_story/vintage_story)
[Xonotic](/xonotic/xonotic) [Xonotic](/xonotic/xonotic)
## [Storage](/storage/) ## [Storage](/storage/)
### S3 Storage ### S3 Storage
* [minio](/storage/minio) * [minio](/storage/minio)
## [Software](/software/)
### Code Server
* [Code-Server](/software/code-server)

20
beammp/beammp/README.md Normal file
View File

@ -0,0 +1,20 @@
BeamMP & BeamNG
BeamNG.drive is a vehicle simulation video game developed and published by Bremen-based video game developer BeamNG GmbH. The game features soft-body physics, which simulates realistic handling and damage to vehicles.
Recommended server settings
Minimum RAM can be aeound 2-4 gb, these server run lightly so you can even use older cpus if you would like. Disk space should be 10 gb atleast.
Adding Mods
Vehicle mods and map mods are different to install, but both require you to put them in your server's (Resources\Client) folder. Simply slide any mod you want to add in that folder. If you only wanted to add modded vehicles. Your vehicles should now get downloaded and installed automatically for anyone joining your server.
Licenses
BeamMP Servers to require you to get a license which you will see in the egg licensce variable upon creating the server.
Server Ports
Port default Game 30814

59
beammp/beammp/beammp.json Normal file
View File

@ -0,0 +1,59 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-17T15:17:54-04:00",
"name": "BeamMP Servers",
"author": "noah@noahserver.online",
"description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point throug which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/BeamMP-Server",
"config": {
"files": "{\r\n \"Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers = {{server.build.env.MAX_PLAYER}}\",\r\n \"Port\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTH}}\\\"\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "cd \/mnt\/server\r\n\r\nrm -f BeamMP-Server\r\n\r\napt update -y\r\napt install -y curl\r\ncurl -LJO https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases\/download\/${VERSION}\/BeamMP-Server-linux\r\nmv BeamMP-Server-linux BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\necho \"# This is the BeamMP Server Configuration File v0.60\r\nDebug = false # true or false to enable debug console output\r\nPrivate = true # Private?\r\nPort = 30814 # Port to run the server on UDP and TCP\r\nCars = 1 # Max cars for every player\r\nMaxPlayers = 10 # Maximum Amount of Clients\r\nMap = \\\"\/levels\/gridmap\/info.json\\\" # Default Map\r\nName = \\\"BeamMP New Server\\\" # Server Name\r\nDesc = \\\"BeamMP Default Description\\\" # Server Description\r\nuse = \\\"Resources\\\" # Resource file name\r\nAuthKey = \\\"\\\" # Auth Key\" > Server.cfg",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Version",
"description": "Github Server Version, to see all versions visit https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases",
"env_variable": "VERSION",
"default_value": "v2.0.3",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:32"
},
{
"name": "Authentication Key",
"description": "BeamMP Server Key (https:\/\/beamng-mp.com\/k\/keys)",
"env_variable": "AUTH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:50"
},
{
"name": "Max Players",
"description": "The maximum number of allowed players",
"env_variable": "MAX_PLAYER",
"default_value": "6",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:32"
}
]
}

View File

@ -0,0 +1,9 @@
# Deno generic
### From their [site](https://deno.land/)
This egg was designed to allow a user to pull their own deno repo.
There is an option to allow a user to upload their own files to run a server.
The startup configs and commands may need changing to actually function properly.

View File

@ -0,0 +1,86 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-30T00:48:40+00:00",
"name": "Deno Generic",
"author": "parker@parkervcp.com",
"description": "A generic egg to run deno code.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/deno run {{JS_FILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"change this part\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Deno Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt install -y git curl jq file unzip\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\n## get deno\r\nGITHUB_PACKAGE=denoland\/deno\r\nMATCH=linux\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_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\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 ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\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\ncurl -sSL $DOWNLOAD_LINK -o ${DOWNLOAD_LINK##*\/}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## cleaning up downloaded file\r\nrm -f ${DOWNLOAD_LINK##*\/}\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Repo Address",
"description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "GIT_ADDRESS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|bool"
},
{
"name": "Git Branch",
"description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch",
"env_variable": "BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Bot js file",
"description": "The JavaScript file to run",
"env_variable": "JS_FILE",
"default_value": "bot.js",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@ -0,0 +1,41 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-04T11:34:06+01:00",
"name": "Discord Java",
"author": "sneaky@sneakyhub.com",
"description": "Creates a container that runs java.",
"features": null,
"images": [
"quay.io\/pterodactyl\/core:java-11"
],
"file_denylist": [],
"startup": "java -Dterminal.jline=false -Dterminal.ansi=true -jar {{JARFILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Java Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=java\r\n\r\napt update\r\napt install -y curl jq\r\n\r\ncd \/mnt\/server",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "JAR FILE",
"description": "",
"env_variable": "JARFILE",
"default_value": "sneakyhub.jar",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@ -1,18 +1,20 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-08-13T22:04:35-04:00", "exported_at": "2021-03-30T01:47:36+00:00",
"name": "discord.js generic", "name": "discord.js generic",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", "description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", "features": null,
"images": [ "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14", "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14",
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12", "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12",
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-10" "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-10"
], ],
"file_denylist": [],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install --production; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}", "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install --production; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}",
"config": { "config": {
"files": "{}", "files": "{}",
@ -22,55 +24,37 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [[ ! https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git | sed 's:\/*$::')\r\n INSTALL_REPO=\"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.js bot from https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n \r\n if [ \"${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\n else\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}\" == \"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .\r\n \tfi\r\n fi \r\nelse\r\n if [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n \r\n if [ \"${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\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n \tfi\r\n fi \r\nfi\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "node:12-buster-slim", "container": "node:14-buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
{ {
"name": "Install Repo", "name": "Git Repo Address",
"description": "The GitHub repo to clone and install the discord js bot from.", "description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "INSTALL_REPO", "env_variable": "GIT_ADDRESS",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
},
{
"name": "Username",
"description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:128"
},
{
"name": "Password",
"description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.",
"env_variable": "PASSWORD",
"default_value": "",
"user_viewable": 1,
"user_editable": 1,
"rules": "nullable|string|max:128"
}, },
{ {
"name": "Install Branch", "name": "Install Branch",
"description": "The branch of the bot to install.", "description": "The branch of the bot to install.",
"env_variable": "INSTALL_BRANCH", "env_variable": "BRANCH",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:32" "rules": "nullable|string"
}, },
{ {
"name": "User Uploaded Files", "name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true", "description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD", "env_variable": "USER_UPLOAD",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|bool" "rules": "required|bool"
}, },
{ {
@ -78,8 +62,8 @@
"description": "Pull the latest files on startup when using a GitHub repo.", "description": "Pull the latest files on startup when using a GitHub repo.",
"env_variable": "AUTO_UPDATE", "env_variable": "AUTO_UPDATE",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -87,8 +71,8 @@
"description": "The file that starts the bot.", "description": "The file that starts the bot.",
"env_variable": "BOT_JS_FILE", "env_variable": "BOT_JS_FILE",
"default_value": "index.js", "default_value": "index.js",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -96,9 +80,27 @@
"description": "Install additional node packages.\r\n\r\nUse spaces to separate.", "description": "Install additional node packages.\r\n\r\nUse spaces to separate.",
"env_variable": "NODE_PACKAGES", "env_variable": "NODE_PACKAGES",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string" "rules": "nullable|string"
} }
] ]
} }

View File

@ -1,18 +1,20 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-09-28T22:35:14-04:00", "exported_at": "2021-03-31T23:08:12+00:00",
"name": "discord.py generic", "name": "discord.py generic",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8", "features": null,
"images": [ "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8", "quay.io\/parkervcp\/pterodactyl-images:debian_python-3.8",
"quay.io\/parkervcp\/pterodactyl-images:debian_python-2.7" "quay.io\/parkervcp\/pterodactyl-images:debian_python-2.7"
], ],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${PY_PACKAGES} ]]; then pip install -U --target \/home\/container\/ ${PY_PACKAGES}; fi; if [[ -f \/home\/container\/requirements.txt ]]; then pip install -U --target \/home\/container\/ -r requirements.txt; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}", "file_denylist": [],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z {{PY_PACKAGES}} ]]; then pip install -U --target .local\/lib\/python3.8\/site-packages {{PY_PACKAGES}}; fi; if [[ -f \/home\/container\/${REQUIREMENTS_FILE} ]]; then pip install -U --target .local\/lib\/python3.8\/site-packages -r ${REQUIREMENTS_FILE}; fi; \/usr\/local\/bin\/python \/home\/container\/{{BOT_PY_FILE}}",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"change this part\"\r\n}", "startup": "{\r\n \"done\": \"change this part\"\r\n}",
@ -21,37 +23,37 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Python Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [[ ! \"${USERNAME}\" == \"\" ]]; then\r\n if [[ ! https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git | sed 's:\/*$::')\r\n INSTALL_REPO=\"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.py bot from https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\"\r\n \r\n if [ \"${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\n else\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}\" == \"https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} https:\/\/${USERNAME}:${PASSWORD}@github.com\/${INSTALL_REPO}.git .\r\n \tfi\r\n fi \r\nelse\r\n if [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\n fi\r\n \r\n echo -e \"working on installing a discord.py bot from ${INSTALL_REPO}\"\r\n \r\n if [ \"${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\n else\r\n \tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n \t\techo -e \"\/mnt\/server directory is not empty.\"\r\n \t if [ -d .git ]; then\r\n \t\t\techo -e \".git directory exists\" \r\n \t\t\tif [ -f .git\/config ]; then\r\n \t\t\t\techo -e \"loading info from git config\"\r\n \t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n \t\t\telse\r\n \t\t\t\techo -e \"files found with no git config\"\r\n \t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n \t\t\t\texit 10\r\n \t\t\tfi\r\n \t\tfi\r\n \t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n \t\t\techo \"pulling latest from github\"\r\n \t\t\tgit pull \r\n \t\tfi\r\n \telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n \t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n \t\t\techo -e \"assuming master branch\"\r\n \t\t\tINSTALL_BRANCH=master\r\n \t\tfi\r\n \r\n \t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n \t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n \tfi\r\n fi \r\nfi\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target \/mnt\/server\/ ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target \/mnt\/server\/ -r requirements.txt\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "script": "#!\/bin\/bash\r\n# Python Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --target .local\/lib\/python3.8\/site-packages ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --target .local\/lib\/python3.8\/site-packages -r ${REQUIREMENTS_FILE}\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "python:3.8-slim", "container": "python:3.8-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
"variables": [ "variables": [
{ {
"name": "Install Repo", "name": "Git Repo Address",
"description": "The GitHub repo to clone and install the discord py bot from.", "description": "Git repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "INSTALL_REPO", "env_variable": "GIT_ADDRESS",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
}, },
{ {
"name": "Install Branch", "name": "Git Branch",
"description": "The branch of the bot to install", "description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch",
"env_variable": "INSTALL_BRANCH", "env_variable": "BRANCH",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:32" "rules": "nullable|string"
}, },
{ {
"name": "User Uploaded Files", "name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true", "description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD", "env_variable": "USER_UPLOAD",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -59,8 +61,8 @@
"description": "Pull the latest files on startup when using a GitHub repo.", "description": "Pull the latest files on startup when using a GitHub repo.",
"env_variable": "AUTO_UPDATE", "env_variable": "AUTO_UPDATE",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -68,8 +70,8 @@
"description": "The file that starts the bot.", "description": "The file that starts the bot.",
"env_variable": "BOT_PY_FILE", "env_variable": "BOT_PY_FILE",
"default_value": "bot.py", "default_value": "bot.py",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -77,27 +79,36 @@
"description": "Install additional python packages.\r\n\r\nUse spaces to separate", "description": "Install additional python packages.\r\n\r\nUse spaces to separate",
"env_variable": "PY_PACKAGES", "env_variable": "PY_PACKAGES",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
"name": "Username", "name": "Git Username",
"description": "The GitHub username. Leave this field blank if the GitHub repo is NOT a private repo.", "description": "Username to auth with git.",
"env_variable": "USERNAME", "env_variable": "USERNAME",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
}, },
{ {
"name": "Password", "name": "Git Access Token",
"description": "The GitHub password. Leave this field blank if the GitHub repo is NOT a private repo.", "description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "PASSWORD", "env_variable": "ACCESS_TOKEN",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:128" "rules": "nullable|string"
},
{
"name": "Requirements file",
"description": "if there are other requirements files to choose from.",
"env_variable": "REQUIREMENTS_FILE",
"default_value": "requirements.txt",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
} }
] ]
} }

View File

@ -0,0 +1,7 @@
# luvit generic
This egg was designed to allow a user to pull their own lua discord bot from a repo and run it with luvit.
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,95 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-30T02:11:23+00:00",
"name": "luvit generic",
"author": "parker@parkervcp.com",
"description": "A generic luvit egg This will clone a git repo for a bot. It defaults to master if no branch is specified.\r\n\r\nSupports the discordia lua framework.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/luvit {{LUA_FILE}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"change me\"\r\n}",
"logs": "{}",
"stop": "^c"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n## luvit generic install script\r\n\r\napt update\r\napt install -y git curl jq file unzip\r\n\r\n## get git files\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\nfi\r\n\r\n## install luvit for install time\r\ncurl -L https:\/\/github.com\/luvit\/lit\/raw\/master\/get-lit.sh | sh\r\n\r\n## Install luvit packages\r\n.\/lit install ${LIT_PACKAGES}",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Git Repo Address",
"description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "GIT_ADDRESS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": true,
"user_editable": false,
"rules": "required|bool"
},
{
"name": "Git Branch",
"description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch",
"env_variable": "BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
},
{
"name": "Bot lua file",
"description": "The Lua file to run",
"env_variable": "LUA_FILE",
"default_value": "bot.lua",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
"name": "Lit Packages",
"description": "Lit Packages to install\r\n\r\nexample\r\nSinisterRectus\/discordia lduboeuf\/cjson",
"env_variable": "LIT_PACKAGES",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
}
]
}

View File

@ -1,5 +1,5 @@
# PhantomBot # PhantomBot
### Their [Site](https://phantombot.tv) ### Their [Site](https://phantombot.github.io/PhantomBot/)
PhantomBot is an actively developed open source interactive Twitch bot PhantomBot is an actively developed open source interactive Twitch bot
with a vibrant community that provides entertainment and moderation for your channel, with a vibrant community that provides entertainment and moderation for your channel,
allowing you to focus on what matters the most to you - your game and your viewers. allowing you to focus on what matters the most to you - your game and your viewers.

View File

@ -18,3 +18,8 @@ SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rock
[MTA SA](https://mtasa.com/) [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. What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.
## GTAC
[GTAC](https://gtaconnected.com/)
The Grand Theft Auto Connected is a custom scriptable multiplayer modification for multiple Grand Theft Auto games.

10
gta/gtac/README.md Normal file
View File

@ -0,0 +1,10 @@
# Grand Theft Auto Connected
The [GTAC](https://gtaconnected.com/) Grand Theft Auto Connected is a custom scriptable multiplayer modification for multiple Grand Theft Auto games.
### Server Ports
GTAC requires one port for both UDP/TCP
| Port | default |
|---------|----------|
| Game | 22000 |

View File

@ -0,0 +1,68 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-24T18:59:07+03:00",
"name": "Grand Theft Auto Connected",
"author": "admin@softwarenoob.com",
"description": "Grand Theft Auto Connected is a custom scriptable multiplayer modification for multiple Grand Theft Auto games.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/Server",
"config": {
"files": "{\r\n \"server.xml\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"server.servername\": \"{{server.build.env.SERVERNAME}}\",\r\n \"server.port\": \"{{server.build.default.port}}\",\r\n \"server.httpport\": \"{{server.build.default.port}}\",\r\n \"server.game\": \"{{server.build.env.GAMETYPE}}\",\r\n \"server.serverbrowser\": \"{{server.build.env.SERVERBROWSER}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Successfully added server\"\r\n}",
"logs": "{}",
"stop": "quit"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/mnt\/server\r\n\r\n\r\nif [ \"${DL_VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=https:\/\/gtaconnected.com\/downloads\/server\/latest\/linux\r\nelse\r\n DOWNLOAD_LINK=https:\/\/gtaconnected.com\/downloads\/GTAC-Server-Linux-${DL_VERSION}.tar.gz\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail --location ${DOWNLOAD_LINK}; then\r\n echo -e \"Chosen server version is valid.\"\r\n else\r\n echo -e \"Chosen server version is invalid, tried $DOWNLOAD_LINK. Exiting installation\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link, stopping installation\"\r\n exit 3\r\nfi\r\n\r\necho -e \"Downloading ${DL_VERSION} version of the server\"\r\ncurl -sSL ${DOWNLOAD_LINK} -o GTAC.tar.gz\r\necho \"Extracting files\"\r\ntar -xf GTAC.tar.gz\r\n\r\nchmod +x Server\r\nrm GTAC.tar.gz\r\n\r\necho \"Install complete\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Game type",
"description": "Sets the game this server will support. Available options: gta:iii, gta:vc, gta:sa, gta:ug, gta:iv, gta:eflc",
"env_variable": "GAMETYPE",
"default_value": "gta:iv",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:gta:iii,gta:vc,gta:sa,gta:ug,gta:iv,gta:eflc"
},
{
"name": "Server Name",
"description": "The name of the server, which appears in the server browser.",
"env_variable": "SERVERNAME",
"default_value": "Pterodactyl Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60"
},
{
"name": "serverbrowser",
"description": "Whether to show the server in the server browser, set to true or false",
"env_variable": "SERVERBROWSER",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Server Version",
"description": "The version of GATC to install such as 1.2.10, enter latest for the latest version.",
"env_variable": "DL_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@ -1,23 +1,28 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-04-22T09:18:34-04:00", "exported_at": "2021-04-28T01:34:21+00:00",
"name": "Rage.MP", "name": "Rage.MP",
"author": "noreply.waypointhosting@gmail.com", "author": "noreply.waypointhosting@gmail.com",
"description": "https:\/\/rage.mp\/\r\n\r\nModified to work with the latest version of RAGE:MP\r\nWill automatically install linux bridge.\r\n**This server requires 2 ports to be added for the server. the main port and the next (port+1) as ports for the server.", "description": "https:\/\/rage.mp\/\r\n\r\nModified to work with the latest version of RAGE:MP\r\nWill automatically install linux bridge.\r\n**This server requires 2 ports to be added for the server. the main port and the next (port+1) as ports for the server.",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", "features": null,
"startup": ".\/server", "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_dotnet"
],
"file_denylist": [],
"startup": ".\/ragemp-server",
"config": { "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}", "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}",
"startup": "{\r\n \"done\": \"Started HTTP server\"\r\n}", "startup": "{\r\n \"done\": \"The server is ready to accept connections\"\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "^C" "stop": "^X"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "apt update\r\napt -y install curl tar\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o ragemp-srv-037.tar.gz https:\/\/cdn.rage.mp\/lin\/ragemp-srv-037.tar.gz\r\ncurl -sSL -o bridge-linux-037.tar.gz https:\/\/cdn.rage.mp\/lin\/bridge-linux-037.tar.gz\r\n\r\ntar -xzvf ragemp-srv-037.tar.gz --strip 1 -C \/mnt\/server\r\ntar -xzvf bridge-linux-037.tar.gz --strip 1 -C \/mnt\/server\r\n\r\nrm ragemp-srv-037.tar.gz\r\nrm bridge-linux-037.tar.gz\r\n\r\nchmod +x .\/server\r\n\r\nif [ -e conf.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default rage.mp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0", "script": "apt update\r\napt -y install curl tar git wget\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o linux_x64.tar.gz https:\/\/cdn.rage.mp\/updater\/10_mNwuchuQ4ktWbR8d2N5jUzRt\/server-files\/linux_x64.tar.gz\r\n\r\ntar -xzvf linux_x64.tar.gz --strip 1 -C \/mnt\/server\r\n\r\nrm linux_x64.tar.gz\r\n\r\nchmod +x .\/ragemp-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", "container": "debian:stable-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -28,8 +33,8 @@
"description": "Server name that will be displayed to the master server. (64 Char max)", "description": "Server name that will be displayed to the master server. (64 Char max)",
"env_variable": "SERVER_NAME", "env_variable": "SERVER_NAME",
"default_value": "RAGE:MP Unofficial server", "default_value": "RAGE:MP Unofficial server",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:64" "rules": "required|string|max:64"
}, },
{ {
@ -37,18 +42,18 @@
"description": "Maximum number of players your server will hold. (Max 100)", "description": "Maximum number of players your server will hold. (Max 100)",
"env_variable": "MAX_PLAYERS", "env_variable": "MAX_PLAYERS",
"default_value": "50", "default_value": "50",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|integer|between:1,100" "rules": "required|integer|between:1,10000"
}, },
{ {
"name": "Announce", "name": "Announce",
"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.", "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", "env_variable": "ANNOUNCE",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
} }
] ]
} }

View File

@ -28,6 +28,7 @@ Its set in infinitely-generated worlds of wide open terrain - icy mountains,
* [Proxies](/minecraft/proxy) Minecraft Server Proxies * [Proxies](/minecraft/proxy) Minecraft Server Proxies
* [Java](/minecraft/proxy/java) * [Java](/minecraft/proxy/java)
* [FlameCord](/minecraft/proxy/java/flamecord)
* [Travertine](/minecraft/proxy/java/travertine) * [Travertine](/minecraft/proxy/java/travertine)
* [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo) * [TyphoonLimbo](/minecraft/proxy/java/typhoonlimbo)
* [Velocity](/minecraft/proxy/java/velocity) * [Velocity](/minecraft/proxy/java/velocity)

View File

@ -1,14 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-01T21:01:12-05:00", "exported_at": "2021-04-07T08:57:04+03:00",
"name": "Vanilla Bedrock", "name": "Vanilla Bedrock",
"author": "parker@parkervcp.com", "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\".", "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\".",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", "images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/bedrock_server", "startup": ".\/bedrock_server",
"config": { "config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"server-name\": \"{{server.build.env.SERVERNAME}}\",\r\n \"gamemode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"difficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"allow-cheats\": \"{{server.build.env.CHEATS}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"server-name\": \"{{server.build.env.SERVERNAME}}\",\r\n \"gamemode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"difficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"allow-cheats\": \"{{server.build.env.CHEATS}}\"\r\n }\r\n }\r\n}",
@ -18,7 +22,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\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\nfi\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitlist.json.bak\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 $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"restoring config files\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitlist.json\r\n\r\necho -e \"Done\"", "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\/ | grep azureedge | grep linux | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\")\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\nfi\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitelist.json.bak\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 $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5)\r\n\r\necho -e \"restoring config files\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitelist.json\r\nchmod +x bedrock_server\r\n\r\necho -e \"Done\"",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -79,4 +83,4 @@
"rules": "required|string|in:true,false" "rules": "required|string|in:true,false"
} }
] ]
} }

View File

@ -1,24 +1,28 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-12T16:14:47+00:00", "exported_at": "2021-04-07T10:33:24+03:00",
"name": "GoMint", "name": "GoMint",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "A performant and stable Minecraft server software for the Bedrock Edition that comes with a modern API and support for Java 11 LTS.", "description": "A performant and stable Minecraft server software for the Bedrock Edition that comes with a modern API and support for Java 11 LTS.",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11", "images": [
"quay.io\/pterodactyl\/core:java-11"
],
"file_denylist": [],
"startup": "java --add-opens java.base\/java.nio=io.netty.common --add-exports java.base\/jdk.internal.misc=io.netty.common -p modules -m gomint.server\/io.gomint.server.Bootstrap", "startup": "java --add-opens java.base\/java.nio=io.netty.common --add-exports java.base\/jdk.internal.misc=io.netty.common -p modules -m gomint.server\/io.gomint.server.Bootstrap",
"config": { "config": {
"files": "{\r\n \"server.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"listener.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"listener.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\":\"Done in \"\r\n}", "startup": "{\r\n \"done\": \"Done in \"\r\n}",
"logs": "{}", "logs": "{}",
"stop": "stop" "stop": "stop"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=gomint\/gomint\r\nVERSION=latest\r\nMATCH=modules\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\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 [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -m 1 -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -m 1 -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\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_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -m 1 -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\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 VALIDATED_URL=${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\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/} -d modules\/\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nif [ ! -f server.yml ]; then\r\n curl -sSL -o server.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/gomint\/server.yml\r\nfi", "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=gomint\/gomint\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\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# retrieve latest tag to be used as version match, because gomint doesn't use normal releases\r\nLATEST_VERSION=$(curl -sL https:\/\/api.github.com\/repos\/gomint\/gomint\/tags | jq -r '.[-1].name')\r\n\r\nDOWNLOAD_URL=https:\/\/github.com\/gomint\/gomint\/releases\/download\/${LATEST_VERSION}\/${LATEST_VERSION}.zip\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 \"download link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"download link is invalid, something went wrong. Closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/} -d modules\/\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n# Move files into correct folders and remove unnecessary stuff\r\nrm ${VALIDATED_URL##*\/}\r\nmv modules\/modules\/* modules\r\nrm -rf modules\/modules\r\nrm modules\/start.*\r\n\r\n# Fetch server config\r\nif [ ! -f server.yml ]; then\r\n curl -sSL -o server.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/gomint\/server.yml\r\nfi",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }

View File

@ -17,7 +17,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\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", "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.opencollab.dev\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.opencollab.dev\/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 server.properties ]; then\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/bedrock\/nukkit\/server.properties\r\nfi",
"container": "alpine:3.10", "container": "alpine:3.10",
"entrypoint": "ash" "entrypoint": "ash"
} }

View File

@ -1,14 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-24T13:08:36+01:00", "exported_at": "2021-03-12T14:38:58+01:00",
"name": "PocketmineMP", "name": "PocketmineMP",
"author": "info@swisscrafting.ch", "author": "info@swisscrafting.ch",
"description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", "images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/bin\/php7\/bin\/php .\/PocketMine-MP.phar --no-wizard --disable-ansi", "startup": ".\/bin\/php7\/bin\/php .\/PocketMine-MP.phar --no-wizard --disable-ansi",
"config": { "config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
@ -18,7 +22,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n downloading pocketmine MP build ${PMMP_VERSION}\"\r\nif [ -z \"$PMMP_VERSION\" ] || [ \"$PMMP_VERSION\" == \"latest\" ]; then\r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/Stable\/artifact\/PocketMine-MP.phar\r\nelse \r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/${PMMP_VERSION}\/artifact\/PocketMine-MP.phar\r\nfi\r\n\r\necho -e \"\\n downloading latest php7.4 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.4-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.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs", "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl jq\r\n\r\ncd \/mnt\/server\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\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 ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## this is a simple script to validate a download url actaully exists\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\ncurl -sSL ${DOWNLOAD_LINK} > PocketMine-MP.phar\r\n\r\necho -e \"\\n downloading latest php7.4 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.4-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 php7 packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -26,12 +30,30 @@
"variables": [ "variables": [
{ {
"name": "PocketmineMP Version", "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", "description": "Version from Github",
"env_variable": "PMMP_VERSION", "env_variable": "VERSION",
"default_value": "latest", "default_value": "latest",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20"
},
{
"name": "Github Package",
"description": "",
"env_variable": "GITHUB_PACKAGE",
"default_value": "pmmp\/PocketMine-MP",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20"
},
{
"name": "Match",
"description": "",
"env_variable": "MATCH",
"default_value": "PocketMine-MP.phar",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20"
} }
] ]
} }

View File

@ -3,7 +3,7 @@
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1"
}, },
"exported_at": "2021-02-10T17:15:03-05:00", "exported_at": "2021-02-17T10:45:06-05:00",
"name": "Fabric", "name": "Fabric",
"author": "accounts@bofanodes.io", "author": "accounts@bofanodes.io",
"description": "Fabric is a modular modding toolchain targeting Minecraft 1.14 and above, including snapshots.", "description": "Fabric is a modular modding toolchain targeting Minecraft 1.14 and above, including snapshots.",
@ -18,7 +18,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Fabric MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq unzip dos2unix wget\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Enable snapshots\r\nif [ \"$MC_VERSION\" == \"snapshot\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== false )|.version' | head -n1)\r\nfi\r\nif [ -z \"$FABRIC_VERSION\" ] || [ \"$FABRIC_VERSION\" == \"latest\" ]; then\r\n FABRIC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/installer | jq -r '.[0].version')\r\nfi\r\nwget https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/$FABRIC_VERSION\/fabric-installer-$FABRIC_VERSION.jar\r\njava -jar fabric-installer-$FABRIC_VERSION.jar server -mcversion ${MC_VERSION:-latest} -downloadMinecraft\r\necho -e \"Install Complete\"", "script": "#!\/bin\/bash\r\n# Fabric MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq unzip dos2unix wget\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Enable snapshots\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== true )|.version' | head -n1)\r\nelif [ \"$MC_VERSION\" == \"snapshot\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== false )|.version' | head -n1)\r\nfi\r\n\r\nif [ -z \"$FABRIC_VERSION\" ] || [ \"$FABRIC_VERSION\" == \"latest\" ]; then\r\n FABRIC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/installer | jq -r '.[0].version')\r\nfi\r\nwget -O fabric-installer.jar https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/$FABRIC_VERSION\/fabric-installer-$FABRIC_VERSION.jar\r\njava -jar fabric-installer.jar server -mcversion $MC_VERSION -downloadMinecraft\r\necho -e \"Install Complete\"",
"container": "openjdk:11-jdk-slim", "container": "openjdk:11-jdk-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }

View File

@ -1,18 +1,21 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-06T19:03:10-08:00", "exported_at": "2021-04-21T23:01:35+03:00",
"name": "Forge Enhanced", "name": "Forge Enhanced",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.",
"features": ["eula"], "features": [
"image": "quay.io\/pterodactyl\/core:java", "eula"
],
"images": [ "images": [
"quay.io\/pterodactyl\/core:java", "quay.io\/pterodactyl\/core:java",
"quay.io\/pterodactyl\/core:java-11" "quay.io\/pterodactyl\/core:java-11"
], ],
"file_denylist": [],
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": { "config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
@ -22,7 +25,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${FORGE_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}\r\n FORGE_JAR=forge-${FORGE_VERSION}.jar\r\nelse\r\n JSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\n if [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n \tBUILD_TYPE=recommended\r\n fi\r\n\r\n if [ \"${BUILD_TYPE}\" != \"recommended\" ] && [ \"${BUILD_TYPE}\" != \"latest\" ]; then\r\n BUILD_TYPE=recommended\r\n fi\r\n\r\n echo -e \"minecraft version: ${MC_VERSION}\"\r\n echo -e \"build type: ${BUILD_TYPE}\"\r\n\r\n ## some variables for getting versions and things\r\n FILE_SITE=$(echo -e ${JSON_DATA} | jq -r '.homepage' | sed \"s\/http:\/https:\/g\")\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n ## locating the forge version\r\n if [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"recommended\"))')\r\n fi\r\n\r\n ## Error if the mc version set wasn't valid.\r\n if [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\r\n \techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n \texit 1\r\n fi\r\n\r\n FORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ]; then\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\r\n fi\r\n else\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\r\n fi\r\nfi\r\n\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link closing out\"\r\n exit 3\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n\r\nmv $FORGE_JAR $SERVER_JARFILE\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${FORGE_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}\r\n FORGE_JAR=forge-${FORGE_VERSION}*.jar\r\nelse\r\n JSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\n if [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n \tBUILD_TYPE=recommended\r\n fi\r\n\r\n if [ \"${BUILD_TYPE}\" != \"recommended\" ] && [ \"${BUILD_TYPE}\" != \"latest\" ]; then\r\n BUILD_TYPE=recommended\r\n fi\r\n\r\n echo -e \"minecraft version: ${MC_VERSION}\"\r\n echo -e \"build type: ${BUILD_TYPE}\"\r\n\r\n ## some variables for getting versions and things\r\n\tFILE_SITE=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n ## locating the forge version\r\n if [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"recommended\"))')\r\n fi\r\n\r\n ## Error if the mc version set wasn't valid.\r\n if [ \"${VERSION_KEY}\" == \"\" ] || [ \"${VERSION_KEY}\" == \"null\" ]; then\r\n \techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n \texit 1\r\n fi\r\n\r\n FORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}.jar\r\n if [ \"${MC_VERSION}\" == \"1.7.10\" ]; then\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}-universal.jar\r\n fi\r\n else\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\n FORGE_JAR=forge-${MC_VERSION}-${FORGE_VERSION}.jar\r\n fi\r\nfi\r\n\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"no download link closing out\"\r\n exit 3\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n\r\nmv $FORGE_JAR $SERVER_JARFILE\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar",
"container": "openjdk:8-jdk-slim", "container": "openjdk:8-jdk-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -65,4 +68,4 @@
"rules": "nullable|string|max:20" "rules": "nullable|string|max:20"
} }
] ]
} }

View File

@ -21,7 +21,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq dos2unix\r\n}\r\n\r\n\r\nfunction get_download {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ \"${FTB_SEARCH_TERM}\" != \"\" ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ \"${FTB_VERSION_STRING}\" != \"\" ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n \r\n echo -e \"ID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID}\"\r\n \r\n cd \/mnt\/server\r\n \r\n curl https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID}\/${FTB_MODPACK_VERSION_ID}\/server\/linux --output serversetup\r\n chmod +x .\/serversetup\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} <<< 'y'\r\n}\r\n\r\nfunction cleanup {\r\n rm -rf serversetup\r\n mv forge-*.jar forge-server.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\ncleanup", "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq dos2unix\r\n}\r\n\r\n\r\nfunction get_download {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ \"${FTB_SEARCH_TERM}\" != \"\" ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ \"${FTB_VERSION_STRING}\" != \"\" ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n \r\n echo -e \"ID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID}\"\r\n \r\n cd \/mnt\/server\r\n \r\n curl https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID}\/${FTB_MODPACK_VERSION_ID}\/server\/linux --output serversetup\r\n chmod +x .\/serversetup\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto\r\n}\r\n\r\nfunction cleanup {\r\n rm -rf serversetup\r\n mv forge-*.jar forge-server.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\ncleanup",
"container": "openjdk:8-jdk-slim", "container": "openjdk:8-jdk-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }

View File

@ -41,7 +41,7 @@
"name": "Minecraft Version", "name": "Minecraft Version",
"description": "The version of Minecraft to download.", "description": "The version of Minecraft to download.",
"env_variable": "MC_VERSION", "env_variable": "MC_VERSION",
"default_value": "1.16.4", "default_value": "1.16.5",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20"
@ -65,4 +65,4 @@
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }

View File

@ -1,13 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-09-08T08:25:54+02:00", "exported_at": "2021-04-12T13:03:41+00:00",
"name": "Tekkit", "name": "Tekkit",
"author": "contact@zennodes.dk", "author": "contact@zennodes.dk",
"description": "Tekkit is set to reignite the same sort of wonder and awe that we all received from booting up Minecraft for the first time. With the skies open, the moon ready to be colonized (by force if need be) and dimensional mysteries to be plied, with tesseracts to be networked, \u201cmeat\u201d to be processed, items to be digitized, and power suits to be manufactured, there is virtually limitless engineering projects to be assembled.", "description": "Tekkit is set to reignite the same sort of wonder and awe that we all received from booting up Minecraft for the first time. With the skies open, the moon ready to be colonized (by force if need be) and dimensional mysteries to be plied, with tesseracts to be networked, \u201cmeat\u201d to be processed, items to be digitized, and power suits to be manufactured, there is virtually limitless engineering projects to be assembled.",
"image": "quay.io\/pterodactyl\/core:java", "features": null,
"images": [
"quay.io\/pterodactyl\/core:java"
],
"file_denylist": [],
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar Tekkit.jar", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar Tekkit.jar",
"config": { "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}", "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}",
@ -17,7 +22,7 @@
}, },
"scripts": { "scripts": {
"installation": { "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\/tekkitmain\/Tekkit_Server_$MODPACK_VERSION.zip -o Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nunzip Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm -rf Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm launch.bat\r\n\r\nrm launch.sh\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi", "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 -sSL http:\/\/servers.technicpack.net\/Technic\/servers\/tekkitmain\/Tekkit_Server_$MODPACK_VERSION.zip -o Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nunzip Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm -rf Tekkit_Server_$MODPACK_VERSION.zip\r\n\r\nrm launch.bat\r\n\r\nrm launch.sh\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi",
"container": "alpine:3.9", "container": "alpine:3.9",
"entrypoint": "ash" "entrypoint": "ash"
} }
@ -28,8 +33,8 @@
"description": "", "description": "",
"env_variable": "MODPACK_VERSION", "env_variable": "MODPACK_VERSION",
"default_value": "v1.2.9g-2", "default_value": "v1.2.9g-2",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]

View File

@ -1,6 +1,7 @@
# Minecraft Proxies # Minecraft Proxies
* [Java](/minecraft/proxy/java/) * [Java](/minecraft/proxy/java/)
* [FlameCord](/minecraft/proxy/java/flamecord)
* [Waterfall](/minecraft/proxy/java/waterfall) * [Waterfall](/minecraft/proxy/java/waterfall)
* [Travertine](/minecraft/proxy/java/travertine) * [Travertine](/minecraft/proxy/java/travertine)
* [Velocity](/minecraft/proxy/java/velocity) * [Velocity](/minecraft/proxy/java/velocity)
@ -8,4 +9,3 @@
* [Cross Platform](/minecraft/proxy/cross_platform) * [Cross Platform](/minecraft/proxy/cross_platform)
* [GeyserMC](/minecraft/proxy/cross_platform/geyser) * [GeyserMC](/minecraft/proxy/cross_platform/geyser)
* [Waterdog](/minecraft/proxy/cross_platform/waterdog) * [Waterdog](/minecraft/proxy/cross_platform/waterdog)
* DragonProxy abandoned in favour of GeyserMC.

View File

@ -1,13 +1,13 @@
# Mineraft Cross Platform Proxies # Mineraft Cross Platform Proxies
### GeyserMC ### GeyserMC
[GeyserMC](https://github.com/GeyserMC/) [GeyserMC](https://github.com/GeyserMC)
A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock edition. A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock edition.
#### Waterdog ### Waterdog
[Waterdog](https://github.com/yesdog/Waterdog) [Waterdog](https://github.com/WaterdogPE/Waterdog)
Waterdog provides native support for the Minecraft Bedrock protocols along with the existing java protocols. It is capable of using the ProtocolSupport PE encapsulation protocol over TCP, or it can use the native RakNet Bedrock protocol for traditional downstream Bedrock servers such as Nukkit, Pocketmine, Bedrock Alpha Server, MiNET, and others. Waterdog provides native support for the Minecraft Bedrock protocols along with the existing java protocols. It is capable of using the ProtocolSupport PE encapsulation protocol over TCP, or it can use the native RakNet Bedrock protocol for traditional downstream Bedrock servers such as Nukkit, Pocketmine, Bedrock Alpha Server, MiNET, and others.

View File

@ -1,18 +1,19 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-12-05T13:11:06+01:00", "exported_at": "2021-04-25T10:20:26+03:00",
"name": "Waterdog", "name": "Waterdog",
"author": "parker@pterodactyl.io", "author": "parker@pterodactyl.io",
"description": "Waterdog is fork of the well-known Waterfall, which is a fork of the well-known BungeeCord, server teleportation suite.", "description": "Waterdog is fork of the well-known Waterfall, which is a fork of the well-known BungeeCord, server teleportation suite.",
"features": null, "features": null,
"image": "quay.io\/pterodactyl\/core:java",
"images": [ "images": [
"quay.io\/pterodactyl\/core:java", "quay.io\/pterodactyl\/core:java",
"quay.io\/pterodactyl\/core:java-11" "quay.io\/pterodactyl\/core:java-11"
], ],
"file_denylist": [],
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}",
"config": { "config": {
"files": "{}", "files": "{}",
@ -22,7 +23,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Adding '.jar' if it isn't part of the file name\r\nif [[ \"${SERVER_JARFILE}\" == \"*\\.jar\" ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\nif [ -z \"${WATERDOG_VERSION}\" ] || [ \"${WATERDOG_VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading latest waterdog build\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/lastSuccessfulBuild\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nelse \r\n echo -e \"downloading waterdog build ${WATERDOG_VERSION}\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/ci.codemc.io\/job\/yesdog\/job\/Waterdog\/${WATERDOG_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nfi\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\/java\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Adding '.jar' if it isn't part of the file name\r\nif [[ \"${SERVER_JARFILE}\" == \"*\\.jar\" ]]; then\r\n echo -e \"adding.jar to server file name\"\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\nif [ -z \"${WATERDOG_VERSION}\" ] || [ \"${WATERDOG_VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading latest waterdog build\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/jenkins.waterdog.dev\/job\/Waterdog\/job\/Waterdog\/job\/master-zlib\/lastSuccessfulBuild\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nelse \r\n echo -e \"downloading waterdog build ${WATERDOG_VERSION}\\n\"\r\n curl -sSL -o ${SERVER_JARFILE} https:\/\/jenkins.waterdog.dev\/job\/Waterdog\/job\/Waterdog\/job\/master-zlib\/${WATERDOG_VERSION}\/artifact\/Waterfall-Proxy\/bootstrap\/target\/Waterdog.jar\r\nfi\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\/java\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -30,7 +31,7 @@
"variables": [ "variables": [
{ {
"name": "Waterdog Version", "name": "Waterdog Version",
"description": "The build to pull and install. (Ex. 1604)\r\n\r\nThis is the build number on https:\/\/jenkins.pmmp.io", "description": "The build to pull and install. (Ex. 23), or set to latest\r\n\r\nThis is the build number on https:\/\/jenkins.waterdog.dev\/",
"env_variable": "WATERDOG_VERSION", "env_variable": "WATERDOG_VERSION",
"default_value": "latest", "default_value": "latest",
"user_viewable": true, "user_viewable": true,
@ -47,4 +48,4 @@
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }

View File

@ -1,17 +1,22 @@
# Minecraft Java Proxies # Minecraft Java Proxies
#### Waterfall
[Waterfall](https://papermc.io/downloads#Waterfall) #### FlameCord
Paper fork of the BungeeCord software, with improved Forge support and more features. [FlameCord](https://github.com/2lstudios-mc/FlameCord)
FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities.
#### Travertine #### Travertine
[Travertine](https://papermc.io/downloads#Travertine) [Travertine](https://papermc.io/downloads#Travertine)
Waterfall, with additional support for Minecraft 1.7.10. Waterfall, with additional support for Minecraft 1.7.10.
#### TyphoonLimbo
[TyphoonLimbo](https://github.com/TyphoonMC/TyphoonLimbo)
A limbo server is a fallback server able to handle a massive amount of simultaneous connections. The player spawns into the void then waits here. It can be used to keep players connected to a network after a lobby crashed or as an afk server.
#### Velocity #### Velocity
[Velocity](https://velocitypowered.com/) [Velocity](https://velocitypowered.com)
Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility. Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.
#### Typhoonlimbo #### Waterfall
[TyphoonLimbo](https://github.com/TyphoonMC/TyphoonLimbo) [Waterfall](https://papermc.io/downloads#Waterfall)
Lightweight Minecraft limbo server Paper fork of the BungeeCord software, with improved Forge support and more features.

View File

@ -0,0 +1,10 @@
# Flamecord server
FlameCord is a fork of Travertine that fixes Netty Exploits, keeps your console clean from unnecessary messages and orders your BungeeCord modules in a simpler way.
## 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,51 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-26T23:16:37+03:00",
"name": "Flamecord",
"author": "admin@softwarenoob.com",
"description": "FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. FlameCord aims to fix Netty related exploits to keep your server safe from attacks.",
"features": null,
"images": [
"quay.io\/pterodactyl\/core:java-11",
"quay.io\/pterodactyl\/core:java"
],
"file_denylist": [],
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}",
"config": {
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Listening on \",\r\n \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}",
"logs": "{\r\n}",
"stop": "end"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Travertine Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nMATCH=Flamecord.jar\r\napt update\r\napt install -y curl jq\r\n\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/2lstudios-mc\/FlameCord\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/2lstudios-mc\/FlameCord\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo \"Downloading latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\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_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n echo \"Download version ${VERSION}\"\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"curl -L ${DOWNLOAD_URL} -o ${SERVER_JARFILE}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -L ${DOWNLOAD_URL} -o ${SERVER_JARFILE}\r\necho \"Install complete\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Flamecord Version",
"description": "The Github release version of Flamecord to install such as 48d53ee, all releases at https:\/\/github.com\/2lstudios-mc\/FlameCord\/releases",
"env_variable": "FLAMECORD_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
},
{
"name": "FlameCord Jar File",
"description": "The name of the jar file to use when running FlameCord.",
"env_variable": "SERVER_JARFILE",
"default_value": "flamecord.jar",
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
}
]
}

View File

@ -1,5 +1,5 @@
# TyphoonLimbo server # TyphoonLimbo server
Lightweight minecraft limbo server A limbo server is a fallback server able to handle a massive amount of simultaneous connections. The player spawns into the void then waits here. It can be used to keep players connected to a network after a lobby crashed or as an afk server.
## Server Ports ## Server Ports
The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.

View File

@ -0,0 +1,12 @@
# OpenArena
### From their [site](http://www.openarena.ws)
OpenArena is a community-produced deathmatch FPS based on GPL idTech3 technology.
There are many game types supported including Free For All, Capture The Flag, Domination, Overload, Harvester, and more.
### Server Ports
| Port | default |
|---------|---------|
| Game | 27960 |
#### Mods/Plugins may require ports to be added to the server.

View File

@ -0,0 +1,41 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-23T17:30:07+00:00",
"name": "OpenArena",
"author": "parker@parkervcp.com",
"description": "OpenArena is a community-produced deathmatch FPS based on GPL idTech3 technology.\r\n\r\nhttp:\/\/www.openarena.ws\/",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/oa_ded.x86_64 +set net_port {{SERVER_PORT}} +map {{GAME_MAP}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"AAS initialized\"\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# dirty install script for openarena\r\n# will get updated more later\r\n\r\napt update -y\r\napt install -y wget unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n\tmkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nwget http:\/\/www.openarena.ws\/request.php?4 -O openarena.zip\r\n\r\nunzip -o openarena.zip openarena-*\/oa_ded.x86_64 openarena-*\/missionpack\/* openarena-*\/baseoa\/*\r\n\r\nmv -f openarena-*\/* \/mnt\/server\/\r\n\r\nrm -rf openarena-*\/ openarena.zip",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Game Map",
"description": "The map to load when the server starts.\r\nSee here for all maps available by default - https:\/\/openarena.fandom.com\/wiki\/Maps",
"env_variable": "GAME_MAP",
"default_value": "aggressor",
"user_viewable": true,
"user_editable": true,
"rules": "required|string"
}
]
}

View File

@ -1,6 +1,6 @@
## this is a simple script to validate a download url actaully exists ## this is a simple script to validate a download url actaully exists
if [ ! -z "${DOWNLOAD_URL}"]; then if [ ! -z "${DOWNLOAD_URL}" ]; then
if curl --output /dev/null --silent --head --fail ${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}" echo -e "link is valid. setting download link to ${DOWNLOAD_URL}"
DOWNLOAD_LINK=${DOWNLOAD_URL} DOWNLOAD_LINK=${DOWNLOAD_URL}

View File

@ -3,11 +3,16 @@
## The value for ${DOWNLOAD_LINK##*/} is derived from DOWNLOAD_LINK ## The value for ${DOWNLOAD_LINK##*/} is derived from DOWNLOAD_LINK
## if the download link is https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar then the ##*/ is server.jar ## if the download link is https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar then the ##*/ is server.jar
apt update
apt install -y curl file unzip
curl -sSL ${DOWNLOAD_LINK}
FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2) FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2)
if [ "$FILETYPE" == "gzip" ]; then if [ "$FILETYPE" == "gzip" ]; then
tar xzvf ${DOWNLOAD_LINK##*/} tar xzvf ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "Zip" ]; then elif [ "$FILETYPE" == "Zip" ]; then
unzip ${DOWNLOAD_LINK##*/} unzip -o ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "XZ" ]; then elif [ "$FILETYPE" == "XZ" ]; then
tar xvf ${DOWNLOAD_LINK##*/} tar xvf ${DOWNLOAD_LINK##*/}
else else

55
scripts/git_cloner.sh Normal file
View File

@ -0,0 +1,55 @@
## clone git repos
## supports both github and gitlab
## supports using a personal access token to run git pull
apt update
apt install -y git curl jq file unzip
mkdir -p /mnt/server
cd /mnt/server
if [ "${USER_UPLOAD}" == "true" ] || [ "${USER_UPLOAD}" == "1" ]; then
echo -e "assuming user knows what they are doing have a good day."
exit 0
fi
## add git ending if it's not on the address
if [[ ${GIT_ADDRESS} != *.git ]]; then
GIT_ADDRESS=${GIT_ADDRESS}.git
fi
if [ -z "${USERNAME}" ] && [ -z "${ACCESS_TOKEN}" ]; then
echo -e "using anon api call"
else
GIT_ADDRESS="https://${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d/ -f3-)"
fi
## pull git js bot repo
if [ "$(ls -A /mnt/server)" ]; then
echo -e "/mnt/server directory is not empty."
if [ -d .git ]; then
echo -e ".git directory exists"
if [ -f .git/config ]; then
echo -e "loading info from git config"
ORIGIN=$(git config --get remote.origin.url)
else
echo -e "files found with no git config"
echo -e "closing out without touching things to not break anything"
exit 10
fi
fi
if [ "${ORIGIN}" == "${GIT_ADDRESS}" ]; then
echo "pulling latest from github"
git pull
fi
else
echo -e "/mnt/server is empty.\ncloning files into repo"
if [ -z ${BRANCH} ]; then
echo -e "cloning default branch"
git clone ${GIT_ADDRESS} .
else
echo -e "cloning ${BRANCH}'"
git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .
fi
fi

View File

@ -2,6 +2,8 @@
## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way) ## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)
## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.) ## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)
## if you are getting hit with GitHub API limit issues then you need to have the user and token set. ## if you are getting hit with GitHub API limit issues then you need to have the user and token set.
apt update
apt install -y curl jq
if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then
echo -e "using anon api call" echo -e "using anon api call"
@ -15,13 +17,13 @@ LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/rele
RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases") RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases")
if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH}) DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else else
VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name') VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
if [ "${VERSION}" == "${VERSION_CHECK}" ]; then if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH}) DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
else else
echo -e "defaulting to latest release" echo -e "defaulting to latest release"
DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url) DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
fi fi
fi fi

View File

@ -10,7 +10,7 @@
# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install. # STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.
# WINDOWS_INSTALL - if it's a windows server you want to install set to 1 # WINDOWS_INSTALL - if it's a windows server you want to install set to 1
# SRCDS_APPID - steam app id ffound here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List # SRCDS_APPID - steam app id ffound here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates. # INSTALL_FLAGS - when a server has extra glas for things like beta installs or updates.
# #
## ##
@ -18,7 +18,7 @@ apt -y update
apt -y --no-install-recommends install curl lib32gcc1 ca-certificates apt -y --no-install-recommends install curl lib32gcc1 ca-certificates
## just in case someone removed the defaults. ## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n" echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n" echo -e "Using anonymous user.\n"
STEAM_USER=anonymous STEAM_USER=anonymous
@ -41,7 +41,7 @@ chown -R root:root /mnt
export HOME=/mnt/server export HOME=/mnt/server
## install game using steamcmd ## install game using steamcmd
./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6 ./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
## set up 32 bit libraries ## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32 mkdir -p /mnt/server/.steam/sdk32

View File

@ -0,0 +1,13 @@
# Code-Server
### From the [Code-Server](https://github.com/cdr/code-server) GitHub
Run [VS Code](https://github.com/Microsoft/vscode) on any machine anywhere and access it in the browser.
### Server Ports
Ports required to run the server in a table format.
| Port | default |
| ---- | ------- |
| Game | 8080 |

View File

@ -0,0 +1,49 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-01-27T07:26:08+01:00",
"name": "Code-Server",
"author": "mario.franze@gmail.com",
"description": "Run VS Code on any machine anywhere and access it in the browser.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-14"
],
"startup": "sh .local\/lib\/code-server-{{VERSION}}\/bin\/code-server",
"config": {
"files": "{\r\n \".config\/code-server\/config.yaml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"password\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"bind-addr\": \"bind-addr: 0.0.0.0:{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"info HTTP server listening on\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "apt update\r\napt install curl -y\r\n\r\n# Create initial directories\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Create needed directories\r\nmkdir -p \/mnt\/server\/.local\/lib \/mnt\/server\/.local\/bin \/mnt\/server\/.config\/code-server \/mnt\/server\/projects\r\n\r\n# Change permission of projects directory so it can be accessed by code-server\r\nchmod 777 \/mnt\/server\/projects\r\ntouch \"\/mnt\/server\/projects\/PLACE YOUR PROJECTS HERE\"\r\n\r\n# Download the given Version and extract it\r\ncurl -fL https:\/\/github.com\/cdr\/code-server\/releases\/download\/v${VERSION}\/code-server-${VERSION}-linux-amd64.tar.gz \\\r\n | tar -C \/mnt\/server\/.local\/lib -xz\r\nmv \/mnt\/server\/.local\/lib\/code-server-${VERSION}-linux-amd64 \/mnt\/server\/.local\/lib\/code-server-${VERSION}\r\nPATH=\"\/mnt\/server\/.local\/bin:$PATH\"\r\necho \"password: changeme\r\nbind-addr: 0.0.0.0\r\nauth: password\r\ncert: false\" > \/mnt\/server\/.config\/code-server\/config.yaml",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Password",
"description": "Password to login to your Code-Server instance",
"env_variable": "PASSWORD",
"default_value": "changeme",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:32"
},
{
"name": "Version",
"description": "Version for (re)installation",
"env_variable": "VERSION",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

View File

@ -10,16 +10,16 @@ This is a collection of servers that use SteamCMD to install.
## Arma ## Arma
[Arma](arma) [Arma](arma)
* [Arma 3](arma/arma3) * [Arma 3](arma/arma3)
* [Arma 3 64 Bit](arma/arma3_x64) * [Arma 3 64 Bit](arma/arma3_x64)
* [Arma 3 Headless Client](arma/arma3_headless_client) * [Arma 3 Headless Client](arma/arma3_headless_client)
## Avorion
[Avorion](avorion)
## Assetto Corsa ## Assetto Corsa
[Assetto Corsa](assetto_corsa) [Assetto Corsa](assetto_corsa)
## Avorion
[Avorion](avorion)
## Barotrauma ## Barotrauma
[Barotrauma](barotrauma) [Barotrauma](barotrauma)
@ -50,6 +50,9 @@ This is a collection of servers that use SteamCMD to install.
## Killing Floor 2 ## Killing Floor 2
[Killing Floor 2](killing_floor_2) [Killing Floor 2](killing_floor_2)
## Modiverse
[Modiverse](modiverse)
## Mordhau ## Mordhau
[Mordhau](mordhau) [Mordhau](mordhau)
@ -59,6 +62,9 @@ This is a collection of servers that use SteamCMD to install.
## PixARK ## PixARK
[PixARK](pixark) [PixARK](pixark)
## Post Scriptum
[Post Scriptum](post_scriptum)
## Project Zomboid ## Project Zomboid
[Project Zomboid](project_zomboid) [Project Zomboid](project_zomboid)
@ -81,6 +87,9 @@ This is a collection of servers that use SteamCMD to install.
## Soldat ## Soldat
[Soldat](soldat) [Soldat](soldat)
## Space Engineers
[Space Engineers](space_engineers)
## Squad ## Squad
[Squad](squad) [Squad](squad)
@ -93,6 +102,9 @@ This is a collection of servers that use SteamCMD to install.
## Stormworks: Build and Rescue ## Stormworks: Build and Rescue
[Stormworks: Build and Rescue](stormworks) [Stormworks: Build and Rescue](stormworks)
## Subnautica: Nitrox Mod
[Subnautica: Nitrox Mod](subnautica_nitrox_mod)
## Sven coop ## Sven coop
[Sven Co-op](svencoop) [Sven Co-op](svencoop)
@ -106,4 +118,9 @@ This is a collection of servers that use SteamCMD to install.
[Tower Unite](tower_unite) [Tower Unite](tower_unite)
## Unturned ## Unturned
[Unturned](unturned) [Unturned](unturned)
## Valheim
[Valheim](valheim)
* [Valheim Vanilla](valheim/valheim_vanilla)
* [Valheim Plus Mod](valheim/valheim_plus)

View File

@ -1,14 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-09-13T10:56:00-04:00", "exported_at": "2021-03-04T06:38:31+02:00",
"name": "Ark: Survival Evolved", "name": "Ark: Survival Evolved",
"author": "dev@shepper.fr", "author": "dev@shepper.fr",
"description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", "features": null,
"startup": "rmv() { echo -e \"stoppping server\"; rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c saveworld && rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c DoExit; }; trap rmv 15; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}}$( [ \"$BATTLE_EYE\" == \"0\" ] || printf %s '?-NoBattlEye' ) -server -log & until echo \"waiting for rcon connection...\"; rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD}; do sleep 5; done", "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_source"
],
"startup": "rmv() { echo -e \"stoppping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c saveworld && rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c DoExit; }; trap rmv 15; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}}$( [ \"$BATTLE_EYE\" == \"0\" ] || printf %s '?-NoBattlEye' ) -server -log & until echo \"waiting for rcon connection...\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD}; do sleep 5; done",
"config": { "config": {
"files": "{}", "files": "{}",
"startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\",\r\n \"userInteraction\": []\r\n}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\",\r\n \"userInteraction\": []\r\n}",
@ -28,8 +32,8 @@
"description": "If specified, players must provide this password to join the server.", "description": "If specified, players must provide this password to join the server.",
"env_variable": "ARK_PASSWORD", "env_variable": "ARK_PASSWORD",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|alpha_dash|between:1,100" "rules": "nullable|alpha_dash|between:1,100"
}, },
{ {
@ -37,8 +41,8 @@
"description": "If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server.", "description": "If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server.",
"env_variable": "ARK_ADMIN_PASSWORD", "env_variable": "ARK_ADMIN_PASSWORD",
"default_value": "PleaseChangeMe", "default_value": "PleaseChangeMe",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|alpha_dash|between:1,100" "rules": "nullable|alpha_dash|between:1,100"
}, },
{ {
@ -46,8 +50,8 @@
"description": "Available Maps: TheIsland, TheCenter, Ragnarok, ScorchedEarth_P, Aberration_P, Extinction, Valguero_P, Genesis", "description": "Available Maps: TheIsland, TheCenter, Ragnarok, ScorchedEarth_P, Aberration_P, Extinction, Valguero_P, Genesis",
"env_variable": "SERVER_MAP", "env_variable": "SERVER_MAP",
"default_value": "TheIsland", "default_value": "TheIsland",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20"
}, },
{ {
@ -55,8 +59,8 @@
"description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.",
"env_variable": "SRCDS_APPID", "env_variable": "SRCDS_APPID",
"default_value": "376030", "default_value": "376030",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "nullable|numeric" "rules": "nullable|numeric"
}, },
{ {
@ -64,8 +68,8 @@
"description": "ARK server name", "description": "ARK server name",
"env_variable": "SESSION_NAME", "env_variable": "SESSION_NAME",
"default_value": "A Pterodactyl Hosted ARK Server", "default_value": "A Pterodactyl Hosted ARK Server",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:128" "rules": "required|string|max:128"
}, },
{ {
@ -73,8 +77,8 @@
"description": "Enable or disable rcon system. (true or false)\r\n\r\nDefault True for the console to work.", "description": "Enable or disable rcon system. (true or false)\r\n\r\nDefault True for the console to work.",
"env_variable": "ENABLE_RCON", "env_variable": "ENABLE_RCON",
"default_value": "True", "default_value": "True",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|string|in:True,False" "rules": "required|string|in:True,False"
}, },
{ {
@ -82,8 +86,8 @@
"description": "ARK rcon port used by rcon tools.", "description": "ARK rcon port used by rcon tools.",
"env_variable": "RCON_PORT", "env_variable": "RCON_PORT",
"default_value": "27020", "default_value": "27020",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|numeric" "rules": "required|numeric"
}, },
{ {
@ -91,8 +95,8 @@
"description": "ARK query port used by steam server browser and ark client server browser.", "description": "ARK query port used by steam server browser and ark client server browser.",
"env_variable": "QUERY_PORT", "env_variable": "QUERY_PORT",
"default_value": "27015", "default_value": "27015",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|numeric" "rules": "required|numeric"
}, },
{ {
@ -100,8 +104,8 @@
"description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 0. Set to 1 to update", "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 0. Set to 1 to update",
"env_variable": "AUTO_UPDATE", "env_variable": "AUTO_UPDATE",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
}, },
{ {
@ -109,8 +113,8 @@
"description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"", "description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"",
"env_variable": "BATTLE_EYE", "env_variable": "BATTLE_EYE",
"default_value": "1", "default_value": "1",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|boolean" "rules": "required|boolean"
} }
] ]

View File

@ -1,23 +1,28 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-07-12T20:06:39-04:00", "exported_at": "2021-04-24T04:44:26+03:00",
"name": "Killing Floor 2", "name": "Killing Floor 2",
"author": "parker@parkervcp.com", "author": "parker@parkervcp.com",
"description": "In KILLING FLOOR 2, players descend into continental Europe after it has been overrun by horrific, murderous clones called Zeds that were created by the corporation Horzine. The Zed outbreak caused by Horzine Biotech\u2019s failed experiments has quickly spread with unstoppable momentum, paralyzing the European Union. Only a month ago, the first Zed outbreak from the original KILLING FLOOR ripped through London; now the specimen clones are everywhere.", "description": "In KILLING FLOOR 2, players descend into continental Europe after it has been overrun by horrific, murderous clones called Zeds that were created by the corporation Horzine. The Zed outbreak caused by Horzine Biotech\u2019s failed experiments has quickly spread with unstoppable momentum, paralyzing the European Union. Only a month ago, the first Zed outbreak from the original KILLING FLOOR ripped through London; now the specimen clones are everywhere.",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", "features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_source"
],
"file_denylist": [],
"startup": "\/home\/container\/Binaries\/Win64\/KFGameSteamServer.bin.x86_64 {{MAP_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?AdminPassword={{ADMIN_PASS}}?Difficulty={{DIFFICULTY}}$( [ \"$WEB_ADMIN\" == \"true\" ] || printf %s '??WebAdminPort={{WEB_ADMIN_PORT}}' )", "startup": "\/home\/container\/Binaries\/Win64\/KFGameSteamServer.bin.x86_64 {{MAP_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?AdminPassword={{ADMIN_PASS}}?Difficulty={{DIFFICULTY}}$( [ \"$WEB_ADMIN\" == \"true\" ] || printf %s '??WebAdminPort={{WEB_ADMIN_PORT}}' )",
"config": { "config": {
"files": "{\r\n \"KFGame\/Config\/KFWeb.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"IpDrv.WebServer.IpDrv.WebServer\": \"{{server.build.env.WEB_ADMIN}}\",\r\n \"IpDrv.WebServer.IpDrv.ListenPort\": \"{{server.build.env.WEB_ADMIN_PORT}}\"\r\n }\r\n },\r\n \"KFGame\/Config\/LinuxServer-KFGame.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Engine.AccessControl.AdminPassword\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"Engine.GameReplicationInfo.ServerName\": \"{{server.build.env.SERVER_NAME}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"KFGame\/Config\/KFWeb.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bEnabled\": \"benabled={{server.build.env.WEB_ADMIN}}\",\r\n \"ListenPort\": \"ListenPort={{server.build.env.WEB_ADMIN_PORT}}\"\r\n }\r\n },\r\n \"KFGame\/Config\/LinuxServer-KFGame.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword\": \"AdminPassword={{server.build.env.ADMIN_PASS}}\",\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"DevOnline: Playfab server registered with lobby ID \"\r\n}", "startup": "{\r\n \"done\": \"DevOnline: Playfab server registered with lobby ID \"\r\n}",
"logs": "{}", "logs": "{}",
"stop": "^C" "stop": "^C"
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [ \"${WINDOWS_INSTALL}\" == \"1\" ] || printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [ \"${WINDOWS_INSTALL}\" == \"1\" ] || printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
@ -28,8 +33,8 @@
"description": "A steam username to use to install the server.\r\n\r\nOnly needed for games that need a user that owns the server", "description": "A steam username to use to install the server.\r\n\r\nOnly needed for games that need a user that owns the server",
"env_variable": "STEAM_USER", "env_variable": "STEAM_USER",
"default_value": "", "default_value": "",
"user_viewable": 0, "user_viewable": false,
"user_editable": 0, "user_editable": false,
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
@ -37,8 +42,8 @@
"description": "Password for the Steam account to install a server.", "description": "Password for the Steam account to install a server.",
"env_variable": "STEAM_PASS", "env_variable": "STEAM_PASS",
"default_value": "", "default_value": "",
"user_viewable": 0, "user_viewable": false,
"user_editable": 0, "user_editable": false,
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
@ -46,8 +51,8 @@
"description": "Will most likely time out before it gets used.", "description": "Will most likely time out before it gets used.",
"env_variable": "STEAM_AUTH", "env_variable": "STEAM_AUTH",
"default_value": "", "default_value": "",
"user_viewable": 0, "user_viewable": false,
"user_editable": 0, "user_editable": false,
"rules": "nullable|string|max:6" "rules": "nullable|string|max:6"
}, },
{ {
@ -55,8 +60,8 @@
"description": "The App ID for the Server", "description": "The App ID for the Server",
"env_variable": "SRCDS_APPID", "env_variable": "SRCDS_APPID",
"default_value": "232130", "default_value": "232130",
"user_viewable": 0, "user_viewable": false,
"user_editable": 0, "user_editable": false,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -64,8 +69,8 @@
"description": "Only needed for specific situations.", "description": "Only needed for specific situations.",
"env_variable": "EXTRA_FLAGS", "env_variable": "EXTRA_FLAGS",
"default_value": "", "default_value": "",
"user_viewable": 0, "user_viewable": false,
"user_editable": 0, "user_editable": false,
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
@ -73,8 +78,8 @@
"description": "The map to load when the server starts\r\n\r\ndefault - 'kf-bioticslab'", "description": "The map to load when the server starts\r\n\r\ndefault - 'kf-bioticslab'",
"env_variable": "MAP_NAME", "env_variable": "MAP_NAME",
"default_value": "kf-bioticslab", "default_value": "kf-bioticslab",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -82,8 +87,8 @@
"description": "The port steam will use to query the server.", "description": "The port steam will use to query the server.",
"env_variable": "QUERY_PORT", "env_variable": "QUERY_PORT",
"default_value": "27015", "default_value": "27015",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|numeric|max:65535" "rules": "required|numeric|max:65535"
}, },
{ {
@ -91,8 +96,8 @@
"description": "", "description": "",
"env_variable": "WEB_ADMIN", "env_variable": "WEB_ADMIN",
"default_value": "false", "default_value": "false",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|string|in:true,false" "rules": "required|string|in:true,false"
}, },
{ {
@ -100,8 +105,8 @@
"description": "An admin password for the server.", "description": "An admin password for the server.",
"env_variable": "ADMIN_PASS", "env_variable": "ADMIN_PASS",
"default_value": "PleaseChangeMe", "default_value": "PleaseChangeMe",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -109,8 +114,8 @@
"description": "This is the displayed server name to all players in the server and the server browser", "description": "This is the displayed server name to all players in the server and the server browser",
"env_variable": "SERVER_NAME", "env_variable": "SERVER_NAME",
"default_value": "A Pterodactyl Hosted Server", "default_value": "A Pterodactyl Hosted Server",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -118,8 +123,8 @@
"description": "0 = Normal, 1 = Hard, 2 = Suicidal, 3 = Hell on Earth", "description": "0 = Normal, 1 = Hard, 2 = Suicidal, 3 = Hell on Earth",
"env_variable": "DIFFICULTY", "env_variable": "DIFFICULTY",
"default_value": "0", "default_value": "0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|numeric|max:3" "rules": "required|numeric|max:3"
}, },
{ {
@ -127,9 +132,9 @@
"description": "The port the webadmin panel should use. This is a beta feature.", "description": "The port the webadmin panel should use. This is a beta feature.",
"env_variable": "WEB_ADMIN_PORT", "env_variable": "WEB_ADMIN_PORT",
"default_value": "8089", "default_value": "8089",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]
} }

View File

@ -0,0 +1,14 @@
# Modiverse
Modiverse provides a sandbox environment with the ability to create and play mods such as TTT, Deathrun, FortWars, RP, and more! Use the many sandbox tools to build complex worlds with props, lights, thrusters, wheels, and much much more!
### Information
Default ServerConfiguration.json is provided to start the server, you must modify it with your own mods to customize the server. The game is currently in beta and as such the console is filled with debug spam, developers have noted that this will be removed when the game releases.
## Server Ports
| Port | default |
|-------------|---------|
| Game | 7777 |
| Query | 27015 |

View File

@ -0,0 +1,11 @@
{
"version": 1,
"pin": "0000",
"motdURL": "http://test.com/motd.html",
"motdDelay": 5,
"rconPassword" : "cHangeRC0nPasswOrD",
"mapCycle":
[
{"gameMode":"2285067974","comment":"Deathrun, Deathrun Example Map, ","map":"2286680373","assets":["2229481041"],"duration":1800}
]
}

View File

@ -0,0 +1,67 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-02T23:42:26+02:00",
"name": "Modiverse",
"author": "admin@softwarenoob.com",
"description": "Modiverse provides a sandbox environment with the ability to create and play mods such as TTT, Deathrun, FortWars, RP, and more! Use the many sandbox tools to build complex worlds with props, lights, thrusters, wheels, and much much more!",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:ubuntu_source"
],
"startup": ".\/KJMod\/Binaries\/Linux\/KJModServer -port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -SteamServerName=\\\"{{HOSTNAME}}\\\" -KJModBaseUGCFolder=ServerData -DoNotRestartOnEmpty -InitUGCs -maxplayers={{MAX_PLAYERS}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"listening on port\"\r\n}",
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Modiverse install\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\nAPP_ID=1549820\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"Downloading the game as Steam user ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${APP_ID} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n# Server Configuration \r\nif [ -f \/mnt\/server\/KJModServer.sh ]; then\r\n rm \/mnt\/server\/KJModServer.sh\r\n echo \"Removing default script\"\r\nfi\r\nif [ ! -d \"\/mnt\/server\/KJMod\/Binaries\/Linux\/ServerData\" ]; then\r\n echo \"ServerData folder missing....Creating ServerData Folder\"\r\n mkdir -p \/mnt\/server\/KJMod\/Binaries\/Linux\/ServerData\r\n fi\r\n if [ -f \/mnt\/server\/KJMod\/Binaries\/Linux\/ServerData\/ServerConfiguration.json ]; then\r\n echo \"Config file exists already, skipping config file download\"\r\n else\r\n echo \"Config file missing...Downloading default ServerConfiguration file\"\r\n cd \/mnt\/server\/KJMod\/Binaries\/Linux\/ServerData || exit\r\n curl -sS -o ServerConfiguration.json https:\/\/github.com\/\/parkervcp\/eggs\/raw\/master\/steamcmd_servers\/modiverse\/ServerConfiguration.json\r\nfi\r\nchmod +x \/mnt\/server\/KJMod\/Binaries\/Linux\/KJModServer\r\necho \"\"\r\necho \"Installation completed, have fun!\"",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Name",
"description": "Server name as shown to players in the various server browsing windows",
"env_variable": "HOSTNAME",
"default_value": "Pterodactyl Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:32"
},
{
"name": "Query Port",
"description": "Query Port",
"env_variable": "QUERY_PORT",
"default_value": "27015",
"user_viewable": true,
"user_editable": false,
"rules": "required|numeric"
},
{
"name": "Max Players",
"description": "The maximum amount of player slots, the value should be between 2 and 128.",
"env_variable": "MAX_PLAYERS",
"default_value": "128",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:2,128"
},
{
"name": "Auto Update",
"description": "Auto-update the game each time server is started, enter value 0 to disable.",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean"
}
]
}

View File

@ -1,14 +1,19 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2019-09-07T20:08:55-04:00", "exported_at": "2021-04-24T15:48:02+03:00",
"name": "Mordhau", "name": "Mordhau",
"author": "trey@chazx.cc", "author": "trey@chazx.cc",
"description": "Mordhau is a multiplayer medieval hack 'n slash video game, developed by Slovenian independent studio Triternion, with a prominent aspect of skill-based competitive play and customization.", "description": "Mordhau is a multiplayer medieval hack 'n slash video game, developed by Slovenian independent studio Triternion, with a prominent aspect of skill-based competitive play and customization.",
"image": "quay.io\/parkervcp\/pterodactyl-images:game_mordhau", "features": null,
"startup": ".\/MordhauServer.sh \/Game\/Mordhau\/Maps\/{{DEFAULT_MAP}}?MaxSlots={{MAX_PLAYERS}}? -USEALLAVAILABLECORES -Port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -beaconport={{BEACON_PORT}}", "images": [
"quay.io\/parkervcp\/pterodactyl-images:game_mordhau"
],
"file_denylist": [],
"startup": ".\/Mordhau\/Binaries\/Linux\/MordhauServer-Linux-Shipping \/Game\/Mordhau\/Maps\/{{DEFAULT_MAP}} -MaxSlots={{MAX_PLAYERS}} -USEALLAVAILABLECORES -Port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -beaconport={{BEACON_PORT}}",
"config": { "config": {
"files": "{\r\n \"Mordhau\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword=\": \"AdminPassword={{server.build.env.ADMIN_PASSWORD}}\",\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"ServerPassword=\": \"ServerPassword={{server.build.env.GAME_PASSWORD}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"Mordhau\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword=\": \"AdminPassword={{server.build.env.ADMIN_PASSWORD}}\",\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"ServerPassword=\": \"ServerPassword={{server.build.env.GAME_PASSWORD}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Session GameSession successfully created\",\r\n \"userInteraction\": []\r\n}", "startup": "{\r\n \"done\": \"Session GameSession successfully created\",\r\n \"userInteraction\": []\r\n}",
@ -17,8 +22,8 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\n\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\n\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 629800 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", "script": "#!\/bin\/bash\r\n# Mordhau Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\nchmod +x \/mnt\/server\/Mordhau\/Binaries\/Linux\/MordhauServer-Linux-Shipping",
"container": "ubuntu:18.04", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
@ -28,17 +33,8 @@
"description": "Max Players", "description": "Max Players",
"env_variable": "MAX_PLAYERS", "env_variable": "MAX_PLAYERS",
"default_value": "48", "default_value": "48",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "Source APP ID",
"description": "",
"env_variable": "SRCDS_APPID",
"default_value": "629800",
"user_viewable": 1,
"user_editable": 0,
"rules": "required|string|max:20" "rules": "required|string|max:20"
}, },
{ {
@ -46,8 +42,8 @@
"description": "", "description": "",
"env_variable": "QUERY_PORT", "env_variable": "QUERY_PORT",
"default_value": "27015", "default_value": "27015",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": false,
"rules": "nullable|string|max:20" "rules": "nullable|string|max:20"
}, },
{ {
@ -55,17 +51,17 @@
"description": "Password for managing server from in game", "description": "Password for managing server from in game",
"env_variable": "ADMIN_PASSWORD", "env_variable": "ADMIN_PASSWORD",
"default_value": "password123", "default_value": "password123",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:20" "rules": "nullable|string|max:20"
}, },
{ {
"name": "Server Name", "name": "Server Name",
"description": "Name to show up in server Browser", "description": "Name to show in the server Browser",
"env_variable": "SERVER_NAME", "env_variable": "SERVER_NAME",
"default_value": "Server", "default_value": "Pterodactyl Server",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:40" "rules": "required|string|max:40"
}, },
{ {
@ -73,8 +69,8 @@
"description": "Password to get on the server", "description": "Password to get on the server",
"env_variable": "GAME_PASSWORD", "env_variable": "GAME_PASSWORD",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string|max:20" "rules": "nullable|string|max:20"
}, },
{ {
@ -82,8 +78,8 @@
"description": "First map to load. Format Expected is \"MAPNAME\/TYPE_NAME\". Examples in Readme", "description": "First map to load. Format Expected is \"MAPNAME\/TYPE_NAME\". Examples in Readme",
"env_variable": "DEFAULT_MAP", "env_variable": "DEFAULT_MAP",
"default_value": "Grad\/FL_Grad", "default_value": "Grad\/FL_Grad",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:40" "rules": "required|string|max:40"
}, },
{ {
@ -91,9 +87,27 @@
"description": "Beacon Port required", "description": "Beacon Port required",
"env_variable": "BEACON_PORT", "env_variable": "BEACON_PORT",
"default_value": "15000", "default_value": "15000",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": false,
"rules": "required|string|max:20" "rules": "required|string|max:20"
},
{
"name": "Source APP ID",
"description": "",
"env_variable": "SRCDS_APPID",
"default_value": "629800",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20"
},
{
"name": "Auto Update",
"description": "Auto-update server on start.\r\n\r\nSet 0 to disable, default is 1.",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean"
} }
] ]
} }

View File

@ -0,0 +1,14 @@
# Post Scriptum
Post Scriptum is a WW2-themed first-person tactical shooter that provides an authentic WWII combat experience. Focusing on historical accuracy, large-scale battles, and a challenging battlefield demands an intense need for cohesion, communication, and teamwork.
## Server Ports
Post Scriptum requires Game and Query port to function, while RCON port is only required if you want to use RCON.
| Port | default |
|-------------|---------|
| Game | 10027 |
| Query | 10037 |
| RCON (optional) | 21114 |

View File

@ -0,0 +1,148 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-02-22T13:23:01+04:00",
"name": "Post Scriptum",
"author": "admin@softwarenoob.com",
"description": "Post Scriptum is a WW2-themed first-person tactical shooter that provides an authentic WWII combat experience. Focusing on historical accuracy, large-scale battles, and a challenging battlefield demands an intense need for cohesion, communication, and teamwork.",
"features": null,
"images": [
"quay.io\/pterodactyl\/core:source"
],
"startup": ".\/PostScriptumServer.sh Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}} -RCONPORT={{RCON_PORT}} -RCONPASSWORD={{RCON_PASSWORD}} -fullcrashdump -log",
"config": {
"files": "{\r\n \"PostScriptum\/ServerConfig\/Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.hostname}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.maxplayers}}\",\r\n \"AllowTeamChanges\": \"AllowTeamChanges={{server.build.env.allowteamchange}}\",\r\n \"ShouldAdvertise\": \"ShouldAdvertise={{server.build.env.advertise}}\",\r\n \"NumReservedSlots\": \"NumReservedSlots={{server.build.env.reservedslots}}\",\r\n \"PreventTeamChangeIfUnbalanced\": \"PreventTeamChangeIfUnbalanced={{server.build.env.team_change}}\",\r\n \"EnforceTeamBalance\": \"EnforceTeamBalance={{server.build.env.teambalance}}\",\r\n \"RecordDemos\": \"RecordDemos={{server.build.env.demo_recording}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Engine Initialization\",\r\n \"userInteraction\": []\r\n}",
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\napt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 746200 ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Query Port",
"description": "Server Query port",
"env_variable": "QUERY_PORT",
"default_value": "10037",
"user_viewable": true,
"user_editable": false,
"rules": "required|numeric"
},
{
"name": "RCON Port",
"description": "Port used for RCON connections",
"env_variable": "RCON_PORT",
"default_value": "21114",
"user_viewable": true,
"user_editable": false,
"rules": "required|numeric"
},
{
"name": "RCON Password",
"description": "Password for RCON connections, leave empty to disable.",
"env_variable": "RCON_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|regex:\/^[a-zA-Z0-9]*$\/"
},
{
"name": "Auto Update",
"description": "Auto-update the game each time server is started, enter value 0 to disable.",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean"
},
{
"name": "Server Name",
"description": "The name that will be displayed in the server browser list",
"env_variable": "hostname",
"default_value": "Pterodactyl Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:32"
},
{
"name": "Max Players",
"description": "Sets the maximum number of players.",
"env_variable": "maxplayers",
"default_value": "80",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric"
},
{
"name": "Allow Team Change",
"description": "Allow players to change teams (true\/false)",
"env_variable": "allowteamchange",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Advertise Server",
"description": "Display the server in the public server browser list (true\/false)",
"env_variable": "advertise",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Reserved Slots",
"description": "The number of reserved slots",
"env_variable": "reservedslots",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|max:80"
},
{
"name": "Prevent team change",
"description": "This will prevent players from changing teams when teams are not balanced (true\/false)",
"env_variable": "team_change",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Enforce Team Balance",
"description": "This will force team balance if the teams are uneven, by default 3 player difference. (true\/false)",
"env_variable": "teambalance",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Record Demos",
"description": "This will record demos of the players (true\/false)",
"env_variable": "demo_recording",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "ld lib path",
"description": "This is required, do not touch it",
"env_variable": "LD_LIBRARY_PATH",
"default_value": ".",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
}
]
}

View File

@ -1,13 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-10-11T07:16:29+02:00", "exported_at": "2021-03-11T16:01:09+01:00",
"name": "Rising World", "name": "Rising World",
"author": "info@goover.de", "author": "info@goover.de",
"description": "Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.", "description": "Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.",
"image": "quay.io\/pterodactyl\/core:java", "features": null,
"images": [
"quay.io\/pterodactyl\/core:java"
],
"file_denylist": [],
"startup": "java -Xmx{{SERVER_MEMORY}}M -jar server.jar +maxplayer={{MAX_PLAYERS}} +serverport={{SERVER_PORT}} +servername=\\\"{{SERVER_NAME}}\\\" +rconport {{RCON_PORT}}", "startup": "java -Xmx{{SERVER_MEMORY}}M -jar server.jar +maxplayer={{MAX_PLAYERS}} +serverport={{SERVER_PORT}} +servername=\\\"{{SERVER_NAME}}\\\" +rconport {{RCON_PORT}}",
"config": { "config": {
"files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"rcon_enabled\": \"true\",\r\n \"rcon_password\": \"{{server.build.env.RCON_PASSWORD}}\",\r\n \"server_password\": \"{{server.build.env.SERVER_PASSWORD}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"rcon_enabled\": \"true\",\r\n \"rcon_password\": \"{{server.build.env.RCON_PASSWORD}}\",\r\n \"server_password\": \"{{server.build.env.SERVER_PASSWORD}}\"\r\n }\r\n }\r\n}",
@ -63,7 +68,7 @@
"name": "LD Library Path", "name": "LD Library Path",
"description": "", "description": "",
"env_variable": "LD_LIBRARY_PATH", "env_variable": "LD_LIBRARY_PATH",
"default_value": "..\/linux64", "default_value": ".\/linux64",
"user_viewable": false, "user_viewable": false,
"user_editable": false, "user_editable": false,
"rules": "required|string|max:20" "rules": "required|string|max:20"

View File

@ -1,13 +1,17 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2018-01-21T16:58:36-06:00", "exported_at": "2021-02-25T22:11:15+02:00",
"name": "Rust Staging", "name": "Rust Staging",
"author": "root@smc.li", "author": "root@smc.li",
"description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.",
"image": "quay.io\/pterodactyl\/core:rust", "features": null,
"images": [
"quay.io\/pterodactyl\/core:rust"
],
"startup": ".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"{{WORLD_SEED}}\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}", "startup": ".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"{{WORLD_SEED}}\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}",
"config": { "config": {
"files": "{}", "files": "{}",
@ -17,8 +21,8 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "apt update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 258550 -beta staging +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so", "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"Downloading the game as Steam user ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 258550 -beta ${BRANCH} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "ubuntu:16.04", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
@ -28,8 +32,8 @@
"description": "The name of your server in the public server list.", "description": "The name of your server in the public server list.",
"env_variable": "HOSTNAME", "env_variable": "HOSTNAME",
"default_value": "A Rust Staging Server", "default_value": "A Rust Staging Server",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:40" "rules": "required|string|max:40"
}, },
{ {
@ -37,8 +41,8 @@
"description": "The world file for Rust to use.", "description": "The world file for Rust to use.",
"env_variable": "LEVEL", "env_variable": "LEVEL",
"default_value": "Procedural Map", "default_value": "Procedural Map",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20"
}, },
{ {
@ -46,8 +50,8 @@
"description": "The description under your server title. Commonly used for rules & info. Use \\n for newlines.", "description": "The description under your server title. Commonly used for rules & info. Use \\n for newlines.",
"env_variable": "DESCRIPTION", "env_variable": "DESCRIPTION",
"default_value": "Powered by Pterodactyl", "default_value": "Powered by Pterodactyl",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string" "rules": "required|string"
}, },
{ {
@ -55,8 +59,8 @@
"description": "The URL for your server. This is what comes up when clicking the \"Visit Website\" button.", "description": "The URL for your server. This is what comes up when clicking the \"Visit Website\" button.",
"env_variable": "SERVER_URL", "env_variable": "SERVER_URL",
"default_value": "http:\/\/pterodactyl.io", "default_value": "http:\/\/pterodactyl.io",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|url" "rules": "nullable|url"
}, },
{ {
@ -64,8 +68,8 @@
"description": "The world size for a procedural map.", "description": "The world size for a procedural map.",
"env_variable": "WORLD_SIZE", "env_variable": "WORLD_SIZE",
"default_value": "3000", "default_value": "3000",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|integer" "rules": "required|integer"
}, },
{ {
@ -73,8 +77,8 @@
"description": "The seed for a procedural map.", "description": "The seed for a procedural map.",
"env_variable": "WORLD_SEED", "env_variable": "WORLD_SEED",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string" "rules": "nullable|string"
}, },
{ {
@ -82,8 +86,8 @@
"description": "The maximum amount of players allowed in the server at once.", "description": "The maximum amount of players allowed in the server at once.",
"env_variable": "MAX_PLAYERS", "env_variable": "MAX_PLAYERS",
"default_value": "50", "default_value": "50",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|integer" "rules": "required|integer"
}, },
{ {
@ -91,8 +95,8 @@
"description": "The header image for the top of your server listing.", "description": "The header image for the top of your server listing.",
"env_variable": "SERVER_IMG", "env_variable": "SERVER_IMG",
"default_value": "", "default_value": "",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|url" "rules": "nullable|url"
}, },
{ {
@ -100,8 +104,8 @@
"description": "Port for RCON connections.", "description": "Port for RCON connections.",
"env_variable": "RCON_PORT", "env_variable": "RCON_PORT",
"default_value": "28016", "default_value": "28016",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|integer" "rules": "required|integer"
}, },
{ {
@ -109,27 +113,45 @@
"description": "RCON access password.", "description": "RCON access password.",
"env_variable": "RCON_PASS", "env_variable": "RCON_PASS",
"default_value": "CHANGEME", "default_value": "CHANGEME",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:64" "rules": "required|regex:\/^[\\w.-]*$\/|max:64"
}, },
{ {
"name": "Save Interval", "name": "Save Interval",
"description": "Sets the servers auto-save interval in seconds.", "description": "Sets the server\u2019s auto-save interval in seconds.",
"env_variable": "SAVEINTERVAL", "env_variable": "SAVEINTERVAL",
"default_value": "60", "default_value": "60",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|integer" "rules": "required|integer"
}, },
{ {
"name": "Additional Arguments", "name": "Branch",
"description": "Add additional startup parameters to the server.", "description": "Select the branch to install, such as staging or workcart",
"env_variable": "ADDITIONAL_ARGS", "env_variable": "BRANCH",
"default_value": "", "default_value": "staging",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "nullable|string" "rules": "nullable|string"
},
{
"name": "App Port",
"description": "Port for the Rust+ App. -1 to disable.",
"env_variable": "APP_PORT",
"default_value": "28082",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer"
},
{
"name": "Server Logo",
"description": "The circular server logo for the Rust+ app.",
"env_variable": "SERVER_LOGO",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|url"
} }
] ]
} }

View File

@ -0,0 +1,27 @@
# Space Engineers
Space Engineers is a voxel-based sandbox game set in space and on planets.
Many parts of this egg are based on the work of [mmmaxwwwell](https://github.com/mmmaxwwwell/space-engineers-dedicated-docker-linux). A thank you therefore goes to him.
**NOTE**
Because of the winetricks installation, the install process could take some time. Likewise, the first start of the server takes its time.
When installed, the Server loads a base World and config from this repo. New world must be generated with the Windows Dedicated Server and then uploaded to the /config/Saves folder.
Everything which is not defined in a variable could be edited directy in the config file /config/SpaceEngineers-Dedicated.cfg.
## Minumum server settings
### RAM
This server requires about 6GB.
Based on the information provided by the developer: [See here](https://www.spaceengineersgame.com/dedicated-servers/)
### Disk
This server uses about 7GB of diskspace.
## Server Ports
| Port | default |
|-------|---------|
| Game | 27016 |
| Steam | 8766 |
| API | 8081 |

View File

@ -0,0 +1,167 @@
<?xml version="1.0"?>
<MyConfigDedicated xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SessionSettings>
<GameMode>Survival</GameMode>
<InventorySizeMultiplier>3</InventorySizeMultiplier>
<BlocksInventorySizeMultiplier>1</BlocksInventorySizeMultiplier>
<AssemblerSpeedMultiplier>3</AssemblerSpeedMultiplier>
<AssemblerEfficiencyMultiplier>3</AssemblerEfficiencyMultiplier>
<RefinerySpeedMultiplier>3</RefinerySpeedMultiplier>
<OnlineMode>PUBLIC</OnlineMode>
<MaxPlayers>4</MaxPlayers>
<MaxFloatingObjects>56</MaxFloatingObjects>
<MaxBackupSaves>5</MaxBackupSaves>
<MaxGridSize>0</MaxGridSize>
<MaxBlocksPerPlayer>0</MaxBlocksPerPlayer>
<TotalPCU>100000</TotalPCU>
<PiratePCU>50000</PiratePCU>
<MaxFactionsCount>0</MaxFactionsCount>
<BlockLimitsEnabled>GLOBALLY</BlockLimitsEnabled>
<EnableRemoteBlockRemoval>true</EnableRemoteBlockRemoval>
<EnvironmentHostility>SAFE</EnvironmentHostility>
<AutoHealing>true</AutoHealing>
<EnableCopyPaste>false</EnableCopyPaste>
<WeaponsEnabled>true</WeaponsEnabled>
<ShowPlayerNamesOnHud>true</ShowPlayerNamesOnHud>
<ThrusterDamage>true</ThrusterDamage>
<CargoShipsEnabled>true</CargoShipsEnabled>
<EnableSpectator>false</EnableSpectator>
<WorldSizeKm>0</WorldSizeKm>
<RespawnShipDelete>false</RespawnShipDelete>
<ResetOwnership>false</ResetOwnership>
<WelderSpeedMultiplier>2</WelderSpeedMultiplier>
<GrinderSpeedMultiplier>2</GrinderSpeedMultiplier>
<RealisticSound>false</RealisticSound>
<HackSpeedMultiplier>0.33</HackSpeedMultiplier>
<PermanentDeath>false</PermanentDeath>
<AutoSaveInMinutes>5</AutoSaveInMinutes>
<EnableSaving>true</EnableSaving>
<InfiniteAmmo>false</InfiniteAmmo>
<EnableContainerDrops>true</EnableContainerDrops>
<SpawnShipTimeMultiplier>0</SpawnShipTimeMultiplier>
<ProceduralDensity>0.35</ProceduralDensity>
<ProceduralSeed>0</ProceduralSeed>
<DestructibleBlocks>true</DestructibleBlocks>
<EnableIngameScripts>false</EnableIngameScripts>
<ViewDistance>15000</ViewDistance>
<EnableToolShake>true</EnableToolShake>
<VoxelGeneratorVersion>4</VoxelGeneratorVersion>
<EnableOxygen>true</EnableOxygen>
<EnableOxygenPressurization>true</EnableOxygenPressurization>
<Enable3rdPersonView>true</Enable3rdPersonView>
<EnableEncounters>true</EnableEncounters>
<EnableConvertToStation>true</EnableConvertToStation>
<StationVoxelSupport>false</StationVoxelSupport>
<EnableSunRotation>true</EnableSunRotation>
<EnableRespawnShips>true</EnableRespawnShips>
<ScenarioEditMode>false</ScenarioEditMode>
<Scenario>false</Scenario>
<CanJoinRunning>false</CanJoinRunning>
<PhysicsIterations>8</PhysicsIterations>
<SunRotationIntervalMinutes>119.999992</SunRotationIntervalMinutes>
<EnableJetpack>true</EnableJetpack>
<SpawnWithTools>true</SpawnWithTools>
<StartInRespawnScreen>false</StartInRespawnScreen>
<EnableVoxelDestruction>true</EnableVoxelDestruction>
<MaxDrones>5</MaxDrones>
<EnableDrones>true</EnableDrones>
<EnableWolfs>false</EnableWolfs>
<EnableSpiders>false</EnableSpiders>
<FloraDensityMultiplier>1</FloraDensityMultiplier>
<EnableStructuralSimulation>false</EnableStructuralSimulation>
<MaxActiveFracturePieces>50</MaxActiveFracturePieces>
<BlockTypeLimits>
<dictionary />
</BlockTypeLimits>
<EnableScripterRole>false</EnableScripterRole>
<MinDropContainerRespawnTime>5</MinDropContainerRespawnTime>
<MaxDropContainerRespawnTime>20</MaxDropContainerRespawnTime>
<EnableTurretsFriendlyFire>false</EnableTurretsFriendlyFire>
<EnableSubgridDamage>false</EnableSubgridDamage>
<SyncDistance>3000</SyncDistance>
<ExperimentalMode>false</ExperimentalMode>
<AdaptiveSimulationQuality>true</AdaptiveSimulationQuality>
<EnableVoxelHand>true</EnableVoxelHand>
<RemoveOldIdentitiesH>0</RemoveOldIdentitiesH>
<TrashRemovalEnabled>true</TrashRemovalEnabled>
<StopGridsPeriodMin>15</StopGridsPeriodMin>
<TrashFlagsValue>1562</TrashFlagsValue>
<AFKTimeountMin>0</AFKTimeountMin>
<BlockCountThreshold>20</BlockCountThreshold>
<PlayerDistanceThreshold>500</PlayerDistanceThreshold>
<OptimalGridCount>0</OptimalGridCount>
<PlayerInactivityThreshold>0</PlayerInactivityThreshold>
<PlayerCharacterRemovalThreshold>15</PlayerCharacterRemovalThreshold>
<VoxelTrashRemovalEnabled>false</VoxelTrashRemovalEnabled>
<VoxelPlayerDistanceThreshold>5000</VoxelPlayerDistanceThreshold>
<VoxelGridDistanceThreshold>5000</VoxelGridDistanceThreshold>
<VoxelAgeThreshold>24</VoxelAgeThreshold>
<EnableResearch>true</EnableResearch>
<EnableGoodBotHints>true</EnableGoodBotHints>
<OptimalSpawnDistance>16000</OptimalSpawnDistance>
<EnableAutorespawn>true</EnableAutorespawn>
<EnableBountyContracts>true</EnableBountyContracts>
<EnableSupergridding>false</EnableSupergridding>
<EnableEconomy>false</EnableEconomy>
<DepositsCountCoefficient>2</DepositsCountCoefficient>
<DepositSizeDenominator>30</DepositSizeDenominator>
<WeatherSystem>true</WeatherSystem>
<HarvestRatioMultiplier>1</HarvestRatioMultiplier>
<TradeFactionsCount>15</TradeFactionsCount>
<StationsDistanceInnerRadius>10000000</StationsDistanceInnerRadius>
<StationsDistanceOuterRadiusStart>10000000</StationsDistanceOuterRadiusStart>
<StationsDistanceOuterRadiusEnd>30000000</StationsDistanceOuterRadiusEnd>
<EconomyTickInSeconds>1200</EconomyTickInSeconds>
<SimplifiedSimulation>false</SimplifiedSimulation>
<SuppressedWarnings />
<EnablePcuTrading>true</EnablePcuTrading>
<FamilySharing>true</FamilySharing>
<EnableSelectivePhysicsUpdates>false</EnableSelectivePhysicsUpdates>
<PredefinedAsteroids>true</PredefinedAsteroids>
<UseConsolePCU>false</UseConsolePCU>
<MaxPlanets>99</MaxPlanets>
<OffensiveWordsFiltering>false</OffensiveWordsFiltering>
<AdjustableMaxVehicleSpeed>true</AdjustableMaxVehicleSpeed>
</SessionSettings>
<LoadWorld>C:\Users\USERNAME\AppData\Roaming\SpaceEngineersDedicated\Saves\World</LoadWorld>
<IP>0.0.0.0</IP>
<SteamPort>8766</SteamPort>
<ServerPort>27016</ServerPort>
<AsteroidAmount>0</AsteroidAmount>
<Administrators />
<Banned />
<GroupID>0</GroupID>
<ServerName />
<WorldName>World</WorldName>
<VerboseNetworkLogging>false</VerboseNetworkLogging>
<PauseGameWhenEmpty>false</PauseGameWhenEmpty>
<MessageOfTheDay />
<MessageOfTheDayUrl />
<AutoRestartEnabled>true</AutoRestartEnabled>
<AutoRestatTimeInMin>0</AutoRestatTimeInMin>
<AutoRestartSave>true</AutoRestartSave>
<AutoUpdateEnabled>false</AutoUpdateEnabled>
<AutoUpdateCheckIntervalInMin>10</AutoUpdateCheckIntervalInMin>
<AutoUpdateRestartDelayInMin>15</AutoUpdateRestartDelayInMin>
<AutoUpdateSteamBranch />
<AutoUpdateBranchPassword />
<IgnoreLastSession>false</IgnoreLastSession>
<PremadeCheckpointPath />
<ServerDescription />
<ServerPasswordHash />
<ServerPasswordSalt>O+61kcmfFdESpxZr3sQdYQ==</ServerPasswordSalt>
<Reserved />
<RemoteApiEnabled>false</RemoteApiEnabled>
<RemoteSecurityKey>fw8j74YGyC9HnbVWwuyRSA==</RemoteSecurityKey>
<RemoteApiPort>8080</RemoteApiPort>
<Plugins />
<WatcherInterval>30</WatcherInterval>
<WatcherSimulationSpeedMinimum>0.05</WatcherSimulationSpeedMinimum>
<ManualActionDelay>5</ManualActionDelay>
<ManualActionChatMessage>Server will be shut down in {0} min(s).</ManualActionChatMessage>
<AutodetectDependencies>true</AutodetectDependencies>
<SaveChatToLog>false</SaveChatToLog>
<NetworkType>steam</NetworkType>
<ConsoleCompatibility>false</ConsoleCompatibility>
<NetworkParameters />
</MyConfigDedicated>

Binary file not shown.

View File

@ -0,0 +1,158 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-17T23:07:02+01:00",
"name": "Space Engineers",
"author": "tueye@tuworld.de",
"description": "Space Engineers is a voxel-based sandbox game set in space and on planets.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_wine-5"
],
"file_denylist": [],
"startup": "cd \/home\/container\/spaceengineers\/DedicatedServer64\/; wine \/home\/container\/spaceengineers\/DedicatedServer64\/SpaceEngineersDedicated.exe -path Z:\\\\home\\\\container\\\\config -noconsole -ignorelastsession",
"config": {
"files": "{\r\n \"config\/SpaceEngineers-Dedicated.cfg\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyConfigDedicated.SessionSettings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyConfigDedicated.SessionSettings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyConfigDedicated.SessionSettings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyConfigDedicated.SessionSettings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\",\r\n \"MyConfigDedicated.LoadWorld\": \"Z:\\\\home\\\\container\\\\config\\\\Saves\\\\{{server.build.env.WORLD_NAME}}\\\\Sandbox.sbc\",\r\n \"MyConfigDedicated.ServerPort\": \"{{server.build.default.port}}\",\r\n \"MyConfigDedicated.SteamPort\": \"{{server.build.env.STEAM_PORT}}\",\r\n \"MyConfigDedicated.ServerName\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"MyConfigDedicated.WorldName\": \"{{server.build.env.WORLD_NAME}}\",\r\n \"MyConfigDedicated.ServerDescription\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"MyConfigDedicated.RemoteApiEnabled\": \"{{server.build.env.REMOTEAPI_ENABLE}}\",\r\n \"MyConfigDedicated.RemoteApiPort\": \"{{server.build.env.REMOTEAPI_PORT}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Game ready...\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n## Define variables\r\ndlurl=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/space_engineers\"\r\nexport HOME=\/mnt\/server\r\n\r\n## Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates libsdl2-2.0-0:i386 cabextract\r\napt install -y --install-recommends wine wine64 xvfb\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\nchown -R root:root \/mnt\r\n\r\n## Install game using steamcmd\r\nmkdir $HOME\/spaceengineers\r\n.\/steamcmd.sh +login anonymous +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/spaceengineers +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Create world and config\r\nmkdir -p $HOME\/config\/Saves\r\nif [ ! -d $HOME\/config\/Saves\/World ]\r\nthen\r\n curl $dlurl\/World.zip -o \/tmp\/World.zip\r\n unzip \/tmp\/World.zip -d $HOME\/config\/Saves\/\r\nfi\r\nif [ ! -f $HOME\/config\/SpaceEngineers-Dedicated.cfg ]; then curl $dlurl\/SpaceEngineers-Dedicated.cfg -o $HOME\/config\/SpaceEngineers-Dedicated.cfg; fi\r\n\r\n## Install WineTricks\r\nexport DISPLAY=:0.0\r\nexport WINEPREFIX=$HOME\/.wine\r\nrm -r $HOME\/.wine\r\nrm -r $HOME\/.cache\r\nmkdir -p $HOME\/.wine\r\nmkdir \/tmp\/winetricks\r\ncurl https:\/\/raw.githubusercontent.com\/Winetricks\/winetricks\/master\/src\/winetricks -o \/tmp\/winetricks\/winetricks\r\nchmod +x \/tmp\/winetricks\/winetricks\r\nXvfb :0 -screen 0 1024x768x16 &\r\nenv WINEDLLOVERRIDES=\"mscoree=d;mshtml=d\" wineboot --init --force \/nogui\r\nenv \/tmp\/winetricks\/winetricks -q vcrun2017 \r\nenv \/tmp\/winetricks\/winetricks -q vcrun2013 \r\nenv \/tmp\/winetricks\/winetricks -q sound=disabled \r\nenv \/tmp\/winetricks\/winetricks -q corefonts\r\nenv \/tmp\/winetricks\/winetricks -q --force dotnet48",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "APP ID",
"description": "The ID corresponding to the game to download.",
"env_variable": "APPID",
"default_value": "298740",
"user_viewable": false,
"user_editable": false,
"rules": "required|numeric|digits_between:1,6"
},
{
"name": "Server Name",
"description": "Name of the server, appears in Steam browser.",
"env_variable": "SERVER_NAME",
"default_value": "Pterodactyl Space Engineer Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64"
},
{
"name": "World Name",
"description": "Name of your world (and of your save folder)",
"env_variable": "WORLD_NAME",
"default_value": "World",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "Server Description",
"description": "Description of the game",
"env_variable": "SERVER_DESC",
"default_value": "Pterodactyl Space Engineer Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:200"
},
{
"name": "Game Mode",
"description": "Game Mode setting: Survival, Creative",
"env_variable": "SERVER_MODE",
"default_value": "Survival",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:Survival,Creative"
},
{
"name": "Maximum Players",
"description": "",
"env_variable": "MAX_PLAYERS",
"default_value": "4",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,3"
},
{
"name": "Enable Saving",
"description": "",
"env_variable": "SAVE_ENABLED",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Auto Save Interval",
"description": "Time between auto saves specified in minutes",
"env_variable": "SAVE_INTERVAL",
"default_value": "5",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,3"
},
{
"name": "Steam Port",
"description": "Steam Port",
"env_variable": "STEAM_PORT",
"default_value": "8766",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|max:65535"
},
{
"name": "Enable Remote Api",
"description": "Enable Remote Api",
"env_variable": "REMOTEAPI_ENABLE",
"default_value": "false",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false"
},
{
"name": "Remote Api Port",
"description": "Remote Api Port",
"env_variable": "REMOTEAPI_PORT",
"default_value": "8081",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|max:65535"
},
{
"name": "WINEARCH",
"description": "WINEARCH. win32 or win64",
"env_variable": "WINEARCH",
"default_value": "win64",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|in:win32,win64"
},
{
"name": "WINEPREFIX",
"description": "WINEPREFIX",
"env_variable": "WINEPREFIX",
"default_value": "\/home\/container\/.wine",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:64"
},
{
"name": "WINEDEBUG",
"description": "WINEDEBUG: Debug Level of wine",
"env_variable": "WINEDEBUG",
"default_value": "-all",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string|max:20"
}
]
}

View File

@ -0,0 +1,22 @@
## Subnautica: Nitrox Mod
Subnautica is an open world survival action-adventure video game developed and published by Unknown Worlds Entertainment.
In it, players are free to explore the ocean on an alien planet, known as planet 4546B, after their spaceship, the Aurora, crashes on the planet's surface.
The multiplayer function is provided by the mod "Nitrox". This mod is still in alpha version and therefore not yet fully stable.
**NOTE**
To download the base game, you will need to authenticate against Steam.
Because of the normally active Steamgaurd protection, it is important to enter the Steamgaurd code.
Once the initial installation is complete, you will need to enter the Steamguard code that will be emailed to you and then reinstall the server.
This will only work if you receive Steamguard codes via mail. The Authenticator app is not supported.
## Server Ports
The nitrox server requires only the default Server port.
| Port | default |
|---------|---------|
| Server | any |

View File

@ -0,0 +1,130 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-02-28T17:37:13+01:00",
"name": "Subnautica",
"author": "tueye@tuworld.de",
"description": "Subnautica is an open world survival action-adventure video game developed and published by Unknown Worlds Entertainment. In it, players are free to explore the ocean on an alien planet, known as planet 4546B, after their spaceship, the Aurora, crashes on the planet's surface.",
"features": null,
"images": [
"quay.io\/pterodactyl\/core:mono"
],
"startup": ".\/start.sh",
"config": {
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"ServerPort\": \"{{server.build.default.port}}\",\r\n \"SaveInterval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"DisableAutoSave\": \"{{server.build.env.SAVE_DISABLE}}\",\r\n \"SaveName\": \"{{server.build.env.SAVE_NAME}}\",\r\n \"ServerPassword\": \"{{server.build.env.SUBNAUTICA_PASSWORD}}\",\r\n \"AdminPassword\": \"{{server.build.env.SUBNAUTICA_ADMIN_PASSWORD}}\",\r\n \"GameMode\": \"{{server.build.env.SERVER_MODE}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Server is waiting for players!\"\r\n}",
"logs": "{}",
"stop": "stop"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates nuget git\r\n\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\nmkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## Install Nitrox using git\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\ngit clone --recursive https:\/\/github.com\/SubnauticaNitrox\/Nitrox.git --branch ${NITROX_VERSION} $HOME\/nitrox\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n\r\n## Prepare building Nitrox\r\ncd $HOME\/nitrox\r\nnuget restore\r\n\r\n\r\n## Create path files to Subnautica Install-Dir\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\ncp $HOME\/nitrox\/DevVars.targets.example $HOME\/nitrox\/DevVars.targets\r\nsed -i 's#<SubnauticaDir>C:\\\\Program Files\\\\Epic Games\\\\Subnautica<\/SubnauticaDir>#<SubnauticaDir>\/mnt\/server\/subnautica<\/SubnauticaDir>#' $HOME\/nitrox\/DevVars.targets\r\n\r\n\r\n## Build Nitrox\r\nmsbuild\r\n\r\n\r\n## Configure server startup config\r\necho \"#!\/bin\/sh\r\nexport MONO_PATH=$MONO_PATH:\/home\/container\/nitrox\/NitroxModel-Subnautica\/bin\/Debug\/\r\nmono .\/nitrox\/NitroxServer-Subnautica\/bin\/Debug\/NitroxServer-Subnautica.exe\" > \/mnt\/server\/start.sh\r\nchmod +x \/mnt\/server\/start.sh\r\n\r\n\r\n## Create Config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat <<EOT > $HOME\/server.cfg\r\n # Server settings can be changed here\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n MaxConnections=100\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=PROTOBUF\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\nEOT\r\nfi",
"container": "mono:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "APP ID",
"description": "The ID corresponding to the game to download.",
"env_variable": "APPID",
"default_value": "264710",
"user_viewable": false,
"user_editable": false,
"rules": "required|numeric|digits_between:1,6"
},
{
"name": "Steam-Username",
"description": "Your Steam-Account SUername",
"env_variable": "STEAM_USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64"
},
{
"name": "Steam-Password",
"description": "Your Steam Account Password",
"env_variable": "STEAM_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64"
},
{
"name": "Steam-GuardCode",
"description": "Yout Steam Guard Code",
"env_variable": "STEAM_GUARDCODE",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:6"
},
{
"name": "Nitrox Version",
"description": "Which version of Nitrox to install and use. Enter Github tags or branch name.",
"env_variable": "NITROX_VERSION",
"default_value": "1.4.0.0",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|between:3,12"
},
{
"name": "Auto Save Interval",
"description": "Time between auto saves specified in milliseconds",
"env_variable": "SAVE_INTERVAL",
"default_value": "120000",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:6,7"
},
{
"name": "Disable Auto Save",
"description": "Disables Auto Save: False \/ True",
"env_variable": "SAVE_DISABLE",
"default_value": "False",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:True,False"
},
{
"name": "Save Name",
"description": "The save name for the server.",
"env_variable": "SAVE_NAME",
"default_value": "world",
"user_viewable": true,
"user_editable": true,
"rules": "alpha_dash|between:1,100"
},
{
"name": "Server Password",
"description": "Password neccessary for connecting to the Server",
"env_variable": "SUBNAUTICA_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|between:3,12"
},
{
"name": "Admin Password",
"description": "If specified, players must provide this password to gain access to administrator commands on the server.",
"env_variable": "SUBNAUTICA_ADMIN_PASSWORD",
"default_value": "PleaseChangeMe",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|between:3,12"
},
{
"name": "Game Mode",
"description": "Game Mode setting: SURVIVAL, FREEDOM, HARDCORE, CREATIVE",
"env_variable": "SERVER_MODE",
"default_value": "SURVIVAL",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:SURVIVAL,FREEDOM,HARDCORE,CREATIVE"
}
]
}

View File

@ -0,0 +1,22 @@
# Valheim Plus Mod
## Valheim
A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage!
https://store.steampowered.com/app/892970/Valheim/
## Plus Mod
A HarmonyX Mod aimed at improving the gameplay quality of Valheim. The mod includes several different main features including modifiers to ingame stats of players, buildings and entities and a sophisticated system to build and place objects with high precision and a system to modify already placed objects with high precision. The general goal is to provide V+ as a base modification for your gameplay to increase quality of life, change difficulty or have a better experience in general. The mod also comes with a version and configuration control system for servers and users, allowing servers to make sure that only people with the same configuration are able to join their servers.
Support: https://github.com/valheimPlus/ValheimPlus
Discord: https://discord.gg/AmH6Va97GT
***!!! ATTENTION !!!***
***All (Server + Clients) need to have a installed Valheim Plus Mod !!!!***
## Server Ports
| Port | default |
|-------|---------|
| Game | 2456 |
| Query | 2457 |

View File

@ -0,0 +1,140 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-03-08T17:51:46+01:00",
"name": "Valheim Plus Mod",
"author": "info@goover.de",
"description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_source"
],
"file_denylist": [],
"startup": "export templdpath=$LD_LIBRARY_PATH; export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=.\/doorstop_libs:$LD_LIBRARY_PATH; export LD_PRELOAD=libdoorstop_x64.so:$LD_PRELOAD; export LD_LIBRARY_PATH=.\/linux64:$LD_LIBRARY_PATH; export SteamAppId=892970; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public ${PUBLIC} > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc1 ca-certificates unzip jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## 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\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 ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH\r\nrm -fR $MATCH\r\n\r\nchmod u+x start_server_bepinex.sh",
"container": "debian:buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Name",
"description": "Name that appears in server browser.",
"env_variable": "SERVER_NAME",
"default_value": "My Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60"
},
{
"name": "Server Password",
"description": "Server password.",
"env_variable": "PASSWORD",
"default_value": "secret",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|min:5|max:20"
},
{
"name": "World Name",
"description": "Name to load if switching between multiple saved worlds.",
"env_variable": "WORLD",
"default_value": "Dedicated",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "App ID",
"description": "Valheim steam app id for auto updates.",
"env_variable": "SRCDS_APPID",
"default_value": "896660",
"user_viewable": true,
"user_editable": false,
"rules": "nullable|numeric"
},
{
"name": "LD Library Path",
"description": "Required to load server libraries.",
"env_variable": "LD_LIBRARY_PATH",
"default_value": ".\/linux64",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
},
{
"name": "Auto Update",
"description": "",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "GITHUB_PACKAGE",
"description": "",
"env_variable": "GITHUB_PACKAGE",
"default_value": "valheimPlus\/ValheimPlus",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:40"
},
{
"name": "Version",
"description": "",
"env_variable": "VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "MATCH",
"description": "",
"env_variable": "MATCH",
"default_value": "UnixServer.zip",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20"
},
{
"name": "Public Server",
"description": "",
"env_variable": "PUBLIC",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
},
{
"name": "Filter",
"description": "",
"env_variable": "FILTER",
"default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d",
"user_viewable": false,
"user_editable": false,
"rules": "string"
},
{
"name": "Shutdown Command",
"description": "",
"env_variable": "STOP",
"default_value": "kill -2 $!; wait;",
"user_viewable": false,
"user_editable": false,
"rules": "required|string"
}
]
}

View File

@ -1,4 +1,4 @@
# Valheim Server # Valheim
A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage! A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odins patronage!
https://store.steampowered.com/app/892970/Valheim/ https://store.steampowered.com/app/892970/Valheim/

View File

@ -4,12 +4,14 @@
"version": "PTDL_v1", "version": "PTDL_v1",
"update_url": null "update_url": null
}, },
"exported_at": "2021-02-10T11:36:40-06:00", "exported_at": "2021-02-17T16:43:58+01:00",
"name": "Valheim", "name": "Valheim",
"author": "magi1053@outlook.com", "author": "magi1053@outlook.com",
"description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.",
"features": null, "features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_source", "images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_source"
],
"startup": ".\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", "startup": ".\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!",
"config": { "config": {
"files": "{}", "files": "{}",
@ -41,7 +43,7 @@
"default_value": "secret", "default_value": "secret",
"user_viewable": true, "user_viewable": true,
"user_editable": true, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|min:5|max:20"
}, },
{ {
"name": "World Name", "name": "World Name",
@ -87,6 +89,15 @@
"user_viewable": false, "user_viewable": false,
"user_editable": false, "user_editable": false,
"rules": "required|string" "rules": "required|string"
},
{
"name": "Auto Update",
"description": "",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
} }
] ]
} }

View File

@ -35,7 +35,7 @@ Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gam
This is a generic one size fit's all egg that supports srcds game servers. This is a generic one size fit's all egg that supports srcds game servers.
This is not for games like Counter Strike 1.6 which is an HLDS title. See [HLDS server](/source_servers/hlds_server) This is not for games like Counter Strike 1.6 which is an HLDS title. See [HLDS server](/steamcmd_servers/hlds_server)
### Port Requirements ### Port Requirements
| Port | default | | Port | default |
@ -67,4 +67,4 @@ Nine distinct classes provide a broad range of tactical abilities and personalit
### Port Requirements ### Port Requirements
| Port | default | | Port | default |
|----------|---------| |----------|---------|
| Game | 27015 | | Game | 27015 |

View File

@ -4,7 +4,7 @@
"version": "PTDL_v1", "version": "PTDL_v1",
"update_url": null "update_url": null
}, },
"exported_at": "2021-01-13T22:27:35+00:00", "exported_at": "2021-04-27T20:49:27+01:00",
"name": "Teamspeak3 Server", "name": "Teamspeak3 Server",
"author": "support@pterodactyl.io", "author": "support@pterodactyl.io",
"description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.", "description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.",
@ -21,7 +21,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y tar curl jq bzip2\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(curl -sSL https:\/\/teamspeak.com\/versions\/server.json | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2\" \r\ncurl -L http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar -xvj --strip-components=1\r\n\r\nrm teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2", "script": "#!\/bin\/bash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y tar curl jq bzip2\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(curl -sSL https:\/\/teamspeak.com\/versions\/server.json | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2\"\r\ncurl -L http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar -xvj --strip-components=1",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }

View File

@ -1,13 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-01-30T20:47:45-05:00", "exported_at": "2021-04-11T13:17:20+00:00",
"name": "OpenTTD Server", "name": "OpenTTD Server",
"author": "admin@justmyrandomstuff.com", "author": "admin@justmyrandomstuff.com",
"description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.",
"image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", "features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_ubuntu"
],
"file_denylist": [],
"startup": ".\/openttd -D", "startup": ".\/openttd -D",
"config": { "config": {
"files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\"\r\n }\r\n }\r\n}",
@ -17,7 +22,7 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.xz\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg", "script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.*\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg",
"container": "alpine:3.10", "container": "alpine:3.10",
"entrypoint": "ash" "entrypoint": "ash"
} }
@ -28,8 +33,8 @@
"description": "The name shown in the serverlist", "description": "The name shown in the serverlist",
"env_variable": "srv_name", "env_variable": "srv_name",
"default_value": "OpenTTD Server", "default_value": "OpenTTD Server",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:20" "rules": "required|string|max:20"
}, },
{ {
@ -37,26 +42,26 @@
"description": "Show the server in the serverlist on the client, true or false", "description": "Show the server in the serverlist on the client, true or false",
"env_variable": "srv_advertise", "env_variable": "srv_advertise",
"default_value": "true", "default_value": "true",
"user_viewable": 1, "user_viewable": true,
"user_editable": 1, "user_editable": true,
"rules": "required|string|max:5" "rules": "required|string|max:5"
}, },
{ {
"name": "OpenTTD Version", "name": "OpenTTD Version",
"description": "The version of OpenTTD i.e. 1.10.1", "description": "The version of OpenTTD i.e. 1.10.1",
"env_variable": "OPENTTD_VERSION", "env_variable": "OPENTTD_VERSION",
"default_value": "1.10.1", "default_value": "1.11.0",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|string|max:20" "rules": "required|string|max:20"
}, },
{ {
"name": "OpenGFX Version", "name": "OpenGFX Version",
"description": "The OpenGFX Version i.e. 0.6.0", "description": "The OpenGFX Version i.e. 0.6.0",
"env_variable": "OPENGFX_VERSION", "env_variable": "OPENGFX_VERSION",
"default_value": "0.6.0", "default_value": "0.6.1",
"user_viewable": 1, "user_viewable": true,
"user_editable": 0, "user_editable": false,
"rules": "required|string|max:20" "rules": "required|string|max:20"
} }
] ]

15
veloren/README.md Normal file
View File

@ -0,0 +1,15 @@
# Veloren
### From their [Site](https://veloren.net/)
Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.
Veloren is fully open-source, licensed under GPL 3. It uses original graphics, musics and other assets created by its community. Being contributor-driven, its development community and user community is one and the same: developers, players, artists and musicians come together to develop the game.
### Server Ports
Ports required to run the server in a table format.
| Port | default |
|---------|---------|
| Game | 14004 |
| Metrics | 14005 |
#### Mods/Plugins may require ports to be added to the server.

31
veloren/egg-veloren.json Normal file
View File

@ -0,0 +1,31 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-04-23T22:44:14+00:00",
"name": "Veloren",
"author": "parker@parkervcp.com",
"description": "Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.",
"features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
],
"file_denylist": [],
"startup": ".\/veloren-server-cli -b",
"config": {
"files": "{\r\n \"userdata\/server\/server_config\/settings.ron\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \" gameserver_address\": \" gameserver_address: \\\"0.0.0.0:{{server.build.default.port}}\\\",\",\r\n\t \" server_name\": \" server_name: \\\"{{server.build.env.SERVER_NAME}}\\\",\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Server is ready to accept connections\"\r\n}",
"logs": "{}",
"stop": "shutdown 10"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git-lfs\r\n\r\nmkdir -p \/mnt\/server\/assets\r\n\r\ncd \/tmp.\r\n\r\ngit clone https:\/\/gitlab.com\/veloren\/veloren.git\r\n\r\n## build veloran server cli\r\nexport VELOREN_USERDATA_STRATEGY=executable\r\ncd veloren\r\necho -e \"building veloran server, this is gonna take a bit\" \r\ncargo build --bin veloren-server-cli --release\r\n\r\ncp -f target\/release\/veloren-server-cli \/mnt\/server\/\r\ncp -Rf assets\/{common,server,world} \/mnt\/server\/assets\/\r\n\r\n## get config from repo because there is no better way to get it.\r\nmkdir -p \/mnt\/server\/userdata\/server\/server_config\/\r\nif [ ! -f \/mnt\/server\/userdata\/server\/server_config\/settings.ron ]; then\r\n echo -e \"getting default config from git repo\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/veloren\/settings.ron > \/mnt\/server\/userdata\/server\/server_config\/settings.ron\r\n echo -e \"config pulled\"\r\nfi\r\n\r\necho -e \"install complete\"",
"container": "rust:slim-buster",
"entrypoint": "bash"
}
},
"variables": []
}

20
veloren/settings.ron Normal file
View File

@ -0,0 +1,20 @@
(
gameserver_address: "0.0.0.0:14004",
metrics_address: "0.0.0.0:14005",
auth_server_address: Some("https://auth.veloren.net"),
max_players: 100,
world_seed: 25269,
server_name: "Veloren Alpha",
start_time: 32400,
map_file: None,
max_view_distance: Some(65),
banned_words_files: [],
max_player_group_size: 6,
client_timeout: (
secs: 40,
nanos: 0,
),
spawn_town: None,
safe_spawn: true,
max_player_for_kill_broadcast: None,
)

View File

@ -1,13 +1,18 @@
{ {
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": { "meta": {
"version": "PTDL_v1" "version": "PTDL_v1",
"update_url": null
}, },
"exported_at": "2020-10-11T13:25:55-07:00", "exported_at": "2021-04-11T13:56:42+02:00",
"name": "Lavalink", "name": "Lavalink",
"author": "damuffin36@gmail.com", "author": "damuffin36@gmail.com",
"description": "Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.\r\nDescription taken from https:\/\/github.com\/Frederikam\/Lavalink", "description": "Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.\r\nDescription taken from https:\/\/github.com\/Frederikam\/Lavalink",
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-13", "features": null,
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-13"
],
"file_denylist": [],
"startup": "java -jar Lavalink.jar", "startup": "java -jar Lavalink.jar",
"config": { "config": {
"files": "{\r\n \"application.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"server.address\": \"0.0.0.0\",\r\n \"server.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "files": "{\r\n \"application.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"server.address\": \"0.0.0.0\",\r\n \"server.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
@ -17,10 +22,10 @@
}, },
"scripts": { "scripts": {
"installation": { "installation": {
"script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -L -o Lavalink.jar https:\/\/github.com\/frederikam\/Lavalink\/releases\/latest\/download\/Lavalink.jar\r\n\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/Frederikam\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho -e \"install complete\"\r\nexit 0", "script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -L -o Lavalink.jar https:\/\/github.com\/freyacodes\/Lavalink\/releases\/latest\/download\/Lavalink.jar\r\n\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/freyacodes\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho -e \"install complete\"\r\nexit 0",
"container": "debian:buster-slim", "container": "debian:buster-slim",
"entrypoint": "bash" "entrypoint": "bash"
} }
}, },
"variables": [] "variables": []
} }