Merge pull request #4 from parkervcp/master

Update
This commit is contained in:
Destructor 2023-10-18 22:51:52 +02:00 committed by GitHub
commit 45010095cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 548 additions and 136 deletions

View File

@ -57,6 +57,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
## [Generic Languages](/generic)
* [C#](/generic/c%23/)
* [elixir](/generic/elixir/)
* [dart](/generic/dart/)
* [deno](/generic/deno/)
* [golang](/generic/golang/)
@ -152,6 +153,8 @@ If you are reading this it looks like you are looking to add an egg to your serv
* GTA
* [GTAC](game_eggs/gta/gtac)
[Kerbal Space Program](game_eggs/ksp)
[League Sandbox](game_eggs/leaguesandbox)
[Los Angeles Crimes](game_eggs/losangelescrimes)
@ -401,6 +404,10 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [languagetool](/software/languagetool)
### Meilisearch
* [Meilisearch](/software/meilisearch)
### Owncast
* [owncast](/software/owncast)

View File

@ -4,13 +4,13 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-07-29T17:52:45+02:00",
"exported_at": "2023-09-20T21:17:10+02:00",
"name": "JMusicBot",
"author": "parker@parkervcp.com",
"description": "A Discord music bot that's easy to set up and run yourself!",
"features": null,
"docker_images": {
"ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16"
"ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17"
},
"file_denylist": [],
"startup": "java -Dnogui=true -jar JMusicBot.jar",
@ -23,7 +23,7 @@
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/config.txt\"\r\nPLAYLIST_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/example_playlist.txt\"\r\n\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\/jagrosh\/MusicBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/jagrosh\/MusicBot\/releases\")\r\nMATCH=JMusicBot\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_URL=$(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_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## JMusicBot Setup\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating JMusicBot...\\n\"\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n echo -e \"Updating JMusicBot.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"JMusicBot.jar-old\")'\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\\n\"\r\ncurl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"Updating config.txt to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.txt-old\")'\r\n mv -f config.txt config.txt-old\r\nfi\r\necho -e \"Running: curl -sSLo config.txt ${CONFIG_LINK}\\n\"\r\ncurl -sSLo config.txt ${CONFIG_LINK}\r\n\r\n[ ! -d Playlists ] && mkdir Playlists\r\ncd Playlists\r\nif [ -f example_playlist.txt ]; then\r\n echo -e \"example_playlist.txt already exists. Skipping default download.\"\r\nelse\r\n echo -e \"example_playlist.txt not found. Downloading default example_playlist...\"\r\n echo -e \"Running: curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\"\r\n curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\r\nfi\r\n\r\necho -e \"\\nJMusicBot Successfully Installed!\"",
"container": "debian:bullseye-slim",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "\/bin\/bash"
}
},
@ -45,7 +45,7 @@
"default_value": "Change This To Your Discord User ID",
"user_viewable": true,
"user_editable": true,
"rules": "required|digits:18",
"rules": "required|digits_between:17,18",
"field_type": "text"
},
{

View File

@ -4,7 +4,7 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-08-22T18:48:00+02:00",
"exported_at": "2023-09-20T20:25:51+02:00",
"name": "Muse",
"author": "hello@apollo.moe",
"description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck",
@ -22,7 +22,7 @@
},
"scripts": {
"installation": {
"script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\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 -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --prod #--frozen-lockfile\r\n#sed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"",
"script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install git curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\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 -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --prod #--frozen-lockfile\r\n#sed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"",
"container": "node:lts-bullseye-slim",
"entrypoint": "bash"
}

View File

@ -4,13 +4,14 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2022-10-02T18:28:42+02:00",
"exported_at": "2023-09-02T23:24:58+00:00",
"name": "PhantomBot",
"author": "mail@wuffy.eu",
"description": "PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:java_11": "ghcr.io\/parkervcp\/yolks:java_11"
"Java 16 [DEPRECATED]": "ghcr.io\/parkervcp\/yolks:java_16",
"Java 19": "ghcr.io\/parkervcp\/yolks:java_19"
},
"file_denylist": [],
"startup": "java --add-opens java.base\/java.lang=ALL-UNNAMED -Djava.security.policy=config\/security -Dinteractive -Xms1m -Dfile.encoding=UTF-8 -jar PhantomBot.jar",
@ -30,7 +31,7 @@
"variables": [
{
"name": "Version",
"description": "latest = Latest Stable\r\nmaster = latest Github",
"description": "latest = Latest Stable\r\nmaster = latest Github\r\n3.9.0.7 = Latest known working with Java 16",
"env_variable": "RELEASE_VERSION",
"default_value": "latest",
"user_viewable": true,

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-04-23T18:47:53+02:00",
"name": "SogeBot",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "sogeBot - Free Twitch Bot built on Node.js https:\/\/sogebot.xyz\/",
"features": null,
"docker_images": {
@ -22,7 +22,7 @@
},
"scripts": {
"installation": {
"script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: info@goover.de\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip jq python3 build-essential ca-certificates\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\nMATCH=sogeBot\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\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\ncurl -sSL -o sogeBot.zip ${DOWNLOAD_LINK}\r\n\r\nunzip -o sogeBot.zip\r\nrm -rf sogeBot.zip\r\n\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm install -g npm@8\r\n\r\nnpm install --verbose --force\r\n\r\necho -e \"install completed\"\r\nexit 0",
"script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: eggs@goover.dev\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip jq python3 build-essential ca-certificates\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\nMATCH=sogeBot\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\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\ncurl -sSL -o sogeBot.zip ${DOWNLOAD_LINK}\r\n\r\nunzip -o sogeBot.zip\r\nrm -rf sogeBot.zip\r\n\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm install -g npm@8\r\n\r\nnpm install --verbose --force\r\n\r\necho -e \"install completed\"\r\nexit 0",
"container": "node:18-bullseye-slim",
"entrypoint": "bash"
}

View File

@ -53,6 +53,8 @@
* GTA
* [GTAC](gta/gtac)
[Kerbal Space Program](ksp)
[Los Angeles Crimes](losangelescrimes)
[League Sandbox](leaguesandbox)

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-03-04T15:04:21+01:00",
"name": "Among Us - Impostor Server",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.",
"features": null,
"docker_images": {

12
game_eggs/ksp/README.md Normal file
View File

@ -0,0 +1,12 @@
# Kerbal Space Program
[Dark Multiplayer](https://d-mp.org/)
Dark Multiplayer is an up-to-date mod adding the long awaited multiplayer feature to Kerbal Space Program while including support for other mods!
## Server Ports
Ports required to run the server in a table format.
| Port | default |
|---------|---------|
| Game | 6702 |

View File

@ -0,0 +1,92 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-09-22T19:54:35+02:00",
"name": "KSP DMP",
"author": "rufanyin29@gmail.com",
"description": "Dark Multiplayer mod server for Kerbal Space Program",
"features": null,
"docker_images": {
"Mono": "ghcr.io\/parkervcp\/yolks:mono_latest"
},
"file_denylist": [],
"startup": "mono DMPServer.exe",
"config": {
"files": "{\r\n \"Config\/Settings.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"modpackMode\": \"{{server.build.env.MODPACKMODE}}\",\r\n \"warpMode\": \"{{server.build.env.WARPMODE}}\",\r\n \"gameMode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"gameDifficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"whitelisted\": \"{{server.build.env.WHITELIST}}\",\r\n \"serverName\": \"{{server.build.env.SERVERNAME}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Ready!\"\r\n}",
"logs": "{}",
"stop": "\/exit"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nV=$(curl -s https:\/\/d-mp.org\/downloads | grep \"DMP Server\" | awk -F 'href=\"' 'NR==2 {print $2}' | awk -F '\"' '{print $1}') # \/builds\/release\/v0.3.8.3\/DMPServer.zip\r\n\r\necho \"Download link: https:\/\/d-mp.org${V}\"\r\ncurl -sSL -o DMPServer.zip https:\/\/d-mp.org${V}\r\n\r\nunzip -o DMPServer.zip\r\nmv DMPServer\/* .\/\r\n\r\nrm -rf DMPServer\r\nrm DMPServer.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Mod Pack Mode",
"description": "Specify the modpack type.",
"env_variable": "MODPACKMODE",
"default_value": "NONE",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:NONE,CKAN,GAMEDATA",
"field_type": "text"
},
{
"name": "Warp Mode",
"description": "Specify the warp type.",
"env_variable": "WARPMODE",
"default_value": "SUBSPACE",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:MCW_FORCE,MCW_VOTE,MCW_LOWEST,SUBSPACE_SIMPLE,SUBSPACE,NONE",
"field_type": "text"
},
{
"name": "Game Mode",
"description": "Specify the game type.",
"env_variable": "GAMEMODE",
"default_value": "SANDBOX",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:SANDBOX,CAREER,SCIENCE",
"field_type": "text"
},
{
"name": "Game Difficulty",
"description": "Specify the gameplay difficulty of the server.",
"env_variable": "DIFFICULTY",
"default_value": "NORMAL",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:EASY,NORMAL,MODERATE,HARD,CUSTOM",
"field_type": "text"
},
{
"name": "Whitelisted",
"description": "Enable white-listing.",
"env_variable": "WHITELIST",
"default_value": "False",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|in:True,False",
"field_type": "text"
},
{
"name": "Server Name",
"description": "Name of the server.",
"env_variable": "SERVERNAME",
"default_value": "DMP Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:48",
"field_type": "text"
}
]
}

View File

@ -4,7 +4,7 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2022-07-19T11:52:55-04:00",
"exported_at": "2023-07-06T01:51:39+00:00",
"name": "RedM",
"author": "parker@parkervcp.com",
"description": "A new RedM egg for the latest builds due to recent changes in RedM",
@ -22,7 +22,7 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/ash\r\n# CFx Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources \/mnt\/server\/logs\/\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${CFX_VERSION}\" == \"recommended\" ]] || [[ -z ${CFX_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${CFX_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\necho \"install complete\"",
"script": "#!\/bin\/ash\r\n# CFx Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources \/mnt\/server\/logs\/\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${CFX_VERSION}\" == \"recommended\" ]] || [[ -z ${CFX_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${CFX_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Po '(?<=href=\")[^\"]*' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\necho \"install complete\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}

View File

@ -12,3 +12,18 @@ Set in a brutally unforgiving post-apocalyptic world overrun by the undead, 7 Da
| Game | 26900 - 26902 |
| RCON | 8080 - 8081 |
| webmap | 8082 |
## Sample ignore file for backups
By default the backup includes a lot of files that can be reacquired by pulling the image. Using the following file limits backups to the files that are unique to your server: your config files, logs, saves and generated worlds.
```
# Ignore all
*
# Except server config file
!serverconfig.xml
# Except server data dir
!.local/
# Except logs
!logs/
```

View File

@ -6,7 +6,7 @@
},
"exported_at": "2021-11-26T14:44:12+01:00",
"name": "Citadel: Forged with Fire",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Citadel: Forged With Fire is a massive online sandbox RPG set in the mystical world of Ignus. Featuring magic, spellcasting, building, exploring and crafting as you fight to make a name for yourself and achieve notoriety across the land.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-10-07T17:08:45+02:00",
"name": "Craftopia",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Craftopia is the brand new multiplayer survival action game made in Japan. We combined many features we find enjoyable, such as hunting, farming, hack-and-slash, building, automation to develop this game.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-01-04T11:28:40+01:00",
"name": "Eco",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-04-25T19:31:11+02:00",
"name": "Empyrion: Galactic Survival",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Empyrion: Galactic Survival dedicated server",
"features": null,
"docker_images": {

View File

@ -1,32 +1,32 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2022-01-20T12:55:06-05:00",
"exported_at": "2023-10-07T22:46:51+08:00",
"name": "Hurtworld",
"author": "brycea@terrahost.cloud",
"description": "Hurtworld is a hardcore multiplayer survival FPS with a focus on deep survival progression that doesn't become trivial once you establish some basic needs. Built for hardcore gamers, Hurtworld aims to punish.",
"features": [
"steam_disk_space"
],
"images": [
"quay.io\/parkervcp\/pterodactyl-images:debian_source"
],
"docker_images": {
"ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian"
},
"file_denylist": [],
"startup": ".\/Hurtworld.x86_64 -batchmode -nographics -exec \"host {{SERVER_PORT}};queryport {{QUERY_PORT}};maxplayers {{MAX_PLAYERS}};servername {{HOSTNAME}};creativemode ${CREATIVE_MODE};${ADMINS}\" -logfile $1",
"startup": ".\/Hurtworld.x86_64 -batchmode -nographics -exec \"host {{SERVER_PORT}};queryport {{QUERY_PORT}};maxplayers {{MAX_PLAYERS}};servername {{HOSTNAME}};creativemode {{CREATIVE_MODE}};addadmin {{ADMINS}}\" -logfile $1",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"orphaned items\"\r\n}",
"logs": "{}",
"stop": "^C"
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so",
"container": "debian:buster-slim",
"entrypoint": "bash"
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## copy 32-bit steamclient.so\r\ncp -v linux32\/steamclient.so ..\/Hurtworld_Data\/Plugins\/x86\/steamclient.so\r\n\r\n## copy 64-bit steamclient.so\r\ncp -v linux64\/steamclient.so ..\/Hurtworld_Data\/Plugins\/x86_64\/steamclient.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "\/bin\/bash"
}
},
"variables": [
@ -37,16 +37,18 @@
"default_value": "405100",
"user_viewable": true,
"user_editable": false,
"rules": "required|regex:\/^(405100)$\/"
"rules": "required|in:405100",
"field_type": "text"
},
{
"name": "Query Port",
"description": "Server Query Default Port",
"description": "Server Query Default Port.",
"env_variable": "QUERY_PORT",
"default_value": "13871",
"user_viewable": true,
"user_editable": false,
"rules": "required|string"
"rules": "required|string",
"field_type": "text"
},
{
"name": "Max Players",
@ -55,7 +57,8 @@
"default_value": "60",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60"
"rules": "required|string|max:60",
"field_type": "text"
},
{
"name": "Server Name",
@ -64,7 +67,38 @@
"default_value": "A Hurtworld Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:50"
"rules": "required|string|max:50",
"field_type": "text"
},
{
"name": "Server Owner Guid",
"description": "Steam id of the server owner.",
"env_variable": "ADMINS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:17",
"field_type": "text"
},
{
"name": "Creative Mode",
"description": "Turn creative mode on and off (free build). Value as 0 for off, 1 for on.",
"env_variable": "CREATIVE_MODE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "AUTO_UPDATE",
"description": "Disabling or enabling automated updates on boot.",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
}
]
}

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-10-16T09:21:36+02:00",
"name": "Rising World Java Legacy",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-10-23T09:33:48+02:00",
"name": "Rising World Unity",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2021-11-14T11:16:57+01:00",
"name": "SCP:SL",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Egg for SCP: Secret Laboratory Dedicated Linux Server",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-01-09T14:18:18+01:00",
"name": "SCP:SL - Exiled",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2021-11-14T11:18:28+01:00",
"name": "SCP: Secret Laboratory - MultiAdmin",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "The latest vanilla version of SCP:SL running through MultiAdmin for compatibility. LocalAdmin does not work. No SMod2.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-10-24T20:12:31+02:00",
"name": "Solace Crafting",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Open-world fantasy survival RPG. Borderless distance-based difficulty with player built fast-travel, modular-building, and town management.",
"features": null,
"docker_images": {

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-01-20T12:58:19-05:00",
"name": "Soldat",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Soldat is a unique 2D (side-view) multiplayer action game. It has been influenced by the best of games such as Liero, Worms, Quake, and Counter-Strike and provides a fast-paced gaming experience with tons of blood and flesh. Soldiers fight against each other in 2D battle arenas using a deadly arsenal of military weapons, across 7 default game modes. It features 18 different weapons and 60 maps to frag away on, with full support for user created content.\r\n\r\nSteam: https:\/\/store.steampowered.com\/app\/638490\/Soldat\/",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-07-23T04:57:30-04:00",
"name": "Sons Of The Forest",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Sons of the Forest is a horror survival game and sequel to The Forest by Endnight Games, Ltd.. Sent to find a missing billionaire on a remote island, you find yourself in a cannibal-infested hellscape. Craft, build, and struggle to survive, alone or with friends.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-07-22T12:57:51+02:00",
"name": "Space Engineers",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Space Engineers is a voxel-based sandbox game set in space and on planets.",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-11-26T17:31:15+01:00",
"name": "Space Engineers - Torch Server",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Torch is the successor to SE Server Extender and gives server admins the tools they need to keep their Space Engineers servers running smoothly. It features a user interface with live management tools and a plugin system so you can run your server exactly how you'd like. Torch is still in early development so there may be bugs and incomplete features.\r\n\r\n!!!!! DO NOT CANCEL THE FIRST START, OR YOU NEED TO DELETE THE SERVER AND CREATE FROM SCRATCH !!!!",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2022-12-30T11:39:51+01:00",
"name": "Stationeers",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Stationeers Server",
"features": [
"steam_disk_space"

View File

@ -6,7 +6,7 @@
},
"exported_at": "2023-03-03T16:16:01+01:00",
"name": "Valheim BepINex",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx",
"features": [
"steam_disk_space"

View File

@ -4,9 +4,9 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-03-03T16:15:23+01:00",
"exported_at": "2023-10-07T06:47:10+02:00",
"name": "Valheim Plus Mod",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.",
"features": [
"steam_disk_space"
@ -184,7 +184,7 @@
"name": "[V+] Github Package",
"description": "",
"env_variable": "GITHUB_PACKAGE",
"default_value": "valheimPlus\/ValheimPlus",
"default_value": "Grantapher\/ValheimPlus",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:40",

View File

@ -5,6 +5,11 @@
[C#](https://learn.microsoft.com/en-us/dotnet/csharp//)
A generic C# language egg running with dotnet
### [Elixir](elixir)
[elixir](https://elixir-lang.org/)
A generic Elixir language egg
### [Dart](dart)
[dart](https://dart.dev/)

View File

@ -4,7 +4,7 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-08-27T11:46:37+02:00",
"exported_at": "2023-09-13T17:51:41+02:00",
"name": "Bun",
"author": "mratox@protonmail.com",
"description": "Bun is an incredibly fast JavaScript runtime, transpiler bundler, and npm package manager all-in-one.",
@ -39,16 +39,6 @@
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Branch",
"description": "The Git branch to install.",
"env_variable": "GIT_BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n0 = false (default)\r\n1 = true",
@ -69,26 +59,6 @@
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Git Username",
"description": "Git username for authentication.",
"env_variable": "GIT_USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Access Token",
"description": "Git access token for authentication.",
"env_variable": "GIT_ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Main file",
"description": "The main file passed to the bun run command",
@ -118,6 +88,36 @@
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Branch",
"description": "The Git branch to install.",
"env_variable": "BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Username",
"description": "Git username for authentication.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Access Token",
"description": "Git access token for authentication.",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
}
]
}

22
generic/elixir/README.md Normal file
View File

@ -0,0 +1,22 @@
# Elixir Language Generic
This egg is designed to run any generic Elixir application, allowing users to pull their own Elixir source code from a Git repository.
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.
## Configuration
The server will be stuck as `starting` until the egg Start Configuration is modified. You have to edit the text to match something your bot will print for Pterodactyl panel to detect it as running.
![image](https://user-images.githubusercontent.com/10975908/126516861-c5cb4630-9f25-405c-8199-97bf5ec15a7f.png)
You can use arrays to have multiple different values when different bots are being used
```json
{
"done":[
"change this text 1",
"change this text 2"
]
}

View File

@ -0,0 +1,96 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-08-31T14:24:13+02:00",
"name": "Elixir",
"author": "mravox@proton.me",
"description": "Elixir is a functional, concurrent, high-level general-purpose programming language that runs on the BEAM virtual machine, which is also used to implement the Erlang programming language.",
"features": null,
"docker_images": {
"Elixir Latest": "ghcr.io\/parkervcp\/yolks:elixir_latest",
"Elixir 1.15": "ghcr.io\/parkervcp\/yolks:elixir_1.15",
"Elixir 1.14": "ghcr.io\/parkervcp\/yolks:elixir_1.14",
"Elixir 1.13": "ghcr.io\/parkervcp\/yolks:elixir_1.13",
"Elixir 1.12": "ghcr.io\/parkervcp\/yolks:elixir_1.12"
},
"file_denylist": [],
"startup": "if [[ -d .git ]] && [[ 0 == \"1\" ]]; then git pull; fi; mix deps.get; mix run --no-halt",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Elixir App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\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 \"${GIT_USERNAME}\" ] && [ -z \"${GIT_ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${GIT_ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git elixir repository\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 ${GIT_BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${GIT_BRANCH}'\"\r\n git clone --single-branch --branch ${GIT_BRANCH} ${GIT_ADDRESS} .\r\n fi\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "debian:bullseye-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Git Repository Address",
"description": "The Git repository address to clone .",
"env_variable": "GIT_ADDRESS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Branch",
"description": "The Git branch to install.",
"env_variable": "GIT_BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Auto Update",
"description": "Pull the latest files on startup when using a Git Repository.\r\n0 = false (default)\r\n1 = true",
"env_variable": "AUTO_UPDATE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Git Username",
"description": "Git username for authentication.",
"env_variable": "GIT_USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Access Token",
"description": "Git access token for authentication.",
"env_variable": "GIT_ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
}
]
}

View File

@ -1,19 +1,19 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2022-04-06T17:26:12+02:00",
"exported_at": "2023-10-07T07:47:03+02:00",
"name": "LanguageTool",
"author": "thomasruhl@live.de",
"description": "This egg installs a LanguageTool server\r\n\r\nLanguageTool is an Open Source proofreading software for English, French, German, Polish, Russian, and more than 20 other languages. It finds many errors that a simple spell checker cannot find.\r\n\r\nView https:\/\/languagetool.org for more information.",
"features": null,
"images": [
"ghcr.io\/pterodactyl\/yolks:java_8"
],
"docker_images": {
"ghcr.io\/parkervcp\/yolks:java_17": "ghcr.io\/parkervcp\/yolks:java_17"
},
"file_denylist": [],
"startup": "java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port {{SERVER_PORT}} --allow-origin \\\"*\\\" --public --config config.properties",
"startup": "java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port {{SERVER_PORT}} --allow-origin --public --config config.properties",
"config": {
"files": "{\r\n \"config.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"languageModel\": \"models\/\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Server started\"\r\n}",
@ -35,7 +35,8 @@
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string"
"rules": "nullable|string",
"field_type": "text"
}
]
}

View File

@ -0,0 +1,7 @@
# [Meilisearch](https://www.meilisearch.com/)
An open-source, lightning-fast, and hyper-relevant search engine that fits effortlessly into your workflow.
## Server Ports
One port needs to be allocated to run Meilisearch.

View File

@ -0,0 +1,112 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-09-12T11:04:11+02:00",
"name": "Meilisearch",
"author": "josdekurk@gmail.com",
"description": "A lightning-fast search engine that fits effortlessly into your apps, websites, and workflow.",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
},
"file_denylist": [],
"startup": ".\/meilisearch --http-addr \"0.0.0.0:{{SERVER_PORT}}\" --max-indexing-memory=\"{{SERVER_MEMORY}}mb\" $([ \"$NO_ANALYTICS\" -eq 1 ] && echo \"--no-analytics\")",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Actix runtime found; starting in Actix runtime\"\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/meilisearch\/meilisearch\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/meilisearch\/meilisearch\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-amd64\" || echo \"linux-aarch64\")\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_URL=$(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_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n## Config file\r\nFILE=\/mnt\/server\/config.toml\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config file exits\"\r\nelse \r\n echo \"Config does not exist. Making one\"\r\n curl -sSL -o config.toml https:\/\/raw.githubusercontent.com\/meilisearch\/meilisearch\/latest\/config.toml\r\nfi\r\n\r\ncurl -sSL -o meilisearch ${DOWNLOAD_URL}\r\nchmod +x meilisearch\r\n\r\n# Make the needed directory's \r\nmkdir -p \/mnt\/server\/dumps\r\nmkdir -p \/mnt\/server\/data.ms\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Master key",
"description": "In production, a Master key of at least 16 bytes is mandatory\r\nSets the instance's master key, automatically protecting all routes except GET \/health. This means you will need a valid API key to access all other endpoints.",
"env_variable": "MEILI_MASTER_KEY",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:64",
"field_type": "text"
},
{
"name": "Environment",
"description": "Configures the instance's environment. Value must be either production or development.",
"env_variable": "MEILI_ENV",
"default_value": "development",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:development,production",
"field_type": "text"
},
{
"name": "Disable analytics",
"description": "Deactivates Meilisearch's built-in telemetry when provided.",
"env_variable": "NO_ANALYTICS",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Dumps dir",
"description": "Sets the directory where Meilisearch will create dump files.",
"env_variable": "MEILI_DUMP_DIR",
"default_value": "\/home\/container\/dumps",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "DB PATH",
"description": "Designates the location where database files will be created and retrieved.",
"env_variable": "MEILI_DB_PATH",
"default_value": "\/home\/container\/data.ms",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "Log level",
"description": "Defines how much detail should be present in Meilisearch's logs.",
"env_variable": "MEILI_LOG_LEVEL",
"default_value": "INFO",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:INFO,WARN,ERROR,TRACE",
"field_type": "text"
},
{
"name": "Config Path",
"description": "Designates the location of the configuration file to load at launch.",
"env_variable": "MEILI_CONFIG_FILE_PATH",
"default_value": "\/home\/container\/config.toml",
"user_viewable": true,
"user_editable": false,
"rules": "required|string",
"field_type": "text"
},
{
"name": "Max threads",
"description": "Sets the maximum number of threads Meilisearch can use during indexing",
"env_variable": "MEILI_MAX_INDEXING_THREADS",
"default_value": "2",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer",
"field_type": "text"
}
]
}

View File

@ -17,8 +17,27 @@ After installation and successful start, browse to your <ip>:<port> and setup th
## Server Ports
Uptime Kuma requires 1 port. You can choose every port you want
Uptime Kuma requires 1 port. You can choose any port you want
| Port | default |
|---------|---------------|
| default | 3000 |
## Cloudflared, Apprise & Chromium
The latest image provides support for Cloudflared and Apprise.
### Cloudflared
With Cloudflared it is possible to create a proxy over Cloudflare without having to use an nginx proxy. More info here:
https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel
### Apprise
Apprise provides notifications for all kinds of services. Uptime Kuma has a built-in support for Apprise.
More info's here:
https://github.com/caronc/apprise#supported-notifications
### Monitor HTTP(s) - Browser Engine (Chromium)
The image supports the monitor "HTTP(s) - Browser Engine".
To use this monitor, enter the following path in the settings under "General -> Chrome/Chromium Executable" (at the bottom):
/usr/bin/chromium-browser

View File

@ -4,16 +4,16 @@
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-01-22T09:33:11+01:00",
"exported_at": "2023-10-09T19:06:53+02:00",
"name": "Uptime Kuma",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16"
"ghcr.io\/parkervcp\/apps:uptimekuma": "ghcr.io\/parkervcp\/apps:uptimekuma"
},
"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 [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}",
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then npm run setup; fi; \/usr\/local\/bin\/node \/home\/container\/server\/server.js --port={{SERVER_PORT}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"[SERVER] INFO: Listening on \"\r\n}",
@ -22,9 +22,9 @@
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# NodeJS App 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 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\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0",
"container": "node:16-bullseye-slim",
"entrypoint": "bash"
"script": "#!\/bin\/ash\r\n# Uptime Kuma App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add --no-cache git curl jq file unzip make gcc g++ python3 python3-dev libtool\r\napk add --no-cache git-lfs --repository=https:\/\/dl-cdn.alpinelinux.org\/alpine\/latest-stable\/community\r\n\r\n## npm update to latest\r\necho -e \"Updating npm to latest....\\n\"\r\nif [ -d \"\/mnt\/server\/node_modules\" ]; then\r\n rm -fR \/mnt\/server\/node_modules\r\n npm cache verify\r\nfi\r\nnpm install -g npm@latest\r\n\r\n## Uptime Kuma install & update\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\n\r\nif [ -d .git ]; then\r\n echo -e \"Updating Uptime Kuma....\\n \"\r\n npm run setup\r\nelse\r\n echo -e \"Download and installing Uptime Kuma...\\n\" \r\n git clone https:\/\/github.com\/louislam\/uptime-kuma.git .\r\n npm run setup\r\nfi\r\n\r\n## only create dir, when .git is present to prevent errors\r\nif [ -d .git ]; then\r\n mkdir -p \/mnt\/server\/data\r\nfi\r\n\r\nif [ ! -f \"\/mnt\/server\/data\/kuma.db\" ]; then\r\n cp \/mnt\/server\/db\/kuma.db \/mnt\/server\/data\/kuma.db\r\nfi\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0",
"container": "node:18-alpine",
"entrypoint": "ash"
}
},
"variables": [
@ -38,16 +38,6 @@
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Auto Update",
"description": "Pull the latest files on startup when using a GitHub repo.",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "JS file",
"description": "The file that starts the app",
@ -59,23 +49,13 @@
"field_type": "text"
},
{
"name": "Additional Node packages",
"description": "Install additional node packages.\r\n\r\nUse spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Uninstall Node packages",
"description": "Uninstall node packages.\r\n\r\nUse spaces to separate.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string",
"name": "Auto Update",
"description": "",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
}
]

View File

@ -1,25 +1,29 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1"
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2020-12-05T08:58:33+01:00",
"exported_at": "2023-10-07T18:01:49+02:00",
"name": "TS3 Manager",
"author": "info@goover.de",
"author": "eggs@goover.dev",
"description": "The Open Source Webinterface For TeamSpeak Servers",
"features": null,
"image": "quay.io\/parkervcp\/pterodactyl-images:base_debian",
"docker_images": {
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
},
"file_denylist": [],
"startup": ".\/start_ts3-manager -p ${SERVER_PORT}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Server listening on\",\r\n \"userInteraction\": []\r\n}",
"startup": "{\r\n \"done\": \"Server listening on\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "apt -y update\r\napt -y upgrade\r\napt install -y git unzip jq wget tar curl\r\n\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi",
"container": "debian:buster-slim",
"script": "#!\/bin\/bash\r\n\r\n## install needed packages\r\napt update\r\napt install -y git unzip jq wget tar curl\r\n\r\n## env\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
@ -31,7 +35,8 @@
"default_value": "joni1802\/ts3-manager",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:50"
"rules": "required|string|max:50",
"field_type": "text"
},
{
"name": "VERSION",
@ -40,7 +45,8 @@
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:30"
"rules": "required|string|max:30",
"field_type": "text"
},
{
"name": "MATCH",
@ -49,7 +55,8 @@
"default_value": "ts3-manager-linux-x64",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:50"
"rules": "required|string|max:50",
"field_type": "text"
}
]
}