From 4d0946f9cf5bfe1bc59e51928095be567e061d78 Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Thu, 6 Jul 2023 09:53:09 +0800 Subject: [PATCH 01/21] Fix RedM download link parser --- game_eggs/rdr/redm/egg-red-m.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/rdr/redm/egg-red-m.json b/game_eggs/rdr/redm/egg-red-m.json index fca67286..9d7a6f78 100644 --- a/game_eggs/rdr/redm/egg-red-m.json +++ b/game_eggs/rdr/redm/egg-red-m.json @@ -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" } @@ -89,4 +89,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From d8ceda1715dc3d509370a3346a18fbeee1a90b8b Mon Sep 17 00:00:00 2001 From: FreemoX Date: Sun, 3 Sep 2023 01:29:38 +0200 Subject: [PATCH 02/21] Update egg-phantom-bot.json Removed deprecated Java 11 Added Java 16 (deprecated after version 3.9.0.7) Added Java 19 --- bots/twitch/phantombot/egg-phantom-bot.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bots/twitch/phantombot/egg-phantom-bot.json b/bots/twitch/phantombot/egg-phantom-bot.json index ede55fc3..81f85301 100644 --- a/bots/twitch/phantombot/egg-phantom-bot.json +++ b/bots/twitch/phantombot/egg-phantom-bot.json @@ -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,12 +31,12 @@ "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, "user_editable": true, - "rules": "required|string|max:9", + "rules": "required|string|in:latest,master,3.9.0.7", "field_type": "text" }, { @@ -109,4 +110,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 1f6b552f669e6ff7618af1a3d44f57a7819359e0 Mon Sep 17 00:00:00 2001 From: FreemoX Date: Sun, 3 Sep 2023 01:36:07 +0200 Subject: [PATCH 03/21] Update egg-phantom-bot.json --- bots/twitch/phantombot/egg-phantom-bot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/twitch/phantombot/egg-phantom-bot.json b/bots/twitch/phantombot/egg-phantom-bot.json index 81f85301..5acd461b 100644 --- a/bots/twitch/phantombot/egg-phantom-bot.json +++ b/bots/twitch/phantombot/egg-phantom-bot.json @@ -36,7 +36,7 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:latest,master,3.9.0.7", + "rules": "required|string|max:9", "field_type": "text" }, { From 83fa92a600a2a4a8c84012945903029345f65b2b Mon Sep 17 00:00:00 2001 From: Shinaii Date: Wed, 13 Sep 2023 17:53:08 +0200 Subject: [PATCH 04/21] Update egg-bun.json (#2466) Update Bun: to use the right variable names --- generic/bun/egg-bun.json | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/generic/bun/egg-bun.json b/generic/bun/egg-bun.json index 9ce16e7c..97eeaad6 100644 --- a/generic/bun/egg-bun.json +++ b/generic/bun/egg-bun.json @@ -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" } ] -} \ No newline at end of file +} From d18ea7979f4c6b484db97f5a3a8035e1f4f60e2a Mon Sep 17 00:00:00 2001 From: Chris Cox Date: Sun, 17 Sep 2023 13:38:41 +0100 Subject: [PATCH 05/21] Update README.md Added a sample ignore file that disallows anything that's pulled from the container image and restricts backups to the server's unique files. --- .../steamcmd_servers/7_days_to_die/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/README.md b/game_eggs/steamcmd_servers/7_days_to_die/README.md index 890b3d11..8b48da48 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/README.md +++ b/game_eggs/steamcmd_servers/7_days_to_die/README.md @@ -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/ +``` From 5620a4ad8b96e160db5215b5ee0f49090658848c Mon Sep 17 00:00:00 2001 From: Philip T <2097483+phit@users.noreply.github.com> Date: Wed, 20 Sep 2023 23:31:29 +0200 Subject: [PATCH 06/21] Fix GH-2474 (#2475) * Fix GH-2474 * Update JMusicBot images switch to Java LTS and use the official installer image --- bots/discord/jmusicbot/egg-j-music-bot.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bots/discord/jmusicbot/egg-j-music-bot.json b/bots/discord/jmusicbot/egg-j-music-bot.json index 528dad38..8a640fd6 100644 --- a/bots/discord/jmusicbot/egg-j-music-bot.json +++ b/bots/discord/jmusicbot/egg-j-music-bot.json @@ -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" }, { From c8e214bc11b0a60b7b5f145ffa146e614956aebe Mon Sep 17 00:00:00 2001 From: mvw <73003273+meesvw@users.noreply.github.com> Date: Thu, 21 Sep 2023 09:08:15 +0200 Subject: [PATCH 07/21] Updated the muse egg (#2472) * Muse: Added git as package in the install script --- bots/discord/muse/egg-muse.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json index 4aea39a8..bcb0554c 100644 --- a/bots/discord/muse/egg-muse.json +++ b/bots/discord/muse/egg-muse.json @@ -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" } @@ -89,4 +89,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 5d9da83f28237b6f4d2fd89541fa27766340984a Mon Sep 17 00:00:00 2001 From: oliver408i <75344601+oliver408i@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:57:33 -0700 Subject: [PATCH 08/21] Add KSP DMP Server (#2476) Add: KSP DMP Server --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 2 + game_eggs/README.md | 2 + game_eggs/ksp/README.md | 12 ++++ game_eggs/ksp/egg-k-s-p-d-m-p.json | 92 ++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 game_eggs/ksp/README.md create mode 100644 game_eggs/ksp/egg-k-s-p-d-m-p.json diff --git a/README.md b/README.md index 84756656..1d14ea79 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,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) diff --git a/game_eggs/README.md b/game_eggs/README.md index a31104aa..c3f173c3 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -53,6 +53,8 @@ * GTA * [GTAC](gta/gtac) +[Kerbal Space Program](ksp) + [Los Angeles Crimes](losangelescrimes) [League Sandbox](leaguesandbox) diff --git a/game_eggs/ksp/README.md b/game_eggs/ksp/README.md new file mode 100644 index 00000000..a789c820 --- /dev/null +++ b/game_eggs/ksp/README.md @@ -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 | diff --git a/game_eggs/ksp/egg-k-s-p-d-m-p.json b/game_eggs/ksp/egg-k-s-p-d-m-p.json new file mode 100644 index 00000000..99c4f75a --- /dev/null +++ b/game_eggs/ksp/egg-k-s-p-d-m-p.json @@ -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" + } + ] +} \ No newline at end of file From 2bd36bc2df94eae483ec076cad44eb7717878268 Mon Sep 17 00:00:00 2001 From: MrAvox <143508913+avoxmr@users.noreply.github.com> Date: Fri, 22 Sep 2023 19:08:48 +0100 Subject: [PATCH 09/21] Added Elixir Egg (#2450) Add: elixir --- README.md | 1 + generic/README.md | 5 ++ generic/elixir/README.md | 22 ++++++++ generic/elixir/egg-elixir.json | 96 ++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 generic/elixir/README.md create mode 100644 generic/elixir/egg-elixir.json diff --git a/README.md b/README.md index 1d14ea79..41258ca0 100644 --- a/README.md +++ b/README.md @@ -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/) diff --git a/generic/README.md b/generic/README.md index a549b2d4..91cd1eb4 100644 --- a/generic/README.md +++ b/generic/README.md @@ -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/) diff --git a/generic/elixir/README.md b/generic/elixir/README.md new file mode 100644 index 00000000..98a8c7ed --- /dev/null +++ b/generic/elixir/README.md @@ -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" + ] +} diff --git a/generic/elixir/egg-elixir.json b/generic/elixir/egg-elixir.json new file mode 100644 index 00000000..6142957d --- /dev/null +++ b/generic/elixir/egg-elixir.json @@ -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" + } + ] +} From 4a439b322cb500653bda360f7c475dccc241c643 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Tue, 26 Sep 2023 17:51:49 +0200 Subject: [PATCH 10/21] move uptimekuma to alpine (#2479) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- software/uptime-kuma/egg-uptime-kuma.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index a8ac9570..ea1da58a 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-22T09:33:11+01:00", + "exported_at": "2023-09-25T18:09:50+02:00", "name": "Uptime Kuma", "author": "info@goover.de", "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}}", @@ -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\n\r\nnpm install -g npm@latest\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\n## add below your custom commands if needed\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\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": [ From e32bcfc472515393c393224d23fe30030cb3e221 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 28 Sep 2023 12:10:49 +0200 Subject: [PATCH 11/21] add Meilisearch --- README.md | 4 + software/meilisearch/README.md | 7 ++ software/meilisearch/egg-meilisearch.json | 112 ++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 software/meilisearch/README.md create mode 100644 software/meilisearch/egg-meilisearch.json diff --git a/README.md b/README.md index 41258ca0..afc174a2 100644 --- a/README.md +++ b/README.md @@ -403,6 +403,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) diff --git a/software/meilisearch/README.md b/software/meilisearch/README.md new file mode 100644 index 00000000..b8e8a592 --- /dev/null +++ b/software/meilisearch/README.md @@ -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. diff --git a/software/meilisearch/egg-meilisearch.json b/software/meilisearch/egg-meilisearch.json new file mode 100644 index 00000000..376424b0 --- /dev/null +++ b/software/meilisearch/egg-meilisearch.json @@ -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" + } + ] +} \ No newline at end of file From 08e6ba7ce1c6e513a73fffbb18d958c580deecda Mon Sep 17 00:00:00 2001 From: nateloeffel <60140854+nateloeffel@users.noreply.github.com> Date: Sat, 30 Sep 2023 22:23:53 -0400 Subject: [PATCH 12/21] Fixed Typo in Readme --- software/uptime-kuma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index 3ba818df..e8619a28 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -17,7 +17,7 @@ After installation and successful start, browse to your : 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 | |---------|---------------| From 8a71caf41f5364369e673763af930dace575f8b9 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 1 Oct 2023 17:00:33 +0200 Subject: [PATCH 13/21] Uptime Kuma - fix DB und cleanup (#2484) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- software/uptime-kuma/README.md | 19 ++++++++++++ software/uptime-kuma/egg-uptime-kuma.json | 36 ++--------------------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index e8619a28..bcf2444e 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -22,3 +22,22 @@ 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 \ No newline at end of file diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index ea1da58a..5bc89ffa 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-09-25T18:09:50+02:00", + "exported_at": "2023-10-01T10:06:16+02:00", "name": "Uptime Kuma", "author": "info@goover.de", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", @@ -13,7 +13,7 @@ "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": "node \/home\/container\/server\/server.js --port={{SERVER_PORT}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"[SERVER] INFO: Listening on \"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "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\n\r\nnpm install -g npm@latest\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\n## add below your custom commands if needed\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", + "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\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\n\r\nnpm install -g npm@latest\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\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\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\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nmkdir -p \/mnt\/server\/data\r\ngit config --global --add safe.directory \/mnt\/server\r\n\r\nnpm run setup\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" } @@ -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", @@ -57,26 +47,6 @@ "user_editable": false, "rules": "required|string", "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", - "field_type": "text" } ] } \ No newline at end of file From c791eb2261a340ee2dc5082b1b9e37a06e8b05e5 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Thu, 5 Oct 2023 18:47:50 +0200 Subject: [PATCH 14/21] gOOvER changed my email to new one (#2489) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- bots/twitch/sogebot/egg-soge-bot.json | 4 ++-- .../impostor_server/egg-among-us--impostor-server.json | 2 +- .../citadel/egg-citadel-forged-with-fire.json | 2 +- game_eggs/steamcmd_servers/craftopia/egg-craftopia.json | 2 +- game_eggs/steamcmd_servers/eco/egg-eco.json | 2 +- .../empyrion/egg-empyrion--galactic-survival.json | 2 +- .../rising_world/legacy/egg-rising-world-legacy.json | 2 +- .../rising_world/unity/egg-rising-world-unity.json | 2 +- game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json | 2 +- .../steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json | 2 +- .../multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json | 2 +- .../steamcmd_servers/solace_crafting/egg-solace-crafting.json | 2 +- game_eggs/steamcmd_servers/soldat/egg-soldat.json | 2 +- .../sonsoftheforest/egg-sons-of-the-forest.json | 2 +- .../space_engineers/default/egg-space-engineers.json | 2 +- .../torch/egg-space-engineers--torch-server.json | 2 +- game_eggs/steamcmd_servers/stationeers/egg-stationeers.json | 2 +- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 2 +- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 2 +- software/uptime-kuma/egg-uptime-kuma.json | 2 +- voice_servers/ts3_manager/egg-t-s3-manager.json | 2 +- 21 files changed, 22 insertions(+), 22 deletions(-) diff --git a/bots/twitch/sogebot/egg-soge-bot.json b/bots/twitch/sogebot/egg-soge-bot.json index 4e68d540..2cd2c32f 100644 --- a/bots/twitch/sogebot/egg-soge-bot.json +++ b/bots/twitch/sogebot/egg-soge-bot.json @@ -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" } diff --git a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json index ba3d3b54..c93e5617 100644 --- a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json +++ b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json @@ -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": { diff --git a/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json b/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json index 1c294c12..5b3f1232 100644 --- a/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json +++ b/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json @@ -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" diff --git a/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json b/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json index 6d16a070..bdf3df8e 100644 --- a/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json +++ b/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json @@ -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" diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index f91c6fed..3f8cfcb0 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -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" diff --git a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json index f9a5ec94..4b5b780d 100644 --- a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json +++ b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json @@ -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": { diff --git a/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json b/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json index 1f3fdf6c..da1fc498 100644 --- a/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json +++ b/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json @@ -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" diff --git a/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json b/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json index 3f12eae8..07edfdc0 100644 --- a/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json +++ b/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json @@ -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" diff --git a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json index d6f12f63..4c0af7df 100644 --- a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json +++ b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json @@ -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" diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index 2a881b69..00d43318 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -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" diff --git a/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json b/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json index e422fd4b..75f402c4 100644 --- a/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json +++ b/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json @@ -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" diff --git a/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json b/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json index d60353e0..b05c26fb 100644 --- a/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json +++ b/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json @@ -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": { diff --git a/game_eggs/steamcmd_servers/soldat/egg-soldat.json b/game_eggs/steamcmd_servers/soldat/egg-soldat.json index 235aaa83..13cb12f4 100644 --- a/game_eggs/steamcmd_servers/soldat/egg-soldat.json +++ b/game_eggs/steamcmd_servers/soldat/egg-soldat.json @@ -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" diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json index 98660cc5..789d688c 100644 --- a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json +++ b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json @@ -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" diff --git a/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json b/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json index 05aaccf1..e4e9d49c 100644 --- a/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json +++ b/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json @@ -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" diff --git a/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json b/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json index 5f9e6e30..e1fa6c30 100644 --- a/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json +++ b/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json @@ -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" diff --git a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json b/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json index 21c62948..780f11fa 100644 --- a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json +++ b/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json @@ -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" diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index b2f3879f..ab2dca35 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -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" diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 82968fc1..1f339ffe 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-03-03T16:15:23+01: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" diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index 5bc89ffa..ced614ae 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-10-01T10:06:16+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": { diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index c20c8b53..515bc972 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -5,7 +5,7 @@ }, "exported_at": "2020-12-05T08:58:33+01: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", From 0b41aa10f634a01426e7e6b42f3574afa86b0807 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 7 Oct 2023 08:41:49 +0200 Subject: [PATCH 15/21] Update egg-t-s3-manager.json --- .../ts3_manager/egg-t-s3-manager.json | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index c20c8b53..54b075b2 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -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-07T08:41:21+02:00", "name": "TS3 Manager", "author": "info@goover.de", "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# Valheim Installation Script\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" } ] } \ No newline at end of file From dcc696d44ef0f363ebe37cdc531a4ec638b6c6dd Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 7 Oct 2023 08:43:34 +0200 Subject: [PATCH 16/21] update email --- voice_servers/ts3_manager/egg-t-s3-manager.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index 54b075b2..f4bdc7dc 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-10-07T08:41:21+02:00", "name": "TS3 Manager", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "The Open Source Webinterface For TeamSpeak Servers", "features": null, "docker_images": { From b29acbbb8b8a6a258fe8ab441839642261fe5101 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 7 Oct 2023 09:24:37 +0200 Subject: [PATCH 17/21] Update egg-languagetool.json (#2493) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- software/languagetool/egg-languagetool.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/software/languagetool/egg-languagetool.json b/software/languagetool/egg-languagetool.json index 026432e4..97f0646a 100644 --- a/software/languagetool/egg-languagetool.json +++ b/software/languagetool/egg-languagetool.json @@ -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" } ] } \ No newline at end of file From 096e97b072b83c4d03787cb4ff8e2fccaecf3e2f Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 7 Oct 2023 10:26:33 +0200 Subject: [PATCH 18/21] Update egg-valheim-plus-mod.json (#2492) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 1f339ffe..d30ba605 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -4,7 +4,7 @@ "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": "eggs@goover.dev", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", @@ -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", From acfef3feb8778dd450eb8e9a1522bd5968c45e5b Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Sat, 7 Oct 2023 23:20:33 +0800 Subject: [PATCH 19/21] Update egg-hurtworld.json (#2494) --- .../hurtworld/egg-hurtworld.json | 66 ++++++++++++++----- 1 file changed, 50 insertions(+), 16 deletions(-) diff --git a/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json b/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json index 37d3c695..062daa70 100644 --- a/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json +++ b/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json @@ -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" } ] -} +} \ No newline at end of file From be0dc642750d613e24d3fcec3e27c01313326f45 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 7 Oct 2023 18:03:04 +0200 Subject: [PATCH 20/21] Update egg-t-s3-manager.json --- voice_servers/ts3_manager/egg-t-s3-manager.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index f4bdc7dc..369f0963 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-07T08:41:21+02:00", + "exported_at": "2023-10-07T18:01:49+02:00", "name": "TS3 Manager", "author": "eggs@goover.dev", "description": "The Open Source Webinterface For TeamSpeak Servers", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Valheim Installation Script\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 \"-------------------------------------------------------\"", + "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" } From 0065fbf8cf24578d3b23fd9b6734de768bffc515 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Mon, 9 Oct 2023 19:07:39 +0200 Subject: [PATCH 21/21] Installation and update significantly simplified --- software/uptime-kuma/egg-uptime-kuma.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index ced614ae..bf756329 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-01T10:06:16+02:00", + "exported_at": "2023-10-09T19:06:53+02:00", "name": "Uptime Kuma", "author": "eggs@goover.dev", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/apps:uptimekuma": "ghcr.io\/parkervcp\/apps:uptimekuma" }, "file_denylist": [], - "startup": "node \/home\/container\/server\/server.js --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,7 +22,7 @@ }, "scripts": { "installation": { - "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\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\n\r\nnpm install -g npm@latest\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\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\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\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nmkdir -p \/mnt\/server\/data\r\ngit config --global --add safe.directory \/mnt\/server\r\n\r\nnpm run setup\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", + "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" } @@ -47,6 +47,16 @@ "user_editable": false, "rules": "required|string", "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" } ] } \ No newline at end of file