From 1f8567cb7e896b9d60b9c3137b02a4ea964e7759 Mon Sep 17 00:00:00 2001 From: PsychoZander <62998704+PsychoZander@users.noreply.github.com> Date: Thu, 31 Mar 2022 08:32:41 +0100 Subject: [PATCH 01/56] Create egg-owncast-online.json egg Add an egg for https://owncast.online. Could do with an addition to the install script to scrape and find latest version instead of set version. --- software/owncast/egg-owncast-online.json | 59 ++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 software/owncast/egg-owncast-online.json diff --git a/software/owncast/egg-owncast-online.json b/software/owncast/egg-owncast-online.json new file mode 100644 index 00000000..30cff998 --- /dev/null +++ b/software/owncast/egg-owncast-online.json @@ -0,0 +1,59 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2022-03-31T08:25:53+01:00", + "name": "owncast.online", + "author": "psychoalex@thevcbc.com", + "description": "Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.", + "features": null, + "images": [ + "ghcr.io\/pterodactyl\/yolks:debian" + ], + "file_denylist": [], + "startup": ".\/owncast -webserverport {{SERVER_PORT}} -rtmpport {{RTMP_PORT}} -streamkey {{STREAM_KEY}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"The web admin interface is available at \/admin.\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n#Make Server Dir\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\ncd \/mnt\/server\/\r\n\r\n#Get Dependencies\r\napt-get -y update\r\napt-get -y install curl unzip tar\r\n\r\n#Get Owncast Install Files\r\ncurl -L https:\/\/github.com\/owncast\/owncast\/releases\/download\/v${OWNCAST_VERSION}\/owncast-${OWNCAST_VERSION}-linux-64bit.zip --output .\/owncast_installer.zip\r\n\r\n#Unzip Install Files\r\nunzip -o -q .\/owncast_installer.zip\r\nrm .\/owncast_installer.zip", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "RTMP Port", + "description": "The port that is used to receive the stream data.", + "env_variable": "RTMP_PORT", + "default_value": "1935", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer" + }, + { + "name": "Stream\/Admin Key", + "description": "This is used to authenticate to the web admin interface, as well as to authenticate your stream.", + "env_variable": "STREAM_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|min:32|max:128" + }, + { + "name": "Owncast Version", + "description": "The version of Owncast that you would like to install, from https:\/\/github.com\/owncast\/owncast\/releases", + "env_variable": "OWNCAST_VERSION", + "default_value": "0.0.11", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + } + ] +} From fbf314b180ee0b16d454cc919e31f3014bedb12f Mon Sep 17 00:00:00 2001 From: PsychoZander <62998704+PsychoZander@users.noreply.github.com> Date: Thu, 31 Mar 2022 08:37:00 +0100 Subject: [PATCH 02/56] Update README.md to include Owncast --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index bbed6550..2dd312ec 100644 --- a/README.md +++ b/README.md @@ -303,3 +303,7 @@ If you are reading this it looks like you are looking to add an egg to your serv ### RabbitMQ * [rabbitmq](/software/rabbitmq) + +### Owncast + +* [owncast](/software/owncast) From b94c6f4f8a7bcf98891306dec5d96ca2885b279c Mon Sep 17 00:00:00 2001 From: PsychoZander <62998704+PsychoZander@users.noreply.github.com> Date: Thu, 31 Mar 2022 08:45:36 +0100 Subject: [PATCH 03/56] Create Owncast README.md --- software/owncast/README.md | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 software/owncast/README.md diff --git a/software/owncast/README.md b/software/owncast/README.md new file mode 100644 index 00000000..6d2ea6f6 --- /dev/null +++ b/software/owncast/README.md @@ -0,0 +1,51 @@ +# Owncast + +## From the [Owncast](https://owncast.online) website + +Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software. + +## Installation + +Follow the common egg installation guide to install the egg on your Pterodactyl instance. +When setting up a server, the version set in the varaible will be used, default is 0.0.11. + +## Configuration + +Configuring Owncast in Pterodactyl can be done by using the command line switches: +* -backupdir string + * Directory where backups will be written to +* -database string + * Path to the database file. +* -enableDebugFeatures + * Enable additional debugging options. +* -enableVerboseLogging + * Enable additional logging. +* -logdir string + * Directory where logs will be written to +* -restoreDatabase string + * Restore an Owncast database backup +* -rtmpport int + * Set listen port for the RTMP server +* -streamkey string + * Set your stream key/admin password +* -webserverip string + * Force web server to listen on this IP address +* -webserverport string + * Force the web server to listen on a specific port + + + +## Update support + +The egg _should_ keep the `data` folder when reinstalling, to prevent destroying the configuration by accident. + +If you want to reset the server completly, remove the `data` directory manually before reinstalling. + +### Server Ports + +Ports required to run the server in a table format. + +| Port | default | +| --------------- | ------- | +| Webserver | 8080 | +| RTMP | 1935 | From 33c34e76475dd76b07547d07e003c3fed22bb3b7 Mon Sep 17 00:00:00 2001 From: PsychoZander <62998704+PsychoZander@users.noreply.github.com> Date: Thu, 31 Mar 2022 10:05:13 +0100 Subject: [PATCH 04/56] Update README.md --- software/owncast/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/owncast/README.md b/software/owncast/README.md index 6d2ea6f6..a1262166 100644 --- a/software/owncast/README.md +++ b/software/owncast/README.md @@ -47,5 +47,5 @@ Ports required to run the server in a table format. | Port | default | | --------------- | ------- | -| Webserver | 8080 | -| RTMP | 1935 | +| Webserver | 8090 | +| RTMP | 8091 | From 1200e4aeb182ff7074032ba2d84ada7b7ab05bbd Mon Sep 17 00:00:00 2001 From: PsychoZander <62998704+PsychoZander@users.noreply.github.com> Date: Thu, 31 Mar 2022 10:06:04 +0100 Subject: [PATCH 05/56] Update default port --- software/owncast/egg-owncast-online.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/owncast/egg-owncast-online.json b/software/owncast/egg-owncast-online.json index 30cff998..59f0025f 100644 --- a/software/owncast/egg-owncast-online.json +++ b/software/owncast/egg-owncast-online.json @@ -32,7 +32,7 @@ "name": "RTMP Port", "description": "The port that is used to receive the stream data.", "env_variable": "RTMP_PORT", - "default_value": "1935", + "default_value": "8091", "user_viewable": true, "user_editable": false, "rules": "required|integer" From 424d230c7c746f50886651a1f33803d63b171127 Mon Sep 17 00:00:00 2001 From: PsychoZander <62998704+PsychoZander@users.noreply.github.com> Date: Thu, 31 Mar 2022 11:33:10 +0100 Subject: [PATCH 06/56] Updated to add git release script --- software/owncast/egg-owncast-online.json | 46 +++++++++++++++++++++--- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/software/owncast/egg-owncast-online.json b/software/owncast/egg-owncast-online.json index 59f0025f..f134c898 100644 --- a/software/owncast/egg-owncast-online.json +++ b/software/owncast/egg-owncast-online.json @@ -4,7 +4,7 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2022-03-31T08:25:53+01:00", + "exported_at": "2022-03-31T11:32:42+01:00", "name": "owncast.online", "author": "psychoalex@thevcbc.com", "description": "Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n#Make Server Dir\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\ncd \/mnt\/server\/\r\n\r\n#Get Dependencies\r\napt-get -y update\r\napt-get -y install curl unzip tar\r\n\r\n#Get Owncast Install Files\r\ncurl -L https:\/\/github.com\/owncast\/owncast\/releases\/download\/v${OWNCAST_VERSION}\/owncast-${OWNCAST_VERSION}-linux-64bit.zip --output .\/owncast_installer.zip\r\n\r\n#Unzip Install Files\r\nunzip -o -q .\/owncast_installer.zip\r\nrm .\/owncast_installer.zip", + "script": "#!\/bin\/bash\r\n\r\n#Make Server Dir\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\ncd \/mnt\/server\/\r\n\r\n#Get Dependencies\r\napt-get -y update\r\napt-get -y install curl unzip tar jq\r\n\r\n#Get Owncast Install Files\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_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\necho Download URL is: ${DOWNLOAD_URL}\r\n\r\ncurl -L ${DOWNLOAD_URL} --output .\/owncast_installer.zip\r\n\r\n#curl -L https:\/\/github.com\/owncast\/owncast\/releases\/download\/v${OWNCAST_VERSION}\/owncast-${OWNCAST_VERSION}-linux-64bit.zip --output .\/owncast_installer.zip\r\n\r\n#Unzip Install Files\r\nunzip -o -q .\/owncast_installer.zip\r\nrm .\/owncast_installer.zip", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -48,12 +48,48 @@ }, { "name": "Owncast Version", - "description": "The version of Owncast that you would like to install, from https:\/\/github.com\/owncast\/owncast\/releases", - "env_variable": "OWNCAST_VERSION", - "default_value": "0.0.11", + "description": "The version of Owncast that you would like to install, from https:\/\/github.com\/owncast\/owncast\/releases\r\nAs an Example - \"v0.0.11\" for a specific version or \"latest\" for the most up to date version.", + "env_variable": "VERSION", + "default_value": "latest", "user_viewable": true, "user_editable": true, "rules": "required|string|max:20" + }, + { + "name": "Github Repository", + "description": "Used to identify the github repository to pull the release from.", + "env_variable": "GITHUB_PACKAGE", + "default_value": "owncast\/owncast", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:120" + }, + { + "name": "Github File Match", + "description": "Used to identify the specific asset under a release for download.", + "env_variable": "MATCH", + "default_value": "linux-64bit", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20" + }, + { + "name": "Github User", + "description": "Required if you are doing more calls than the github anonymous API user allows.", + "env_variable": "GITHUB_USER", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string|max:20" + }, + { + "name": "Github Oauth Token", + "description": "Required if you are doing more calls than the github anonymous API user allows.", + "env_variable": "GITHUB_OAUTH_TOKEN", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string|max:128" } ] } From 2c738f899243fe5f1833744c60cd3fda082f4ef1 Mon Sep 17 00:00:00 2001 From: CDE <73063460+CDE90@users.noreply.github.com> Date: Sun, 17 Apr 2022 16:58:05 +0100 Subject: [PATCH 07/56] Create README.md --- bots/discord/rust/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 bots/discord/rust/README.md diff --git a/bots/discord/rust/README.md b/bots/discord/rust/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/bots/discord/rust/README.md @@ -0,0 +1 @@ + From 68a37908f4d23e20e86e117a283bcf95a6aeaef5 Mon Sep 17 00:00:00 2001 From: CDE <73063460+CDE90@users.noreply.github.com> Date: Sun, 17 Apr 2022 16:58:14 +0100 Subject: [PATCH 08/56] Add files via upload --- bots/discord/rust/egg-serenity.json | 89 +++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 bots/discord/rust/egg-serenity.json diff --git a/bots/discord/rust/egg-serenity.json b/bots/discord/rust/egg-serenity.json new file mode 100644 index 00000000..b872cead --- /dev/null +++ b/bots/discord/rust/egg-serenity.json @@ -0,0 +1,89 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2022-04-17T16:56:51+01:00", + "name": "Serenity", + "author": "unknown@unknown.com", + "description": "Creates a container that runs rust.", + "features": null, + "images": [ + "ghcr.io\/parkervcp\/yolks:rust_1.31", + "ghcr.io\/parkervcp\/yolks:rust_1.56", + "ghcr.io\/parkervcp\/yolks:rust_1.60", + "ghcr.io\/parkervcp\/yolks:rust_latest" + ], + "file_denylist": [], + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; cargo run --release", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": [\r\n \"Finished\"\r\n ]\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Rust Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git\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\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho -e \"install complete\"\r\nexit 0", + "container": "rust:1.60.0-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Git Repo Address", + "description": "Git repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name", + "env_variable": "GIT_ADDRESS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Git Branch", + "description": "What branch to pull from github.\r\n\r\nDefault is blank to pull the repo default branch", + "env_variable": "BRANCH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Auto Update", + "description": "Pull the latest files on startup when using a GitHub repo.", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean" + }, + { + "name": "Git Username", + "description": "Username to auth with git.", + "env_variable": "USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Git Access Token", + "description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens", + "env_variable": "ACCESS_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Bot Token", + "description": "The discord token used to run your bot. Sets to the environment variable `DISCORD_TOKEN`\r\n\r\nAlternatively, you can use a .env file", + "env_variable": "DISCORD_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + } + ] +} \ No newline at end of file From 774240d75c499fb24a29383bf8a6f59a46e37574 Mon Sep 17 00:00:00 2001 From: CDE <73063460+CDE90@users.noreply.github.com> Date: Sun, 17 Apr 2022 17:00:25 +0100 Subject: [PATCH 09/56] Update README.md --- bots/discord/rust/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bots/discord/rust/README.md b/bots/discord/rust/README.md index 8b137891..ea822c9c 100644 --- a/bots/discord/rust/README.md +++ b/bots/discord/rust/README.md @@ -1 +1,3 @@ +# serenity generic +This egg is designed to run any generic Rust application, allowing users to pull their own Rust discord bot from a GitHub repository. From 274ab72e20a35215f83692d9bd15b4c2813a7d60 Mon Sep 17 00:00:00 2001 From: CDE90 Date: Sun, 17 Apr 2022 17:01:41 +0100 Subject: [PATCH 10/56] Change directory name --- bots/discord/{rust => serenity}/README.md | 0 bots/discord/{rust => serenity}/egg-serenity.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename bots/discord/{rust => serenity}/README.md (100%) rename bots/discord/{rust => serenity}/egg-serenity.json (100%) diff --git a/bots/discord/rust/README.md b/bots/discord/serenity/README.md similarity index 100% rename from bots/discord/rust/README.md rename to bots/discord/serenity/README.md diff --git a/bots/discord/rust/egg-serenity.json b/bots/discord/serenity/egg-serenity.json similarity index 100% rename from bots/discord/rust/egg-serenity.json rename to bots/discord/serenity/egg-serenity.json From 4305e63bd2d13551a610f72e33445b28149a580a Mon Sep 17 00:00:00 2001 From: CDE <73063460+CDE90@users.noreply.github.com> Date: Sun, 17 Apr 2022 17:02:37 +0100 Subject: [PATCH 11/56] Update egg-serenity.json --- bots/discord/serenity/egg-serenity.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/serenity/egg-serenity.json b/bots/discord/serenity/egg-serenity.json index b872cead..dd3ffc2d 100644 --- a/bots/discord/serenity/egg-serenity.json +++ b/bots/discord/serenity/egg-serenity.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-04-17T16:56:51+01:00", "name": "Serenity", - "author": "unknown@unknown.com", + "author": "ethan.coward@icloud.com", "description": "Creates a container that runs rust.", "features": null, "images": [ @@ -86,4 +86,4 @@ "rules": "nullable|string" } ] -} \ No newline at end of file +} From eda031989bb5328d3a62258ec3ea14da093c9dbf Mon Sep 17 00:00:00 2001 From: CDE90 Date: Sun, 17 Apr 2022 17:05:39 +0100 Subject: [PATCH 12/56] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bbed6550..60db1621 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [parkertron](/bots/discord/parkertron) Golang * [pixel-bot](/bots/discord/pixelbot) Python * [Redbot](/bots/discord/redbot) Python +* [serenity](/bots/discord/serenity) Rust * [SinusBot](/bots/discord/sinusbot) [Other](/bots/other) From e6ee11076c1bdcb7c4a06392aa85ee1b183a67b5 Mon Sep 17 00:00:00 2001 From: CDE90 Date: Sun, 17 Apr 2022 20:37:32 +0100 Subject: [PATCH 13/56] Rename egg to discord.rs --- README.md | 2 +- bots/discord/discord.rs/README.md | 3 +++ .../egg-discord-rs-generic.json} | 4 ++-- bots/discord/serenity/README.md | 3 --- 4 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 bots/discord/discord.rs/README.md rename bots/discord/{serenity/egg-serenity.json => discord.rs/egg-discord-rs-generic.json} (97%) delete mode 100644 bots/discord/serenity/README.md diff --git a/README.md b/README.md index 60db1621..97fc6a17 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [discord.java](bots/discord/discord.java) Java generic * [discord.js](bots/discord/discord.js) Node JS generic * [discord.py](bots/discord/discord.py) Python generic +* [discord.rs](bots/discord/discord.rs) Rust generic * [Dynamica](/bots/discord/dynamica) Node JS * [fragbot](/bots/discord/fragbot) Golang * [JMusicBot](/bots/discord/jmusicbot) Java @@ -40,7 +41,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [parkertron](/bots/discord/parkertron) Golang * [pixel-bot](/bots/discord/pixelbot) Python * [Redbot](/bots/discord/redbot) Python -* [serenity](/bots/discord/serenity) Rust * [SinusBot](/bots/discord/sinusbot) [Other](/bots/other) diff --git a/bots/discord/discord.rs/README.md b/bots/discord/discord.rs/README.md new file mode 100644 index 00000000..5e9499f7 --- /dev/null +++ b/bots/discord/discord.rs/README.md @@ -0,0 +1,3 @@ +# discord.rs generic + +This egg is designed to run any generic Rust application with cargo, allowing users to pull their own Rust discord bot from a GitHub repository. diff --git a/bots/discord/serenity/egg-serenity.json b/bots/discord/discord.rs/egg-discord-rs-generic.json similarity index 97% rename from bots/discord/serenity/egg-serenity.json rename to bots/discord/discord.rs/egg-discord-rs-generic.json index dd3ffc2d..c16f8195 100644 --- a/bots/discord/serenity/egg-serenity.json +++ b/bots/discord/discord.rs/egg-discord-rs-generic.json @@ -5,9 +5,9 @@ "update_url": null }, "exported_at": "2022-04-17T16:56:51+01:00", - "name": "Serenity", + "name": "discord.rs generic", "author": "ethan.coward@icloud.com", - "description": "Creates a container that runs rust.", + "description": "Creates a container that runs rust with cargo.", "features": null, "images": [ "ghcr.io\/parkervcp\/yolks:rust_1.31", diff --git a/bots/discord/serenity/README.md b/bots/discord/serenity/README.md deleted file mode 100644 index ea822c9c..00000000 --- a/bots/discord/serenity/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# serenity generic - -This egg is designed to run any generic Rust application, allowing users to pull their own Rust discord bot from a GitHub repository. From 0e7afcddd5c528156ebeca5bf539d5ee0c86c72c Mon Sep 17 00:00:00 2001 From: Grant <99215336+runbgp@users.noreply.github.com> Date: Sun, 17 Apr 2022 17:19:42 -0400 Subject: [PATCH 14/56] refactor(BeamMP): Use new config file and add variables --- game_eggs/beamng/beammp/beammp.json | 68 ++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/game_eggs/beamng/beammp/beammp.json b/game_eggs/beamng/beammp/beammp.json index 83c088a5..18388a3c 100644 --- a/game_eggs/beamng/beammp/beammp.json +++ b/game_eggs/beamng/beammp/beammp.json @@ -4,10 +4,10 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2021-12-22T09:10:34+00:00", - "name": "BeamMP Servers", - "author": "noah@noahserver.online", - "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point throug which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", + "exported_at": "2022-04-17T16:09:38-05:00", + "name": "BeamMP", + "author": "me@grnt.dev", + "description": "Servers are an integral part of BeamMP; players are connected to each other through the server. They run natively on Windows and Linux. This Pterodactyl Egg makes it easier than ever to get a server up and running.\r\n\r\nYou can make private servers, which only people you invite can join, or public servers, which will show in our official server list.\r\n\r\nYou can read more about BeamMP Servers here https:\/\/wiki.beammp.com\/en\/home\/Server_Mod", "features": null, "images": [ "ghcr.io\/parkervcp\/yolks:debian" @@ -15,45 +15,81 @@ "file_denylist": [], "startup": ".\/BeamMP-Server", "config": { - "files": "{\r\n \"Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers = {{server.build.env.MAX_PLAYER}}\",\r\n \"Port\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTH}}\\\"\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.NAME}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "mkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nrm -f BeamMP-Server\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Server-linux)\r\nelse\r\n echo -e \"Chosen version :${VERSION}. Verifying version from releases\"\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 Server-linux)\r\n else\r\n echo -e \"No valid versions found. Defaulting to the latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\"\r\ncurl -L ${DOWNLOAD_URL} -o BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\necho \"# This is the BeamMP Server Configuration File v0.60\r\nDebug = false # true or false to enable debug console output\r\nPrivate = true # Private?\r\nPort = 30814 # Port to run the server on UDP and TCP\r\nCars = 1 # Max cars for every player\r\nMaxPlayers = 10 # Maximum Amount of Clients\r\nMap = \\\"\/levels\/gridmap\/info.json\\\" # Default Map\r\nName = \\\"BeamMP New Server\\\" # Server Name\r\nDesc = \\\"BeamMP Default Description\\\" # Server Description\r\nuse = \\\"Resources\\\" # Resource file name\r\nAuthKey = \\\"\\\" # Auth Key\" > Server.cfg", + "script": "#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Remove any old versions\r\nrm -f BeamMP-Server\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest BeamMP server version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Server-linux)\r\nelse\r\n echo -e \"Chosen version :${VERSION}. Verifying version from releases\"\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 Server-linux)\r\n else\r\n echo -e \"No valid versions found. Defaulting to the 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#Download the BeamMP server binary\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\"\r\ncurl -L ${DOWNLOAD_URL} -o BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\n#Create a default configuration file\r\necho \"[HTTP]\r\n# Recommended to keep enabled. With SSL the server will serve https and requires valid key and cert files\r\nUseSSL = true\r\n# Enables the internal HTTP server\r\nHTTPServerEnabled = false\r\nSSLKeyPath = \\\".\/.ssl\/HttpServer\/key.pem\\\"\r\nHTTPServerPort = 8080\r\nSSLCertPath = \\\".\/.ssl\/HttpServer\/cert.pem\\\"\r\n\r\n[General]\r\n# If SendErrors is `true`, the server will send helpful info about crashes and other issues back to the BeamMP developers. This info may include your config, who is on your server at the time of the error, and similar general information. This kind of data is vital in helping us diagnose and fix issues faster. This has no impact on server performance. You can opt-out of this system by setting this to `false`\r\nSendErrorsShowMessage = true\r\nName = \\\"BeamMP Server\\\"\r\nPort = 30814\r\nResourceFolder = \\\"Resources\\\"\r\n# AuthKey has to be filled out in order to run the server\r\nAuthKey = \\\"\\\"\r\nPrivate = true\r\nMaxPlayers = 10\r\nDebug = false\r\nDescription = \\\"BeamMP Default Description\\\"\r\nMaxCars = 1\r\nMap = \\\"\/levels\/gridmap_v2\/info.json\\\"\r\n# You can turn on\/off the SendErrors message you get on startup here\r\nSendErrors = true\" > ServerConfig.toml", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, "variables": [ { - "name": "Version to install", - "description": "Latest or invalid versions would default to latest. See all versions visit https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases", + "name": "Server Name", + "description": "The name of your server. This is what appears on the server list.", + "env_variable": "NAME", + "default_value": "BeamMP Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64" + }, + { + "name": "BeamMP Server Version", + "description": "The BeamMP server version to be installed. Latest or invalid versions will default to latest. See all available versions at https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases", "env_variable": "VERSION", "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32" + "rules": "required|string|max:8" }, { "name": "Authentication Key", - "description": "BeamMP Server Key (https:\/\/beamng-mp.com\/k\/keys)", - "env_variable": "AUTH", + "description": "The authentication key for your server. A key can be obtained from the BeamMP keymaster at https:\/\/beamng-mp.com\/k\/dashboard", + "env_variable": "AUTHKEY", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:50" + "rules": "required|string|max:64" }, { "name": "Max Players", - "description": "The maximum number of allowed players", - "env_variable": "MAX_PLAYER", + "description": "The maximum number of players allowed on the server.", + "env_variable": "MAX_PLAYERS", "default_value": "6", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32" + "rules": "required|integer|max:100" + }, + { + "name": "Private", + "description": "Should the server be private?", + "env_variable": "PRIVATE", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string" + }, + { + "name": "Max Cars", + "description": "The maximum number of cars allowed to be spawned per player.", + "env_variable": "MAX_CARS", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|max:4" + }, + { + "name": "Map", + "description": "The map for your server. Stock maps are listed below.\r\n\r\n\/levels\/gridmap_v2\/info.json\r\n\/levels\/automation_test_track\/info.json\r\n\/levels\/east_coast_usa\/info.json\r\n\/levels\/hirochi_raceway\/info.json\r\n\/levels\/italy\/info.json\r\n\/levels\/jungle_rock_island\/info.json\r\n\/levels\/industrial\/info.json\r\n\/levels\/small_island\/info.json\r\n\/levels\/smallgrid\/info.json\r\n\/levels\/utah\/info.json\r\n\/levels\/west_coast_usa\/info.json\r\n\/levels\/driver_training\/info.json\r\n\/levels\/derby\/info.json", + "env_variable": "MAP", + "default_value": "\/levels\/gridmap_v2\/info.json", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64" } ] -} +} \ No newline at end of file From a58975246d8f781dfc4644f883d5c4b6d2b39775 Mon Sep 17 00:00:00 2001 From: CDE <73063460+CDE90@users.noreply.github.com> Date: Tue, 19 Apr 2022 13:33:12 +0000 Subject: [PATCH 15/56] Update installation script container --- bots/discord/discord.rs/egg-discord-rs-generic.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/discord.rs/egg-discord-rs-generic.json b/bots/discord/discord.rs/egg-discord-rs-generic.json index c16f8195..2457cfa5 100644 --- a/bots/discord/discord.rs/egg-discord-rs-generic.json +++ b/bots/discord/discord.rs/egg-discord-rs-generic.json @@ -26,7 +26,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# Rust Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git\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\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "rust:1.60.0-slim", + "container": "debian:buster-slim", "entrypoint": "bash" } }, From 5daf1dba0748b8f540ff6ed76ebfb4a62264fa91 Mon Sep 17 00:00:00 2001 From: JstnLT Date: Wed, 27 Apr 2022 12:44:31 +0700 Subject: [PATCH 16/56] add Los Angeles Crimes --- game_eggs/losangelescrimes/README.md | 33 +++++++++++++++ .../egg-l-a-c--online-public-server.json | 41 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 game_eggs/losangelescrimes/README.md create mode 100644 game_eggs/losangelescrimes/egg-l-a-c--online-public-server.json diff --git a/game_eggs/losangelescrimes/README.md b/game_eggs/losangelescrimes/README.md new file mode 100644 index 00000000..5829770b --- /dev/null +++ b/game_eggs/losangelescrimes/README.md @@ -0,0 +1,33 @@ +# Los Angeles Crimes +This egg makes it easy for you to create a public server in the game [Los Angeles Crimes](https://play.google.com/store/apps/details?id=com.MA.LAC&hl=in&gl=US). + +I made it because I was confused about how to create a server manually which requires using a vpn and so on... But here such a method is not needed. This egg uses a Linux Server that has been provided by the Game Developer. + +## Game Description +Los Angeles Crimes lets you play, create, and discover a variety of immersive worlds created by a global community! + +Features: +- Free roam, team death-match, zombie survival, car race & soccer +- Third-person & first-person view +- Active-ragdoll and realistic physics +- LAN support +- PS4 controller support (Bluetooth) + +Website: https://lacrimesonline.com/ + +## Minimum Requirement +1024MB Ram and 1024MB Disk is enough to run the server. Better to add ram & disk as this is a public server and dozens of people can join. + +## Server Port + +> **The LAC server can only run on port 7777. So the server port in the pterodactyl panel that you will use must be 7777.** + +| Port | Default | +|---|---| +| Public Server | 7777 | + +## To Do +- [ ] Can change version. + +# Contributors +- [JastinXyz](https://github.com/JastinXyz) diff --git a/game_eggs/losangelescrimes/egg-l-a-c--online-public-server.json b/game_eggs/losangelescrimes/egg-l-a-c--online-public-server.json new file mode 100644 index 00000000..0505673d --- /dev/null +++ b/game_eggs/losangelescrimes/egg-l-a-c--online-public-server.json @@ -0,0 +1,41 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2022-04-27T11:33:59+07:00", + "name": "LAC-Online Public Server", + "author": "jastinlt16@gmail.com", + "description": "To make the Los Angeles Crimes public server. Los Angeles Crimes lets you play, create, and discover a variety of immersive worlds created by a global community!", + "features": null, + "images": [ + "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source" + ], + "file_denylist": [], + "startup": ".\/LAC_Linux_v{{VER}}.x86_64", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Done!\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\ncd \/mnt\/server &&\r\n\r\n# installing dependencies\r\napt-get update -y &&\r\napt-get install -y wget screen unzip libc6-i386 lib32stdc++6 &&\r\n\r\n# delete the previous file (if it is in the file manager)\r\nrm -f LAC_Linux_v${VER}.x86_64 && rm -rf LAC_Linux_v${VER}_Data &&\r\n\r\n# Using another version still under development!\r\n#echo \"checking the given version file and download it... v${VER}.\"\r\n#wget https:\/\/dl.lacrimesonline.com\/builds\/LAC_v${VER}\/LAC_Linux_Server_v${VER}.zip -O LAC_Linux_Server_v${VER}.zip || echo \"VERSION v${VER} IS NOT FOUND! Use v1.6 instead...\" && exit 1\r\n\r\nwget https:\/\/dl.lacrimesonline.com\/builds\/LAC_v${VER}\/LAC_Linux_Server_v${VER}.zip -O LAC_Linux_Server_v${VER}.zip &&\r\necho \"successfully downloaded v${VER} files.!\" &&\r\n\r\n# Extracting & remove the zip file\r\nunzip .\/LAC_Linux_Server_v${VER}.zip &&\r\nrm -f .\/LAC_Linux_Server_v${VER}.zip &&\r\n\r\n# Make the main file executable....\r\nchmod +x LAC_Linux_v${VER}.x86_64 &&\r\n\r\necho \"INSTALATION COMPLETE!\"", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Version", + "description": "The build version is available at https:\/\/dl.lacrimesonline.com\/builds\/. Just write a numeric version like 1.6, don't use any other characters than numbers and periods. If the entered version is incorrect\/non-existent it will use version 1.6 (for now). After replacing it, then reinstall this server. [ THIS FEATURE IS STILL IN DEVELOPMENT ]", + "env_variable": "VER", + "default_value": "1.6", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file From 21ec2d2a4696768fefa73d09b8f1e372efadcab8 Mon Sep 17 00:00:00 2001 From: JstnLT Date: Wed, 27 Apr 2022 12:45:10 +0700 Subject: [PATCH 17/56] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bbed6550..8790bb1d 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,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) +[Los Angeles Crimes](game_eggs/losangelescrimes) + [Mindustry](game_eggs/mindustry) * [Mindustry](game_eggs/mindustry/mindustry) From dc9f730acc65d52d27afda6d8b2cd6d344bb08d4 Mon Sep 17 00:00:00 2001 From: JstnLT Date: Wed, 27 Apr 2022 12:46:01 +0700 Subject: [PATCH 18/56] Update README.md --- game_eggs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 5458c143..2e4fa6c7 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -39,6 +39,8 @@ * GTA * [GTAC](gta/gtac) +[Los Angeles Crimes](losangelescrimes) + [League Sandbox](leaguesandbox) [Mindustry](mindustry) From bcf464adf0b536be4ab32c2bc4d9ac5b366e061d Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 11 Jun 2022 12:51:40 -0400 Subject: [PATCH 19/56] Add Open Fortress Add egg for Open Fortress --- .../steamcmd_servers/open_fortress/README.md | 14 ++++ .../open_fortress/egg-open-fortress.json | 74 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 game_eggs/steamcmd_servers/open_fortress/README.md create mode 100644 game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json diff --git a/game_eggs/steamcmd_servers/open_fortress/README.md b/game_eggs/steamcmd_servers/open_fortress/README.md new file mode 100644 index 00000000..1d488524 --- /dev/null +++ b/game_eggs/steamcmd_servers/open_fortress/README.md @@ -0,0 +1,14 @@ +# Open Fortress + +## From their [Website](https://openfortress.fun/) + +Open Fortress is a free Team Fortress 2 mod that introduces new gamemodes, weapons, characters, maps, and more to the world of TF2. + +## Server Ports + +Open Fortress servers require 1 port to be open, the SourceTV port can also be opened for spectators. + +| Port | default | +|-----------|---------| +| Game/rcon | 27015 | +| SourceTV | 27020 | diff --git a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json new file mode 100644 index 00000000..a2d73ab8 --- /dev/null +++ b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json @@ -0,0 +1,74 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2022-06-11T12:47:33-04:00", + "name": "Open Fortress", + "author": "espeon@espeon.dev", + "description": "Open Fortress is a free Team Fortress 2 mod that introduces new gamemodes, weapons, characters, maps, and more to the world of TF2.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:games_source": "ghcr.io\/parkervcp\/yolks:games_source" + }, + "file_denylist": [], + "startup": ".\/srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart -debug +maxplayers {{MAXPLAYERS}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"gameserver Steam ID\"\r\n}", + "logs": "{}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nfi\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# 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## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## download OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/dl.spiderden.net\/murse\/linux -O murse 2> \/dev\/null\r\nchmod +x murse\r\n.\/murse upgrade asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## download fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nwget -v https:\/\/espeon.dev\/gameinfo.txt -O gameinfo.txt\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "244310", + "user_viewable": true, + "user_editable": false, + "rules": "required|regex:\/^(244310)$\/", + "field_type": "text" + }, + { + "name": "Game Name", + "description": "The name corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_GAME", + "default_value": "open_fortress", + "user_viewable": true, + "user_editable": false, + "rules": "required|regex:\/^(open_fortress)$\/", + "field_type": "text" + }, + { + "name": "Default Map", + "description": "The default map to use when starting the server.", + "env_variable": "SRCDS_MAP", + "default_value": "dm_2fort", + "user_viewable": true, + "user_editable": true, + "rules": "required|regex:\/^(\\w{1,20})$\/", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "The maximum amount of players allowed on the server.", + "env_variable": "MAXPLAYERS", + "default_value": "24", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + } + ] +} \ No newline at end of file From 995873340ad445cb0f21f816731eadf75ba841cb Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 11 Jun 2022 12:56:01 -0400 Subject: [PATCH 20/56] Add Open Fortress to main README --- game_eggs/steamcmd_servers/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 4201e3f9..f357147a 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -92,6 +92,10 @@ This is a collection of servers that use SteamCMD to install. [Onset](onset) +## Open Fortress + +[Open Fortress](open_fortress) + ## Pavlov VR [Pavlov VR](pavlov_vr) From 00d60f07c3df00544c5cf9a09592d15cc55bc774 Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 11 Jun 2022 13:00:55 -0400 Subject: [PATCH 21/56] Add Open Fortress to all README --- README.md | 1 + game_eggs/README.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 815bd96b..7d6b172f 100644 --- a/README.md +++ b/README.md @@ -213,6 +213,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Mordhau](game_eggs/steamcmd_servers/mordhau) * [No More Room in Hell](game_eggs/steamcmd_servers/nmrih) * [Onset](game_eggs/steamcmd_servers/onset) +* [Open Fortress](game_eggs/steamcmd_servers/open_fortress) * [Pavlov VR](game_eggs/steamcmd_servers/pavlov_vr) * [PixARK](game_eggs/steamcmd_servers/pixark) * [Post Scriptum](game_eggs/steamcmd_servers/post_scriptum) diff --git a/game_eggs/README.md b/game_eggs/README.md index b08ba47a..3e685a6f 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -130,6 +130,7 @@ * [Mordhau](steamcmd_servers/mordhau) * [No More Room in Hell](steamcmd_servers/nmrih) * [Onset](steamcmd_servers/onset) +* [Open Fortress](steamcmd_servers/open_fortress) * [Pavlov VR](steamcmd_servers/pavlov_vr) * [PixARK](steamcmd_servers/pixark) * [Post Scriptum](steamcmd_servers/post_scriptum) From 4a30fc71a5ff83699ad5844fb69afc3ccdf517df Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 11 Jun 2022 13:13:35 -0400 Subject: [PATCH 22/56] Add GameInfo for Open Fortress --- .../open_fortress/gameinfo.txt | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 game_eggs/steamcmd_servers/open_fortress/gameinfo.txt diff --git a/game_eggs/steamcmd_servers/open_fortress/gameinfo.txt b/game_eggs/steamcmd_servers/open_fortress/gameinfo.txt new file mode 100644 index 00000000..c3aadb27 --- /dev/null +++ b/game_eggs/steamcmd_servers/open_fortress/gameinfo.txt @@ -0,0 +1,134 @@ +"GameInfo" +{ + game "Open Fortress" + title "" + title2 "" + gamelogo "1" + developer "https://github.com/AgitationSkeleton/open_fortress/blob/master/credits.txt" + developer_url "https://github.com/KaidemonLP/Open-Fortress-Source" + manual "" + + type "multiplayer_only" + hasportals "0" // gameui.dll + hashdcontent "0" // gameui.dll + nomodels "0" // gameui.dll + nohimodel "0" // gameui.dll + nocrosshair "0" // gameui.dll + advcrosshair "1" // gameui.dll + nodifficulty "1" // gameui.dll + supportsvr "0" // engine.dll + gameui.dll + bots "0" // gameui.dll + nodegraph "1" // engine.dll + perfwizard "0" // unused + SupportsDX8 "0" // unused + SupportsDX9 "1" // unused + SupportsDX10 "0" // unused + SupportsDX11 "0" // unused + SupportsXbox "0" // unused + SupportsXbox360 "0" // unused + SupportsXboxOne "0" // unused + SupportsPS3 "0" // unused + SupportsPS4 "0" // unused + icon "resource/game" + GameData "ofd_fic2.fgd" + InstancePath "maps/instances/" + + hidden_maps + { + "test_speakers" 1 + "test_hardware" 1 + "background01" 1 + "background02" 1 + "background03" 1 + "background04" 1 + "background05" 1 + "background06" 1 + "background07" 1 + "background08" 1 + "background09" 1 + "background12" 1 + "background15" 1 + "ep1_c17_00" 1 + "ep1_c17_00a" 1 + "ep1_c17_01" 1 + "ep1_c17_01a" 1 + "ep1_c17_02" 1 + "ep1_c17_02a" 1 + "ep1_c17_02b" 1 + "ep1_c17_05" 1 + "ep1_c17_06" 1 + "ep1_citadel_00" 1 + "ep1_citadel_00_demo" 1 + "ep1_citadel_01" 1 + "ep1_citadel_02" 1 + "ep1_citadel_02b" 1 + "ep1_citadel_03" 1 + "ep1_citadel_04" 1 + "ep1_background01" 1 + "ep1_background01a" 1 + "ep1_background02" 1 + "ep2_outland_01" 1 + "ep2_outland_01a" 1 + "ep2_outland_02" 1 + "ep2_outland_03" 1 + "ep2_outland_04" 1 + "ep2_outland_05" 1 + "ep2_outland_06" 1 + "ep2_outland_06a" 1 + "ep2_outland_07" 1 + "ep2_outland_08" 1 + "ep2_outland_09" 1 + "ep2_outland_10" 1 + "ep2_outland_10a" 1 + "ep2_outland_11" 1 + "ep2_outland_11a" 1 + "ep2_outland_11b" 1 + "ep2_outland_12" 1 + "ep2_outland_12a" 1 + "ep2_background01" 1 + "ep2_background02" 1 + "ep2_background02a" 1 + "ep2_background03" 1 + "credits" 1 + "vst_lostcoast" 1 + "test" 1 + "sdk_vehicles" 1 + } + + FileSystem + { + SteamAppId 243750 + + SearchPaths + { + game+mod |gameinfo_path|custom/* + game+game_write+mod+mod_write+default_write_path |gameinfo_path|. + gamebin |gameinfo_path|bin + + // The lines below until the BREAK comment are responsible for the game resources to work properly + // in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2, + // Source SDK and OF) in the same drive letter/partition. If you have a different storage configuration, + // feel free to modify the paths below between quotes (example: D:\Steam\steamapps\common\Team Fortress 2\tf). + game "/home/container/tf2/tf/tf2_misc.vpk" + game "/home/container/tf2/tf/tf2_sound_misc.vpk" + game "/home/container/tf2/tf/tf2_sound_vo_english.vpk" + game "/home/container/tf2/tf/tf2_textures.vpk" + game "/home/container/tf2/tf" + + game "/home/container/tf2/hl2/hl2_textures.vpk" + game "/home/container/tf2/hl2/hl2_sound_vo_english.vpk" + game "/home/container/tf2/hl2/hl2_sound_misc.vpk" + + // The hl2 folder here is from Source SDK Base 2013 Multiplayer. + game "|all_source_engine_paths|hl2\hl2_misc.vpk" + game "|all_source_engine_paths|hl2" + // ========== BREAK ========== + + platform |all_source_engine_paths|platform/platform_misc.vpk + platform |all_source_engine_paths|platform + + game+download |gameinfo_path|download + + } + } +} From 7b1de0a8b06b63a47f756bf2aac92f72dc2e42d0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 16:54:57 +0200 Subject: [PATCH 23/56] Create egg-teamspeak3-ARM64-server.json --- .../egg-teamspeak3-ARM64-server.json | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 voice_servers/teamspeak_arm64/egg-teamspeak3-ARM64-server.json diff --git a/voice_servers/teamspeak_arm64/egg-teamspeak3-ARM64-server.json b/voice_servers/teamspeak_arm64/egg-teamspeak3-ARM64-server.json new file mode 100644 index 00000000..df828049 --- /dev/null +++ b/voice_servers/teamspeak_arm64/egg-teamspeak3-ARM64-server.json @@ -0,0 +1,62 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2022-07-06T09:30:23+02:00", + "name": "Teamspeak3 Server ARM64", + "author": "josdekurk@gmail.com", + "description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.", + "features": null, + "docker_images": { + "ARM64": "ghcr.io\/parkervcp\/yolks:box64" + }, + "file_denylist": [], + "startup": "box64 .\/ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} license_accepted=1", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"listening on 0.0.0.0:\"\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/ts3.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(curl -sSL https:\/\/teamspeak.com\/versions\/server.json | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_x86-${TS_VERSION}.tar.bz2\" \r\ncurl -L http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar -xvj --strip-components=1", + "container": "ghcr.io\/pterodactyl\/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Version", + "description": "The version of Teamspeak 3 to use when running the server.", + "env_variable": "TS_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:6", + "field_type": "text" + }, + { + "name": "File Transfer Port", + "description": "The Teamspeak file transfer port", + "env_variable": "FILE_TRANSFER", + "default_value": "30033", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1,65535", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "The Teamspeak Query Port", + "env_variable": "QUERY_PORT", + "default_value": "10011", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1,65535", + "field_type": "text" + } + ] +} From 5ad73aeb54ee7e04063e172dd435a1fe78be1906 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:00:51 +0200 Subject: [PATCH 24/56] add unique README.md --- voice_servers/teamspeak_arm64/Readme.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 voice_servers/teamspeak_arm64/Readme.md diff --git a/voice_servers/teamspeak_arm64/Readme.md b/voice_servers/teamspeak_arm64/Readme.md new file mode 100644 index 00000000..4563a71b --- /dev/null +++ b/voice_servers/teamspeak_arm64/Readme.md @@ -0,0 +1,14 @@ +# TeamSpeak ARM64 + +## From their [Website](https://www.teamspeak.com/) + + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Voice | 9987 | +| Query | 10011 | +| File | 30033 | From 4915cdc11b3a018902ab6d91b3b8ab6cc088364e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:01:43 +0200 Subject: [PATCH 25/56] add to main Readme.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd0ac048..a108b65e 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ If you are reading this it looks like you are looking to add an egg to your serv ## [Voice Servers](/voice_servers) * [Lavalink](/voice_servers/lavalink) +* [Teamspeak_arm64](/voice_servers/teamspeak_arm64) * [TeaSpeak](/voice_servers/teaspeak) * [TS3-Manager](/voice_servers/ts3_manager) From e6ea34581ea9f3a14786a1f31ed8fed2819cb197 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:06:02 +0200 Subject: [PATCH 26/56] use proper casing --- README.md | 2 +- voice_servers/{teamspeak_arm64 => teamspeak_ARM64}/Readme.md | 0 .../egg-teamspeak3-arm64-server.json} | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename voice_servers/{teamspeak_arm64 => teamspeak_ARM64}/Readme.md (100%) rename voice_servers/{teamspeak_arm64/egg-teamspeak3-ARM64-server.json => teamspeak_ARM64/egg-teamspeak3-arm64-server.json} (100%) diff --git a/README.md b/README.md index a108b65e..be740610 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ If you are reading this it looks like you are looking to add an egg to your serv ## [Voice Servers](/voice_servers) * [Lavalink](/voice_servers/lavalink) -* [Teamspeak_arm64](/voice_servers/teamspeak_arm64) +* [Teamspeak_ARM64](/voice_servers/teamspeak_ARM64) * [TeaSpeak](/voice_servers/teaspeak) * [TS3-Manager](/voice_servers/ts3_manager) diff --git a/voice_servers/teamspeak_arm64/Readme.md b/voice_servers/teamspeak_ARM64/Readme.md similarity index 100% rename from voice_servers/teamspeak_arm64/Readme.md rename to voice_servers/teamspeak_ARM64/Readme.md diff --git a/voice_servers/teamspeak_arm64/egg-teamspeak3-ARM64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json similarity index 100% rename from voice_servers/teamspeak_arm64/egg-teamspeak3-ARM64-server.json rename to voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json From e430bfba6b521768e21d864dee2cdf74f94fde2b Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:11:07 +0200 Subject: [PATCH 27/56] fix invalid Json --- .../teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index df828049..975baecb 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-06T09:30:23+02:00", + "exported_at": "2022-07-06T17:10:16+02:00", "name": "Teamspeak3 Server ARM64", "author": "josdekurk@gmail.com", "description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.", "features": null, "docker_images": { - "ARM64": "ghcr.io\/parkervcp\/yolks:box64" + "ghcr.io\/parkervcp\/yolks:box64": "ghcr.io\/parkervcp\/yolks:box64" }, "file_denylist": [], "startup": "box64 .\/ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} license_accepted=1", @@ -59,4 +59,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 8ab66a55bbcd7160fb4f747a2c70fc1ac70d565e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:15:29 +0200 Subject: [PATCH 28/56] Create egg-vanilla-bedrock-ARM64.json --- .../bedrock/egg-vanilla-bedrock-ARM64.json | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json diff --git a/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json b/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json new file mode 100644 index 00000000..30a6633f --- /dev/null +++ b/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json @@ -0,0 +1,94 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2022-07-06T17:14:36+02:00", + "name": "Vanilla Bedrock ARM64", + "author": "josdekurk@gmail.com", + "description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".", + "features": [ + "pid_limit" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:box64": "ghcr.io\/parkervcp\/yolks:box64" + }, + "file_denylist": [], + "startup": "box64 .\/bedrock_server", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"server-name\": \"{{server.build.env.SERVERNAME}}\",\r\n \"gamemode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"difficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"allow-cheats\": \"{{server.build.env.CHEATS}}\",\r\n \"max-threads\": \"2\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server started\"\r\n}", + "logs": "{}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Minecraft CDN Akamai blocks script user-agents\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n curl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -H \"Accept-Encoding: gzip, deflate\" -o versions.html.gz https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\r\n DOWNLOAD_URL=$(zgrep -o 'https:\/\/minecraft.azureedge.net\/bin-linux\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak versions.html.gz\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitelist.json.bak\r\n\r\necho -e \"Downloading files from: $DOWNLOAD_URL\"\r\n\r\ncurl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -o $DOWNLOAD_FILE $DOWNLOAD_URL\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $DOWNLOAD_FILE\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $DOWNLOAD_FILE\r\n\r\necho 'emit-server-telemetry=true' >> server.properties\r\n\r\necho -e \"restoring backup config files - on first install there will be file not found errors which you can ignore.\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitelist.json\r\n\r\nchmod +x bedrock_server\r\n\r\necho -e \"Install Completed\"", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Bedrock Version", + "description": "The version of bedrock. (Ex. 1.7.0.13)\r\n\r\nDefault version is latest.", + "env_variable": "BEDROCK_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "ld lib path", + "description": "Dumb reasons to need this", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "The name for the server", + "env_variable": "SERVERNAME", + "default_value": "Bedrock Dedicated Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "Gamemode", + "description": "Allowed values: \"survival\", \"creative\", or \"adventure\"", + "env_variable": "GAMEMODE", + "default_value": "survival", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:survival,creative,adventure", + "field_type": "text" + }, + { + "name": "Difficulty", + "description": "Allowed values: \"peaceful\", \"easy\", \"normal\", or \"hard\"", + "env_variable": "DIFFICULTY", + "default_value": "easy", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:peaceful,easy,normal,hard", + "field_type": "text" + }, + { + "name": "Allow cheats", + "description": "If true then cheats like commands can be used.\r\n\r\nAllowed values: \"true\" or \"false\"", + "env_variable": "CHEATS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + } + ] +} From f0e333dcc0e421df6a2090605e85cb850f7c6a81 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 11 Jul 2022 13:19:40 +0200 Subject: [PATCH 29/56] update redis to new image --- .../{egg-redis.json => egg-redis-5.json} | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) rename database/redis/redis-5/{egg-redis.json => egg-redis-5.json} (78%) diff --git a/database/redis/redis-5/egg-redis.json b/database/redis/redis-5/egg-redis-5.json similarity index 78% rename from database/redis/redis-5/egg-redis.json rename to database/redis/redis-5/egg-redis-5.json index 6ac93d66..440ace5f 100644 --- a/database/redis/redis-5/egg-redis.json +++ b/database/redis/redis-5/egg-redis-5.json @@ -1,13 +1,18 @@ { "_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-03-04T11:05:29-05:00", + "exported_at": "2022-07-11T13:17:43+02:00", "name": "Redis", "author": "parker@parkervcp.com", "description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.", - "image": "quay.io\/parkervcp\/pterodactyl-images:db_redis", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:redis_5": "ghcr.io\/parkervcp\/yolks:redis_5" + }, + "file_denylist": [], "startup": "redis-server --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save", "config": { "files": "{}", @@ -28,9 +33,10 @@ "description": "The password redis should use to secure the server.", "env_variable": "SERVER_PASSWORD", "default_value": "P@55w0rd", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string" + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" } ] -} \ No newline at end of file +} From afc767e7e4d2cd8daa43f0295061b569b7d2f923 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 11 Jul 2022 13:20:41 +0200 Subject: [PATCH 30/56] Update egg-redis-6.json --- database/redis/redis-6/egg-redis-6.json | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/database/redis/redis-6/egg-redis-6.json b/database/redis/redis-6/egg-redis-6.json index d82fcb0e..ead0ed28 100644 --- a/database/redis/redis-6/egg-redis-6.json +++ b/database/redis/redis-6/egg-redis-6.json @@ -1,13 +1,18 @@ { "_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-09-28T21:07:40-04:00", + "exported_at": "2022-07-11T13:18:27+02:00", "name": "Redis-6", "author": "parker@parkervcp.com", "description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.", - "image": "quay.io\/parkervcp\/pterodactyl-images:db_redis-6", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:redis_6": "ghcr.io\/parkervcp\/yolks:redis_6" + }, + "file_denylist": [], "startup": "\/usr\/local\/bin\/redis-server \/home\/container\/redis.conf --save 60 1 --dir \/home\/container\/ --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}}; redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save", "config": { "files": "{}", @@ -28,9 +33,10 @@ "description": "The password redis should use to secure the server.", "env_variable": "SERVER_PASSWORD", "default_value": "P@55w0rd", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string" + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" } ] -} \ No newline at end of file +} From b8cfdf2bff69532cc2e3146ceab7ff32a9e10c06 Mon Sep 17 00:00:00 2001 From: Yamiru Date: Sun, 17 Jul 2022 07:29:56 +0200 Subject: [PATCH 31/56] info --- game_eggs/steamcmd_servers/black_mesa/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 game_eggs/steamcmd_servers/black_mesa/README.md diff --git a/game_eggs/steamcmd_servers/black_mesa/README.md b/game_eggs/steamcmd_servers/black_mesa/README.md new file mode 100644 index 00000000..3a1e3980 --- /dev/null +++ b/game_eggs/steamcmd_servers/black_mesa/README.md @@ -0,0 +1,17 @@ +# Black Mesa + +## From their [Website](https://www.crowbarcollective.com/games/black-mesa) + +Black Mesa is a 2020 first-person shooter game. It is a third-party remake of Half-Life (1998) made in the Source game engine. + +## Server Ports + +BlackMessa servers require 2 ports to be open, the SourceTV port can also be opened for spectators. + +| Port | default | +|-----------|---------| +| Game/rcon | 27015 | +| SourceTV | 27020 | +| ClientPort | 27005 | + +## Steam Download [SteamStore](https://store.steampowered.com/app/362890/Black_Mesa/) From fc73b9dbf6f19df426e6b605d327c01ed928293a Mon Sep 17 00:00:00 2001 From: Yamiru Date: Sun, 17 Jul 2022 07:30:18 +0200 Subject: [PATCH 32/56] Black Mesa --- .../black_mesa/egg-black-mesa.json | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json diff --git a/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json b/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json new file mode 100644 index 00000000..8d2dfdbc --- /dev/null +++ b/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.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": "2022-07-17T07:02:24+02:00", + "name": "Black Mesa", + "author": "yamiru@yamiru.com", + "description": "Black Mesa is a 2020 first-person shooter game. It is a third-party remake of Half-Life (1998) made in the Source game engine.", + "features": null, + "docker_images": { + "quay.io\/pterodactyl\/core:source": "quay.io\/pterodactyl\/core:source" + }, + "file_denylist": [], + "startup": ".\/srcds_run -game {{SRCDS_GAME}} -strictportbind -ip 0.0.0.0 -port {{SERVER_PORT}} +clientport {{SRCDS_CPORT}} +tv_port {{SRCDS_STV}} +map {{SRCDS_MAP}} +servercfgfile server.cfg -maxplayers {{MAX_PLAYERS}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"gameserver Steam ID\"\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "nmrih id", + "env_variable": "SRCDS_APPID", + "default_value": "346680", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Game Name", + "description": "game name", + "env_variable": "SRCDS_GAME", + "default_value": "bms", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Default Map", + "description": "default map", + "env_variable": "SRCDS_MAP", + "default_value": "dm_crossfire", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:25", + "field_type": "text" + }, + { + "name": "Client port", + "description": "client port", + "env_variable": "SRCDS_CPORT", + "default_value": "27005", + "user_viewable": true, + "user_editable": false, + "rules": "required|regex:\/^(\\w{1,20})$\/", + "field_type": "text" + }, + { + "name": "Source TV", + "description": "source TV", + "env_variable": "SRCDS_STV", + "default_value": "27020", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "The maximum amount of players allowed on your game server.", + "env_variable": "MAX_PLAYERS", + "default_value": "32", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|max:128", + "field_type": "text" + } + ] +} \ No newline at end of file From e4759cda41048875488a3747a974163ce3c0ab88 Mon Sep 17 00:00:00 2001 From: Yamiru Date: Sun, 17 Jul 2022 07:33:17 +0200 Subject: [PATCH 33/56] added Black mesa --- game_eggs/steamcmd_servers/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index d6085c8a..58afb14b 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -28,6 +28,10 @@ This is a collection of servers that use SteamCMD to install. [Barotrauma](barotrauma) +## Black Mesa + +[Black Mesa](black_mesa) + ## Citadel: Forged with Fire [citadel](citadel) From b99103906d60b56b94f6e3a90731b294cd43a803 Mon Sep 17 00:00:00 2001 From: Yamiru Date: Sun, 17 Jul 2022 07:34:33 +0200 Subject: [PATCH 34/56] added black mesa --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 1a62e6e1..5f3aa6c0 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -112,6 +112,7 @@ * [Assetto Corsa](steamcmd_servers/assetto_corsa) * [Avorion](steamcmd_servers/avorion) * [Barotrauma](steamcmd_servers/barotrauma) +* [Black Mesa](steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](steamcmd_servers/citadel) * [Conan Exiles](steamcmd_servers/conan_exiles) * [CryoFall](steamcmd_servers/cryofall) From 48e8e905da01a5c80fbaf20e928c7d1963c9dbd9 Mon Sep 17 00:00:00 2001 From: Yamiru Date: Sun, 17 Jul 2022 07:35:11 +0200 Subject: [PATCH 35/56] added Black Mesa --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd0ac048..9896a1c4 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Assetto Corsa](game_eggs/steamcmd_servers/assetto_corsa) * [Avorion](game_eggs/steamcmd_servers/avorion) * [Barotrauma](game_eggs/steamcmd_servers/barotrauma) +* [Black Mesa](game_eggs/steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel) * [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles) * [Craftopia](game_eggs/steamcmd_servers/craftopia) From e59dc07134f9c21b42da76d3376e410964913e97 Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Mon, 18 Jul 2022 10:08:16 -0400 Subject: [PATCH 36/56] Fixed issue with Murse failing to download + corrected gamedata download --- .../steamcmd_servers/open_fortress/egg-open-fortress.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json index a2d73ab8..577ef45c 100644 --- a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json +++ b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-06-11T12:47:33-04:00", + "exported_at": "2022-07-18T08:23:04-04:00", "name": "Open Fortress", "author": "espeon@espeon.dev", "description": "Open Fortress is a free Team Fortress 2 mod that introduces new gamemodes, weapons, characters, maps, and more to the world of TF2.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nfi\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# 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## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## download OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/dl.spiderden.net\/murse\/linux -O murse 2> \/dev\/null\r\nchmod +x murse\r\n.\/murse upgrade asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## download fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nwget -v https:\/\/espeon.dev\/gameinfo.txt -O gameinfo.txt\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nfi\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# 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## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## download OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/dl.spiderden.net\/murse\/linux -O murse 2> \/dev\/null\r\nchmod +x murse\r\n.\/murse upgrade -u https:\/\/toast1.openfortress.fun\/toast -c $(curl https:\/\/toast1.openfortress.fun\/toast\/reithreads) asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## add fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nrm -rf gameinfo.txt\r\ncat >> gameinfo.txt << EOF\r\n\"GameInfo\"\r\n{\r\ngame \"Open Fortress\"\r\ntitle \"\"\r\ntitle2 \"\"\r\ngamelogo \"1\"\r\ndeveloper \"https:\/\/github.com\/AgitationSkeleton\/open_fortress\/blob\/master\/credits.txt\"\r\ndeveloper_url\t\"https:\/\/github.com\/KaidemonLP\/Open-Fortress-Source\"\r\nmanual \"\"\r\ntype \"multiplayer_only\"\r\nhasportals \"0\" \/\/ gameui.dll\r\nhashdcontent\t\"0\" \/\/ gameui.dll\r\nnomodels \"0\" \/\/ gameui.dll\r\nnohimodel \"0\" \/\/ gameui.dll\r\nnocrosshair \"0\" \/\/ gameui.dll\r\nadvcrosshair \"1\" \/\/ gameui.dll\r\nnodifficulty\t\"1\" \/\/ gameui.dll\r\nsupportsvr \"0\" \/\/ engine.dll + gameui.dll\r\nbots \"0\" \/\/ gameui.dll\r\nnodegraph \"1\" \/\/ engine.dll\r\nperfwizard \"0\" \/\/ unused\r\nSupportsDX8 \"0\" \/\/ unused\r\nSupportsDX9 \"1\" \/\/ unused\r\nSupportsDX10\t\"0\" \/\/ unused\r\nSupportsDX11\t\"0\" \/\/ unused\r\nSupportsXbox\t\"0\" \/\/ unused\r\nSupportsXbox360\t\"0\" \/\/ unused\r\nSupportsXboxOne\t\"0\" \/\/ unused\r\nSupportsPS3 \"0\" \/\/ unused\r\nSupportsPS4 \"0\" \/\/ unused\r\nicon \"resource\/game\"\r\nGameData \"ofd_fic2.fgd\"\r\nInstancePath\t\"maps\/instances\/\"\r\nhidden_maps\r\n{\r\n\"test_speakers\" 1\r\n\"test_hardware\" 1\r\n\"background01\" 1\r\n\"background02\" 1\r\n\"background03\" 1\r\n\"background04\" 1\r\n\"background05\" 1\r\n\"background06\" 1\r\n\"background07\" 1\r\n\"background08\" 1\r\n\"background09\" 1\r\n\"background12\" 1\r\n\"background15\" 1\r\n\"ep1_c17_00\" 1\r\n\"ep1_c17_00a\" 1\r\n\"ep1_c17_01\" 1\r\n\"ep1_c17_01a\" 1\r\n\"ep1_c17_02\" 1\r\n\"ep1_c17_02a\" 1\r\n\"ep1_c17_02b\" 1\r\n\"ep1_c17_05\" 1\r\n\"ep1_c17_06\" 1\r\n\"ep1_citadel_00\"\t1\r\n\"ep1_citadel_00_demo\" 1\r\n\"ep1_citadel_01\"\t1\r\n\"ep1_citadel_02\"\t1\r\n\"ep1_citadel_02b\"\t1\r\n\"ep1_citadel_03\"\t1\r\n\"ep1_citadel_04\"\t1\r\n\"ep1_background01\"\t1\r\n\"ep1_background01a\"\t1\r\n\"ep1_background02\"\t1\r\n\"ep2_outland_01\"\t1\r\n\"ep2_outland_01a\"\t1\r\n\"ep2_outland_02\"\t1\r\n\"ep2_outland_03\"\t1\r\n\"ep2_outland_04\"\t1\r\n\"ep2_outland_05\"\t1\r\n\"ep2_outland_06\"\t1\r\n\"ep2_outland_06a\"\t1\r\n\"ep2_outland_07\"\t1\r\n\"ep2_outland_08\"\t1\r\n\"ep2_outland_09\"\t1\r\n\"ep2_outland_10\"\t1\r\n\"ep2_outland_10a\"\t1\r\n\"ep2_outland_11\"\t1\r\n\"ep2_outland_11a\"\t1\r\n\"ep2_outland_11b\"\t1\r\n\"ep2_outland_12\"\t1\r\n\"ep2_outland_12a\"\t1\r\n\"ep2_background01\"\t1\r\n\"ep2_background02\"\t1\r\n\"ep2_background02a\"\t1\r\n\"ep2_background03\"\t1\r\n\"credits\" 1\r\n\"vst_lostcoast\" 1\r\n\"test\" 1\r\n\"sdk_vehicles\" 1\r\n}\r\nFileSystem\r\n{\r\nSteamAppId 243750\r\nSearchPaths\r\n{\r\ngame+mod |gameinfo_path|custom\/*\r\ngame+game_write+mod+mod_write+default_write_path |gameinfo_path|.\r\ngamebin |gameinfo_path|bin\r\n\/\/ The lines below until the BREAK comment are responsible for the game resources to work properly\r\n\/\/ in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,\r\n\/\/ Source SDK and OF) in the same drive letter\/partition. If you have a different storage configuration,\r\n\/\/ feel free to modify the paths below between quotes (example: D:\\Steam\\steamapps\\common\\Team Fortress 2\\tf).\r\ngame \"\/home\/container\/tf2\/tf\/tf2_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_misc.vpk\"\r\n\/\/ The hl2 folder here is from Source SDK Base 2013 Multiplayer.\r\ngame \"|all_source_engine_paths|hl2\\hl2_misc.vpk\"\r\ngame \"|all_source_engine_paths|hl2\"\r\n\/\/ ========== BREAK ==========\r\nplatform |all_source_engine_paths|platform\/platform_misc.vpk\r\nplatform |all_source_engine_paths|platform\r\ngame+download |gameinfo_path|download\r\n}\r\n}\r\n}\r\nEOF\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so", "container": "ubuntu:18.04", "entrypoint": "bash" } From eb3da59c590eec221b1e75b6f874935dfa67e851 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:26:06 +0200 Subject: [PATCH 37/56] add the emulation warning --- game_eggs/minecraft/bedrock/bedrock/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/game_eggs/minecraft/bedrock/bedrock/README.md b/game_eggs/minecraft/bedrock/bedrock/README.md index 3d58ffa3..1eb64f8e 100644 --- a/game_eggs/minecraft/bedrock/bedrock/README.md +++ b/game_eggs/minecraft/bedrock/bedrock/README.md @@ -18,4 +18,8 @@ Also see the [Mojang Issue tracker](https://bugs.mojang.com/projects/BDS/issues/ * On start the server will report is is listening on port 19132 but is listening on the correct port * Constant `NO LOG FILE` in the console before every log line. * Server chat is not printed to the console. -* when you set ops in game they do not get saved. \ No newline at end of file +* when you set ops in game they do not get saved. +* The arm64 may not perform as expected due to the amd64 to arm emulaton. + +### arm64 +* The arm64 may not perform as expected due to the amd64 to arm emulaton. From e6864239842307edd62f7a003a0111de0e0b40e0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:28:46 +0200 Subject: [PATCH 38/56] add emulation warning --- voice_servers/teamspeak_ARM64/Readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/voice_servers/teamspeak_ARM64/Readme.md b/voice_servers/teamspeak_ARM64/Readme.md index 4563a71b..ebccfefe 100644 --- a/voice_servers/teamspeak_ARM64/Readme.md +++ b/voice_servers/teamspeak_ARM64/Readme.md @@ -12,3 +12,6 @@ Ports required to run the server in a table format. | Voice | 9987 | | Query | 10011 | | File | 30033 | + +### arm64 +* The arm64 may not perform as expected due to the amd64 to arm emulaton. \ No newline at end of file From 067d2ed34d06a202c44d802dec1edecf75690a09 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:36:08 +0200 Subject: [PATCH 39/56] fix double line --- game_eggs/minecraft/bedrock/bedrock/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/game_eggs/minecraft/bedrock/bedrock/README.md b/game_eggs/minecraft/bedrock/bedrock/README.md index 1eb64f8e..191afb52 100644 --- a/game_eggs/minecraft/bedrock/bedrock/README.md +++ b/game_eggs/minecraft/bedrock/bedrock/README.md @@ -19,7 +19,6 @@ Also see the [Mojang Issue tracker](https://bugs.mojang.com/projects/BDS/issues/ * Constant `NO LOG FILE` in the console before every log line. * Server chat is not printed to the console. * when you set ops in game they do not get saved. -* The arm64 may not perform as expected due to the amd64 to arm emulaton. ### arm64 * The arm64 may not perform as expected due to the amd64 to arm emulaton. From 694b6693124623cf04194c5370c506dc1a4197ae Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 20 Jul 2022 17:35:38 +0200 Subject: [PATCH 40/56] Update alt:v --- game_eggs/gta/altv/egg-alt--v.json | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/game_eggs/gta/altv/egg-alt--v.json b/game_eggs/gta/altv/egg-alt--v.json index 5052a307..ef127936 100644 --- a/game_eggs/gta/altv/egg-alt--v.json +++ b/game_eggs/gta/altv/egg-alt--v.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": "2021-01-31T13:27:52+00:00", + "exported_at": "2022-07-20T17:34:40+02:00", "name": "alt:V", "author": "parker@parkervcp.com", "description": "alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V", "features": null, - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:game_altv" - ], - "file_denylist": "", - "startup": "chmod +x .\/altv-server && .\/altv-server", + "docker_images": { + "ghcr.io\/parkervcp\/games:altv": "ghcr.io\/parkervcp\/games:altv" + }, + "file_denylist": [], + "startup": ".\/altv-server", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"host:\": \"host: 0.0.0.0\",\r\n \"port:\": \"port: {{server.build.default.port}}\",\r\n \"password:\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"description:\": \"description: {{server.build.env.SERVER_DESC}}\"\r\n }\r\n },\r\n \"update.cfg\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"branch\": \"{{server.build.env.BUILD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server started\"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n#\r\n# Script Name: update.sh\r\n#\r\n# Author: Lhoerion\r\n#\r\n# Description: The following script compares SHA-1 hashes of remote and local alt:V files. If local file is missing or outdated, script automatically downloads it to script directory.\r\n# Old files are preserved as *.old. Script also keep track of current branch and build. Server start script gets created if missing.\r\n#\r\n# Run Information: This script is run manually.\r\n# Dependencies: coreutils, wget, >=jq_1.4, pcregrep\r\n#\r\n\r\napt update\r\napt install -y libatomic1 zip unzip jq curl wget libc-bin\r\ncd \/mnt\/server\r\n\r\nnoBackup=false\r\nnoLogFile=false\r\ndryRun=false\r\nsilent=false\r\nfor arg in \"$@\"\r\ndo\r\n if [ $arg = '--no-logfile' ]; then\r\n noLogFile=true\r\n elif [ $arg = '--no-backup' ]; then\r\n noBackup=true\r\n elif [ $arg = '--dry-run' ]; then\r\n dryRun=true\r\n elif [ $arg = '--silent' ]; then\r\n silent=true\r\n fi\r\ndone\r\nfiles=()\r\nprintAndLog() {\r\n if [[ \"$silent\" == false ]]; then\r\n outFd=1\r\n else\r\n exec {outFd}>\/dev\/null\r\n fi\r\n if [ \"$2\" = 'ERR' ]; then\r\n printf \"\\e[91m[$(date +%T)][Error] $1\\e[39m\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n elif [ \"$2\" = 'WARN' ]; then\r\n printf \"\\e[93m[$(date +%T)][Warning] $1\\e[39m\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n elif [ \"$2\" = 'APP' ]; then\r\n printf \"$1\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n else\r\n printf \"[$(date +%T)] $1\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n fi\r\n}\r\nsemVerCmp() {\r\n declare -r \"semVerRegex=^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*))?\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$\"\r\n local matchA=(${1##v})\r\n local matchB=(${2##v})\r\n for i in {1..5}\r\n do\r\n matchA+=(`echo ${1##v} | pcregrep \"-o$i\" $semVerRegex`)\r\n matchB+=(`echo ${2##v} | pcregrep \"-o$i\" $semVerRegex`)\r\n done\r\n if [ ${1##v} == ${2##v} ]; then\r\n echo 0 && return 0\r\n fi\r\n if [ \\( -z $matchA[4] \\) -a \\( ! -z $matchB[4] \\) ]; then\r\n echo 1 && return 0\r\n elif [ \\( ! -z $matchA[4] \\) -a \\( -z $matchB[4] \\) ]; then\r\n echo -1 && return 0\r\n fi\r\n local i=0\r\n for a in ${matchA[@]}\r\n do\r\n local b=\"${matchB[$i]}\"\r\n if [ \\( $i -eq 2 \\) -a \\( \\( -z $a \\) -o \\( -z $b \\) \\) ]; then\r\n continue\r\n fi\r\n if [[ $a > $b ]]; then\r\n echo 1 && return 0\r\n elif [[ $a < $b ]]; then\r\n echo -1 && return 0\r\n fi\r\n i=$((i + 1))\r\n done\r\n echo 0 && return 0\r\n}\r\nfetchUpdateData() {\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/server\/$localBranch\/x64_linux\/update.json\" -A 'AltPublicAgent')\r\n echo $updateData | jq -e '.' >\/dev\/null 2>&1\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for update, try again later\\n\" 'ERR'\r\n exit 1\r\n fi\r\n str='. | to_entries | map(if .key==\"hashList\" then {\"key\":.key} + {\"value\":(.value | to_entries | map(. + {\"value\":[.value, \"%s\"]}) | from_entries)} else . end) | from_entries'\r\n local updateTmp=($(mktemp '\/tmp\/update.sh.XXX'))\r\n echo '{}' > ${updateTmp[0]}\r\n echo $updateData | jq -c \"$(printf \"$str\" 'server')\" > ${updateTmp[0]}\r\n for (( i=0; i < ${#modules[@]}; i++ ))\r\n do\r\n if [[ \"${modules[$i]}\" == 'csharp-module' ]]; then\r\n modules[$i]='coreclr-module'\r\n fi\r\n local moduleName=${modules[$i]}\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/$moduleName\/$localBranch\/x64_linux\/update.json\" -A 'AltPublicAgent')\r\n echo $updateData | jq -e '.' >\/dev\/null 2>&1\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for $moduleName update\\n\" 'WARN'\r\n else\r\n if [[ \"$moduleName\" == 'csharp-module' ]]; then\r\n if [[ $(echo $updateData | jq -c '.hashList | has(\"AltV.Net.Host.dll\")') == false ]]; then\r\n updateData=$(echo $updateData | jq '.hashList |= . + {\"AltV.Net.Host.dll\":\"'$(printf \"%0.s0\" {1..40})'\"}')\r\n updateData=$(echo $updateData | jq '.hashList |= . + {\"AltV.Net.Host.runtimeconfig.json\":\"'$(printf \"%0.s0\" {1..40})'\"}')\r\n fi\r\n if [[ $(echo $updateData | jq -c '.hashList | has(\"modules\/libcsharp-module.so\")') == false ]]; then\r\n updateData=$(echo $updateData | jq '.hashList |= . + {\"modules\/libcsharp-module.so\":\"'$(printf \"%0.s0\" {1..40})'\"}')\r\n fi\r\n fi\r\n updateTmp+=($(mktemp '\/tmp\/update.sh.XXX'))\r\n echo '{}' > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n echo $updateData | jq -c \"$(printf \"$str\" \"$moduleName\")\" > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n fi\r\n done\r\n updateData=$(jq -s '.[0].latestBuildNumber as $b | .[0].version as $c | reduce .[] as $x ({}; . * $x) | .latestBuildNumber=$b | .version=$c' ${updateTmp[@]})\r\n remoteBuild=\"$(echo \"$updateData\" | jq -r '.latestBuildNumber')\"\r\n [[ $remoteBuild -eq -1 ]] && remoteBuild=$(echo \"$updateData\" | jq -r '.version')\r\n}\r\nvalidateFiles() {\r\n files=()\r\n for file in $(echo $updateData | jq -r '.hashList | keys[]')\r\n do\r\n if [[ ! -e \"$file\" || $(sha1sum \"$file\" | awk '{print $1}') != \"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[0]\")\" ]]; then\r\n files+=(\"$file\")\r\n fi\r\n done\r\n if [ ! -e 'server.cfg' ]; then\r\n printAndLog \"Server file server.cfg not found, creating one . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n printf 'name: \"alt:V Server\"\\nhost: 0.0.0.0\\nport: 7788\\nplayers: 128\\n#password: ultra-password\\nannounce: false\\n#token: YOUR_TOKEN\\ngamemode: Freeroam\\nwebsite: example.com\\nlanguage: en\\ndescription: \"alt:V Sample Server\"\\nmodules: [\\n \\n]\\nresources: [\\n \\n]\\n' > 'server.cfg' && printAndLog 'done\\n' 'APP' || printAndLog 'failed\\n' 'APP'\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n fi\r\n if [[ ! $localBuild =~ ^[0-9]+$ || $localBuild -ge 1232 ]]; then\r\n local nodeExist=$([ -e 'libnode.so.72' ] && echo true || echo false)\r\n local moduleExist=$([ -e 'modules\/libnode-module.so' ] && echo true || echo false)\r\n if [[ \"$nodeExist\" == true || \"$moduleExist\" == true ]]; then\r\n printAndLog \"Found old node-module files, removing . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n local result1=true\r\n local result2=true\r\n if [[ \"$nodeExist\" == true ]]; then\r\n rm -f 'libnode.so.72'\r\n result1=$([[ \"$?\" -eq 0 ]] && echo true || echo false)\r\n fi\r\n if [[ \"$moduleExist\" == true ]]; then\r\n rm -f 'modules\/libnode-module.so'\r\n result2=$([[ \"$?\" -eq 0 ]] && echo true || echo false)\r\n fi\r\n if [[ \"$result1\" == true && \"$result2\" == true ]]; then\r\n printAndLog 'done\\n' 'APP'\r\n else\r\n printAndLog 'failed\\n' 'APP'\r\n fi\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n fi\r\n fi\r\n if [ $localBuild != $remoteBuild ]; then\r\n printAndLog \"Server files update is available\\n\"\r\n elif [ \"${#files[@]}\" -ne 0 ]; then\r\n printAndLog \"Server files are invalidated\/corrupted, ${#files[@]} in total\\n\"\r\n else\r\n printAndLog \"Server files are up-to-date, no action required\\n\"\r\n fi\r\n\r\n if [[ \"$dryRun\" == false ]]; then\r\n localBuild=$remoteBuild\r\n modulesTemp=\"\"\r\n for (( i=0; i < ${#modules[@]}; i++ ))\r\n do\r\n modulesTemp+=\"\\\"${modules[$i]}\\\"\"\r\n if [ $(($i + 1)) -ne ${#modules[@]} ]; then\r\n modulesTemp+=','\r\n fi\r\n done\r\n if [[ $localBuild =~ ^[0-9]+$ ]]; then\r\n printf '{\"branch\":\"%s\",\"build\":%d,\"modules\":[%s]}' $localBranch $localBuild $modulesTemp | jq '.' > 'update.cfg'\r\n else\r\n printf '{\"branch\":\"%s\",\"build\":\"%s\",\"modules\":[%s]}' $localBranch $localBuild $modulesTemp | jq '.' > 'update.cfg'\r\n fi\r\n fi\r\n }\r\n downloadFiles() {\r\n if [ \"${#files[@]}\" -eq 0 ]; then\r\n return\r\n fi\r\n for file in ${files[@]}\r\n do\r\n dlType=\"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[1]\")\"\r\n outDir=\"$(dirname $file)\"\r\n printAndLog \"Downloading file $file . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n if [[ \"$noBackup\" == false && -e \"$file\" ]]; then\r\n mv \"$file\" \"$file.old\"\r\n fi\r\n if [[ ! -e \"$outDir\/\" ]]; then\r\n mkdir -p \"$outDir\/\"\r\n fi\r\n wget \"https:\/\/cdn.altv.mp\/$dlType\/$localBranch\/x64_linux\/${file}?build=$localBuild\" -U 'AltPublicAgent' -O \"$file\" -N -q && printAndLog 'done\\n' 'APP' || printAndLog 'failed\\n' 'APP'\r\n if [ ! -e \"$file\" ]; then\r\n continue\r\n fi\r\n if [ -e \"$file.old\" ]; then\r\n chmod --reference=\"$file.old\" \"$file\" || printAndLog \"Failed to copy chmod to file $file\\n\" 'ERR'\r\n chmod -x \"$file.old\" || printAndLog \"Failed to remove execution permissions from file $file.old\\n\" 'ERR'\r\n else\r\n chmod +x \"$file\" || printAndLog \"Failed to add execution permissions to file $file\\n\" 'ERR'\r\n fi\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n done\r\n validateFiles\r\n }\r\n\r\n if [ $noLogFile != true ]; then\r\n truncate -s 0 'update.log'\r\n fi\r\n if [[ ( \"$dryRun\" == false ) && ( ! -e 'update.cfg' ) ]]; then\r\n printf '{\"branch\":\"release\",\"modules\":[\"js-module\"]}' | jq '.' > 'update.cfg'\r\n fi\r\n updateCfg=$([[ -e 'update.cfg' ]] && cat 'update.cfg' || printf '{\"branch\":\"release\",\"modules\":[\"js-module\"]}' | jq '.')\r\n localBranch=$(echo \"$updateCfg\" | jq -r '.branch')\r\n [[ ! -n \"$localBranch\" || \"$localBranch\" != 'release' && \"$localBranch\" != 'rc' && \"$localBranch\" != 'dev' ]] && localBranch='release'\r\n modules=($(echo \"$updateCfg\" | jq -r '.modules \/\/ \"\"' | tr -d '[],\"'))\r\n [[ ! -n \"$modules\" ]] && modules=('js-module')\r\n fetchUpdateData\r\n localBuild=\"$(echo \"$updateCfg\" | jq -r 'if .build == null then empty else .build end')\"\r\n [[ -z $localBuild || $localBuild == \"-1\" ]] && localBuild=$remoteBuild\r\n printAndLog \"Current version: $localBuild\\n\"\r\n printAndLog \"Latest version: $remoteBuild\\n\"\r\n validateFiles\r\n downloadFiles\r\nchmod +x .\/altv-server\r\necho -e \"install complete\"", + "script": "#!\/bin\/bash\r\n#\r\n# Script Name: update.sh\r\n#\r\n# Author: Lhoerion\r\n#\r\n# Description: The following script compares SHA-1 hashes of remote and local alt:V files. If local file is missing or outdated, script automatically downloads it to script directory.\r\n# Old files are preserved as *.old. Script also keep track of current branch and build. Server start script gets created if missing.\r\n#\r\n# Run Information: This script is run manually.\r\n# Dependencies: coreutils, wget, >=jq_1.4, pcregrep\r\n#\r\n\r\napt update\r\napt install -y libatomic1 zip unzip jq curl wget libc-bin coreutils pcregrep\r\ncd \/mnt\/server\r\n\r\n\r\n#!\/bin\/bash\r\n#\r\n# Script Name: update.sh\r\n#\r\n# Author: Lhoerion\r\n#\r\n# Description: The following script compares SHA-1 hashes of remote and local alt:V files. If local file is missing or outdated, script automatically downloads it to script directory.\r\n# Old files are preserved as *.old. Script also keep track of current branch and build. Server start script gets created if missing.\r\n#\r\n# Run Information: This script is run manually.\r\n# Dependencies: coreutils, wget, >=jq_1.4, pcregrep\r\n#\r\n\r\nnoBackup=false\r\nnoLogFile=false\r\ndryRun=false\r\nsilent=false\r\nfor arg in \"$@\"\r\ndo\r\n if [ $arg = '--no-logfile' ]; then\r\n noLogFile=true\r\n elif [ $arg = '--no-backup' ]; then\r\n noBackup=true\r\n elif [ $arg = '--dry-run' ]; then\r\n dryRun=true\r\n elif [ $arg = '--silent' ]; then\r\n silent=true\r\n fi\r\ndone\r\nfiles=()\r\nprintAndLog() {\r\n if [[ \"$silent\" == false ]]; then\r\n outFd=1\r\n else\r\n exec {outFd}>\/dev\/null\r\n fi\r\n if [ \"$2\" = 'ERR' ]; then\r\n printf \"\\e[91m[$(date +%T)][Error] $1\\e[39m\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n elif [ \"$2\" = 'WARN' ]; then\r\n printf \"\\e[93m[$(date +%T)][Warning] $1\\e[39m\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n elif [ \"$2\" = 'APP' ]; then\r\n printf \"$1\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n else\r\n printf \"[$(date +%T)] $1\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n fi\r\n}\r\nsemVerCmp() {\r\n declare -r \"semVerRegex=^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*))?\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$\"\r\n local matchA=(${1##v})\r\n local matchB=(${2##v})\r\n for i in {1..5}\r\n do\r\n matchA+=$(`echo ${1##v} | pcregrep \"-o$i\" $semVerRegex`)\r\n matchB+=$(`echo ${2##v} | pcregrep \"-o$i\" $semVerRegex`)\r\n done\r\n if [ ${1##v} == ${2##v} ]; then\r\n echo 0 && return 0\r\n fi\r\n if [ \\( -z $matchA[4] \\) -a \\( ! -z $matchB[4] \\) ]; then\r\n echo 1 && return 0\r\n elif [ \\( ! -z $matchA[4] \\) -a \\( -z $matchB[4] \\) ]; then\r\n echo -1 && return 0\r\n fi\r\n local i=0\r\n for a in ${matchA[@]}\r\n do\r\n local b=\"${matchB[$i]}\"\r\n if [ \\( $i -eq 2 \\) -a \\( \\( -z $a \\) -o \\( -z $b \\) \\) ]; then\r\n continue\r\n fi\r\n if [[ $a > $b ]]; then\r\n echo 1 && return 0\r\n elif [[ $a < $b ]]; then\r\n echo -1 && return 0\r\n fi\r\n i=$((i + 1))\r\n done\r\n echo 0 && return 0\r\n}\r\ngetFileHash() {\r\n local file=(${1##v})\r\n sha1sum \"$file\" | awk '{print $1}'\r\n}\r\nfetchUpdateData() {\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/server\/$localBranch\/x64_linux\/update.json\" -A 'AltPublicAgent')\r\n echo $updateData | jq -e '.' >\/dev\/null 2>&1\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for update, try again later\\n\" 'ERR'\r\n exit 1\r\n fi\r\n\r\n str='. | to_entries | map(if .key==\"hashList\" then {\"key\":.key} + {\"value\":(.value | to_entries | map(. + {\"value\":[.value, \"%s\"]}) | from_entries)} else . end) | from_entries'\r\n \r\n local updateTmp=($(mktemp '\/tmp\/update.sh.XXX'))\r\n\r\n echo '{}' > ${updateTmp[0]}\r\n echo $updateData | jq -c \"$(printf \"$str\" 'server')\" > ${updateTmp[0]}\r\n\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/data\/$localBranch\/update.json\" -A 'AltPublicAgent')\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for update, try again later\\n\" 'ERR'\r\n exit 1\r\n fi\r\n\r\n updateTmp+=($(mktemp '\/tmp\/update.sh.XXX'))\r\n echo '{}' > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n echo $updateData | jq -c \"$(printf \"$str\" 'data')\" > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n\r\n for (( i=0; i < ${#modules[@]}; i++ ))\r\n do\r\n if [[ \"${modules[$i]}\" == 'csharp-module' ]]; then\r\n modules[$i]='coreclr-module'\r\n fi\r\n local moduleName=${modules[$i]}\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/$moduleName\/$localBranch\/x64_linux\/update.json\" -A 'AltPublicAgent')\r\n echo $updateData | jq -e '.' >\/dev\/null 2>&1\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for $moduleName update\\n\" 'WARN'\r\n else\r\n updateTmp+=($(mktemp '\/tmp\/update.sh.XXX'))\r\n echo '{}' > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n echo $updateData | jq -c \"$(printf \"$str\" \"$moduleName\")\" > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n fi\r\n done\r\n updateData=$(jq -s '.[0].latestBuildNumber as $b | .[0].version as $c | reduce .[] as $x ({}; . * $x) | .latestBuildNumber=$b | .version=$c' ${updateTmp[@]})\r\n remoteBuild=\"$(echo \"$updateData\" | jq -r '.latestBuildNumber')\"\r\n [[ $remoteBuild -eq -1 ]] && remoteBuild=$(echo \"$updateData\" | jq -r '.version')\r\n}\r\nvalidateFiles() {\r\n files=()\r\n for file in $(echo $updateData | jq -r '.hashList | keys[]')\r\n do\r\n if [[ ! -e \"$file\" || (\"$(printf \"%0.s0\" {1..40})\" != \"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[0]\")\" && $(getFileHash \"$file\") != \"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[0]\")\") ]]; then\r\n files+=(\"$file\")\r\n fi\r\n done\r\n if [ ! -e 'server.cfg' ]; then\r\n printAndLog \"Server file server.cfg not found, creating one . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n printf 'name: \"alt:V Server\"\\nhost: 0.0.0.0\\nport: 7788\\nplayers: 128\\n#password: ultra-password\\nannounce: false\\n#token: YOUR_TOKEN\\ngamemode: Freeroam\\nwebsite: example.com\\nlanguage: en\\ndescription: \"alt:V Sample Server\"\\nmodules: [\\n \\n]\\nresources: [\\n \\n]\\n' > 'server.cfg' && printAndLog 'done\\n' 'APP' || printAndLog 'failed\\n' 'APP'\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n fi\r\n if [[ ! $localBuild =~ ^[0-9]+$ || $localBuild -ge 1232 ]]; then\r\n local nodeExist=$([ -e 'libnode.so.72' ] && echo true || echo false)\r\n local moduleExist=$([ -e 'modules\/libnode-module.so' ] && echo true || echo false)\r\n if [[ \"$nodeExist\" == true || \"$moduleExist\" == true ]]; then\r\n printAndLog \"Found old node-module files, removing . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n local result1=true\r\n local result2=true\r\n if [[ \"$nodeExist\" == true ]]; then\r\n rm -f 'libnode.so.72'\r\n result1=$([[ \"$?\" -eq 0 ]] && echo true || echo false)\r\n fi\r\n if [[ \"$moduleExist\" == true ]]; then\r\n rm -f 'modules\/libnode-module.so'\r\n result2=$([[ \"$?\" -eq 0 ]] && echo true || echo false)\r\n fi\r\n if [[ \"$result1\" == true && \"$result2\" == true ]]; then\r\n printAndLog 'done\\n' 'APP'\r\n else\r\n printAndLog 'failed\\n' 'APP'\r\n fi\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n fi\r\n fi\r\n if [ $localBuild != $remoteBuild ]; then\r\n printAndLog \"Server files update is available\\n\"\r\n elif [ \"${#files[@]}\" -ne 0 ]; then\r\n printAndLog \"Server files are invalidated\/corrupted, ${#files[@]} in total\\n\"\r\n else\r\n printAndLog \"Server files are up-to-date, no action required\\n\"\r\n fi\r\n\r\n if [[ \"$dryRun\" == false ]]; then\r\n localBuild=$remoteBuild\r\n modulesTemp=\"\"\r\n for (( i=0; i < ${#modules[@]}; i++ ))\r\n do\r\n modulesTemp+=\"\\\"${modules[$i]}\\\"\"\r\n if [ $(($i + 1)) -ne ${#modules[@]} ]; then\r\n modulesTemp+=','\r\n fi\r\n done\r\n if [[ $localBuild =~ ^[0-9]+$ ]]; then\r\n printf '{\"branch\":\"%s\",\"build\":%d,\"modules\":[%s]}' $localBranch $localBuild $modulesTemp | jq '.' > 'update.cfg'\r\n else\r\n printf '{\"branch\":\"%s\",\"build\":\"%s\",\"modules\":[%s]}' $localBranch $localBuild $modulesTemp | jq '.' > 'update.cfg'\r\n fi\r\n fi\r\n}\r\ndownloadFiles() {\r\n if [ \"${#files[@]}\" -eq 0 ]; then\r\n return\r\n fi\r\n for file in ${files[@]}\r\n do\r\n dlType=\"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[1]\")\"\r\n platform=$([ \"$dlType\" == \"data\" ] && echo \"\" || echo \"x64_linux\/\")\r\n updateData=\"$(echo $updateData | jq -r '.hashList.\"altv-server\"[1] = \"server\"')\"\r\n outDir=\"$(dirname $file)\"\r\n printAndLog \"Downloading file $file . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n if [[ \"$noBackup\" == false && -e \"$file\" ]]; then\r\n mv \"$file\" \"$file.old\"\r\n fi\r\n if [[ ! -e \"$outDir\/\" ]]; then\r\n mkdir -p \"$outDir\/\"\r\n fi\r\n\r\n wget \"https:\/\/cdn.altv.mp\/$dlType\/$localBranch\/$platform${file}?build=$localBuild\" -U 'AltPublicAgent' -O \"$file\" -N -q && printAndLog 'done\\n' 'APP' || printAndLog 'failed\\n' 'APP'\r\n if [ ! -e \"$file\" ]; then\r\n continue\r\n fi\r\n if [ -e \"$file.old\" ]; then\r\n chmod --reference=\"$file.old\" \"$file\" || printAndLog \"Failed to copy chmod to file $file\\n\" 'ERR'\r\n chmod -x \"$file.old\" || printAndLog \"Failed to remove execution permissions from file $file.old\\n\" 'ERR'\r\n else\r\n chmod +x \"$file\" || printAndLog \"Failed to add execution permissions to file $file\\n\" 'ERR'\r\n fi\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n done\r\n validateFiles\r\n}\r\n\r\nif [ $noLogFile != true ]; then\r\n truncate -s 0 'update.log'\r\nfi\r\nif [[ ( \"$dryRun\" == false ) && ( ! -e 'update.cfg' ) ]]; then\r\n printf '{\"branch\":\"release\",\"modules\":[\"js-module\"]}' | jq '.' > 'update.cfg'\r\nfi\r\nupdateCfg=$([[ -e 'update.cfg' ]] && cat 'update.cfg' || printf '{\"branch\":\"release\",\"modules\":[\"js-module\"]}' | jq '.')\r\nlocalBranch=$(echo \"$updateCfg\" | jq -r '.branch')\r\n[[ ! -n \"$localBranch\" || \"$localBranch\" != 'release' && \"$localBranch\" != 'rc' && \"$localBranch\" != 'dev' ]] && localBranch='release'\r\nmodules=($(echo \"$updateCfg\" | jq -r '.modules \/\/ \"\"' | tr -d '[],\"'))\r\n[[ ! -n \"$modules\" ]] && modules=('js-module')\r\nfetchUpdateData\r\nlocalBuild=\"$(echo \"$updateCfg\" | jq -r 'if .build == null then empty else .build end')\"\r\n[[ -z $localBuild || $localBuild == \"-1\" ]] && localBuild=$remoteBuild\r\nprintAndLog \"Current version: $localBuild\\n\"\r\nprintAndLog \"Latest version: $remoteBuild\\n\"\r\nvalidateFiles\r\ndownloadFiles\r\n\r\nchmod +x .\/altv-server\r\n\r\ncd \/mnt\/server\/data\r\n\r\nif [ -f \"vehmodels.bin\" ];\r\nthen\r\n echo \"vehmodels.bin found.\"\r\nelse\r\n echo \"vehmodels.bin has not been found, downloading it\"\r\n wget https:\/\/cdn.altv.mp\/data\/${BUILD}\/data\/vehmodels.bin\r\nfi\r\n\r\nif [ -f \"vehmods.bin\" ];\r\nthen\r\n echo \"vehmods.bin found.\"\r\nelse\r\n echo \"vehmods.bin has not been found, downloading it\"\r\n wget https:\/\/cdn.altv.mp\/data\/${BUILD}\/data\/vehmods.bin\r\nfi\r\n\r\nif [ -f \"clothes.bin\" ];\r\nthen\r\n echo \"clothes.bin found.\"\r\nelse\r\n echo \"clothes.bin has not been found, downloading it\"\r\n wget wget https:\/\/cdn.altv.mp\/data\/${BUILD}\/data\/clothes.bin\r\nfi\r\n\r\ncd \/mnt\/server\r\necho -e \"install complete\"", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -35,7 +35,8 @@ "default_value": ".", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Release Branch", @@ -44,7 +45,8 @@ "default_value": "release", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Password", @@ -53,7 +55,8 @@ "default_value": "ChangeMe", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|min:6" + "rules": "nullable|string|min:6", + "field_type": "text" }, { "name": "Server Description", @@ -62,7 +65,8 @@ "default_value": "A Pterodactyl Hosted Server", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" } ] } From 940eda73a1dd47fa4b831c45c38b337e99020bed Mon Sep 17 00:00:00 2001 From: Grant <99215336+runbgp@users.noreply.github.com> Date: Wed, 20 Jul 2022 17:32:49 -0400 Subject: [PATCH 41/56] Update beammp.json --- game_eggs/beamng/beammp/beammp.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/beamng/beammp/beammp.json b/game_eggs/beamng/beammp/beammp.json index 18388a3c..40eb5fd4 100644 --- a/game_eggs/beamng/beammp/beammp.json +++ b/game_eggs/beamng/beammp/beammp.json @@ -4,10 +4,10 @@ "version": "PTDL_v1", "update_url": null }, - "exported_at": "2022-04-17T16:09:38-05:00", - "name": "BeamMP", - "author": "me@grnt.dev", - "description": "Servers are an integral part of BeamMP; players are connected to each other through the server. They run natively on Windows and Linux. This Pterodactyl Egg makes it easier than ever to get a server up and running.\r\n\r\nYou can make private servers, which only people you invite can join, or public servers, which will show in our official server list.\r\n\r\nYou can read more about BeamMP Servers here https:\/\/wiki.beammp.com\/en\/home\/Server_Mod", + "exported_at": "2021-12-22T09:10:34+00:00", + "name": "BeamMP Servers", + "author": "noah@noahserver.online", + "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", "features": null, "images": [ "ghcr.io\/parkervcp\/yolks:debian" From 860f40a4945dbda4826ee05fd0143089a1fc3a67 Mon Sep 17 00:00:00 2001 From: ICon Date: Sat, 23 Jul 2022 18:57:29 -0600 Subject: [PATCH 42/56] Fixed broken Minecraft Readme Links --- game_eggs/minecraft/README.md | 54 +++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 29f64f6f..74fec827 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -13,26 +13,26 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, ## [Java](java) Servers for Java Minecraft -* [Airplane](minecraft/java/airplane) -* [Cuberite](minecraft/java/cuberite) -* [Fabric](minecraft/java/fabric) -* [Feather](minecraft/java/feather) -* [Forge](minecraft/java/forge) - * [Forge](minecraft/java/forge/forge) - * [CusreForge Generic](minecraft/java/forge/curseforge-generic) -* [Feed The Beast](minecraft/java/ftb) -* [Glowstone](/minecraft/java/glowstone) -* [Krypton](/minecraft/java/krypton) -* [Magma](minecraft/java/magma) -* [Mohist](minecraft/java/mohist) -* [NanoLimbo](/minecraft/java/nanolimbo) -* [Paper](minecraft/java/paper) -* [Purpur](minecraft/java/purpur) -* [Spigot](minecraft/java/spigot) -* [SpongeForge](minecraft/java/spongeforge) -* [SpongeVanilla](minecraft/java/spongevanilla) -* [Technic](minecraft/java/technic) -* [VanillaCord](minecraft/java/vanillacord) +* [Airplane](java/airplane) +* [Cuberite](java/cuberite) +* [Fabric](java/fabric) +* [Feather](java/feather) +* [Forge](java/forge) + * [Forge](java/forge/forge) + * [CusreForge Generic](java/forge/curseforge-generic) +* [Feed The Beast](java/ftb) +* [Glowstone](java/glowstone) +* [Krypton](java/krypton) +* [Magma](java/magma) +* [Mohist](java/mohist) +* [NanoLimbo](java/nanolimbo) +* [Paper](java/paper) +* [Purpur](java/purpur) +* [Spigot](java/spigot) +* [SpongeForge](java/spongeforge) +* [SpongeVanilla](java/spongevanilla) +* [Technic](java/technic) +* [VanillaCord](java/vanillacord) ## [Proxies](proxy) Minecraft Server Proxies @@ -41,10 +41,10 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [Cross Platform](proxy/cross_platform) * [GeyserMC](proxy/cross_platform/geyser) * [Waterdog](proxy/cross_platform/waterdog) -* [Java](proxy/java) - * [FlameCord](proxy/java/flamecord) - * [Travertine](proxy/java/travertine) - * [TyphoonLimbo](proxy/java/typhoonlimbo) - * [Velocity](proxy/java/velocity) - * [VIAaas](proxy/java/viaaas) - * [Waterfall](proxy/java/waterfall) +* [Java](proxyjava) + * [FlameCord](proxyjava/flamecord) + * [Travertine](proxyjava/travertine) + * [TyphoonLimbo](proxyjava/typhoonlimbo) + * [Velocity](proxyjava/velocity) + * [VIAaas](proxyjava/viaaas) + * [Waterfall](proxyjava/waterfall) From 63bf3e497e0dd059c25e5b877b1a5f0550ec3aa3 Mon Sep 17 00:00:00 2001 From: ICon Date: Sat, 23 Jul 2022 19:13:23 -0600 Subject: [PATCH 43/56] Fixed previous MC Link Update --- game_eggs/minecraft/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 74fec827..f949b939 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -41,10 +41,10 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [Cross Platform](proxy/cross_platform) * [GeyserMC](proxy/cross_platform/geyser) * [Waterdog](proxy/cross_platform/waterdog) -* [Java](proxyjava) - * [FlameCord](proxyjava/flamecord) - * [Travertine](proxyjava/travertine) - * [TyphoonLimbo](proxyjava/typhoonlimbo) - * [Velocity](proxyjava/velocity) - * [VIAaas](proxyjava/viaaas) - * [Waterfall](proxyjava/waterfall) +* [Java](proxy/java) + * [FlameCord](proxy/java/flamecord) + * [Travertine](proxy/java/travertine) + * [TyphoonLimbo](proxy/java/typhoonlimbo) + * [Velocity](proxy/java/velocity) + * [VIAaas](proxy/java/viaaas) + * [Waterfall](proxy/java/waterfall) From d5eaf2615482731162c3b06dbc33390b79228d90 Mon Sep 17 00:00:00 2001 From: toblerus <37512320+toblerus@users.noreply.github.com> Date: Mon, 25 Jul 2022 22:28:35 +0200 Subject: [PATCH 44/56] Added BetterCrewlink egg and edited READMEs --- game_eggs/among_us/README.md | 3 + .../among_us/bettercrewlink_server/README.md | 15 +++ .../egg-better-crewlink-server.json | 92 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 game_eggs/among_us/bettercrewlink_server/README.md create mode 100644 game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json diff --git a/game_eggs/among_us/README.md b/game_eggs/among_us/README.md index a87d34a4..7a63dd78 100644 --- a/game_eggs/among_us/README.md +++ b/game_eggs/among_us/README.md @@ -1,5 +1,8 @@ # Among Us +[BetterCrewLink Server](bettercrewlink_server) +This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required. + [CrewLink Server](crewlink_server) This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required. diff --git a/game_eggs/among_us/bettercrewlink_server/README.md b/game_eggs/among_us/bettercrewlink_server/README.md new file mode 100644 index 00000000..55a4cab3 --- /dev/null +++ b/game_eggs/among_us/bettercrewlink_server/README.md @@ -0,0 +1,15 @@ +# Among Us - BetterCrewLink Server + +## From their [Github](https://github.com/OhMyGuus/BetterCrewLink) + +This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required. Spatial audio ensures that you can only hear people close to you. + +## Server Port + +Ports required to run the server in a table format. + +| Port | default (HTTPS enabled) | default (HTTPS disabled) | +|---------|---------|---------| +| Game | 443 | 9736 | + +Default port is 443 if HTTPS is enabled, and 9736 if not. But you can change to any port or domain/ip in the egg diff --git a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json new file mode 100644 index 00000000..3a7f18e9 --- /dev/null +++ b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.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": "2022-07-25T21:57:48+02:00", + "name": "BetterCrewlink Server", + "author": "tobiornotto@gmail.com", + "description": "An egg designed to allow support for Proximity Chat in Among Us using BetterCrewLink Server", + "features": null, + "docker_images": { + "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12" + }, + "file_denylist": [], + "startup": "yarn start", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \" BetterCrewLink Server started\"\r\n}", + "logs": "{}", + "stop": "^c" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nINSTALL_REPO=\"https:\/\/github.com\/OhMyGuus\/BetterCrewLink-server.git\"\r\necho -e Install repo set to ${INSTALL_REPO}\r\necho -e \"\/mnt\/server is empty.\\ncloning files from repo\"\r\necho -e \"running 'git clone --single-branch --branch ${BRANCH} ${INSTALL_REPO} .'\"\r\ngit clone --single-branch --branch ${BRANCH} ${INSTALL_REPO} .\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/yarn install\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", + "container": "node:12-buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Github branch", + "description": "Select one of the available BetterCrewLink-server branches available. Master per default.", + "env_variable": "BRANCH", + "default_value": "master", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Domain", + "description": "The hostname or IP of the server (a record without a proxy so if you have cloudflare make a extra dns record named for example direct.domain.com and disable the proxy for that record (this is for the turn server)", + "env_variable": "HOSTNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:50", + "field_type": "text" + }, + { + "name": "Server name", + "description": "Specifiy the name of your BetterCrewLink server", + "env_variable": "NAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:75", + "field_type": "text" + }, + { + "name": "Use HTTPS", + "description": "Enables https. You must place privkey.pem and fullchain.pem in your CWD.", + "env_variable": "HTTPS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Path to SSL", + "description": "Alternate path to SSL certificates.", + "env_variable": "SSLPATH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:250", + "field_type": "text" + }, + { + "name": "Port", + "description": "Choose the port your server should run on", + "env_variable": "PORT", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 4c7583d455541c105e0b38d026dd949d61a61ce0 Mon Sep 17 00:00:00 2001 From: toblerus <37512320+toblerus@users.noreply.github.com> Date: Mon, 25 Jul 2022 22:39:47 +0200 Subject: [PATCH 45/56] Changed Domain variable description --- .../bettercrewlink_server/egg-better-crewlink-server.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json index 3a7f18e9..4a3a393d 100644 --- a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json +++ b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-25T21:57:48+02:00", + "exported_at": "2022-07-25T22:35:11+02:00", "name": "BetterCrewlink Server", "author": "tobiornotto@gmail.com", "description": "An egg designed to allow support for Proximity Chat in Among Us using BetterCrewLink Server", @@ -40,7 +40,7 @@ }, { "name": "Domain", - "description": "The hostname or IP of the server (a record without a proxy so if you have cloudflare make a extra dns record named for example direct.domain.com and disable the proxy for that record (this is for the turn server)", + "description": "Domain of your server or ip of your server", "env_variable": "HOSTNAME", "default_value": "", "user_viewable": true, From bc93c5ff18f4ab1efbdb8075294d251b9e12eef8 Mon Sep 17 00:00:00 2001 From: toblerus <37512320+toblerus@users.noreply.github.com> Date: Mon, 25 Jul 2022 22:43:41 +0200 Subject: [PATCH 46/56] Fixed variable description typo --- .../bettercrewlink_server/egg-better-crewlink-server.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json index 4a3a393d..ab1b7f25 100644 --- a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json +++ b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json @@ -30,7 +30,7 @@ "variables": [ { "name": "Github branch", - "description": "Select one of the available BetterCrewLink-server branches available. Master per default.", + "description": "Select one of the available BetterCrewLink-server branches. Master per default.", "env_variable": "BRANCH", "default_value": "master", "user_viewable": true, From 01a123b4ba9a3a55f5a40901362c19d31f0cbc5a Mon Sep 17 00:00:00 2001 From: toblerus <37512320+toblerus@users.noreply.github.com> Date: Mon, 25 Jul 2022 23:49:13 +0200 Subject: [PATCH 47/56] Updated to use new yolk image --- .../bettercrewlink_server/egg-better-crewlink-server.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json index ab1b7f25..8ffd1b97 100644 --- a/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json +++ b/game_eggs/among_us/bettercrewlink_server/egg-better-crewlink-server.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-25T22:35:11+02:00", + "exported_at": "2022-07-25T23:48:33+02:00", "name": "BetterCrewlink Server", "author": "tobiornotto@gmail.com", "description": "An egg designed to allow support for Proximity Chat in Among Us using BetterCrewLink Server", "features": null, "docker_images": { - "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-12" + "ghcr.io\/parkervcp\/yolks:nodejs_12": "ghcr.io\/parkervcp\/yolks:nodejs_12" }, "file_denylist": [], "startup": "yarn start", From 201771a075e7c9e00d7e259f54996ff1cc031ba4 Mon Sep 17 00:00:00 2001 From: NotDemonix <90858555+NotDemonix@users.noreply.github.com> Date: Wed, 27 Jul 2022 10:08:32 +0200 Subject: [PATCH 48/56] Nodejs18 support for discord.js-generic egg I also tested this to make sure everything works --- bots/discord/discord.js/egg-discord-js-generic.json | 1 + 1 file changed, 1 insertion(+) diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index 3085b663..dd8ce583 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -10,6 +10,7 @@ "description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", "features": null, "images": [ + "ghcr.io\/parkervcp\/yolks:nodejs_18", "ghcr.io\/parkervcp\/yolks:nodejs_17", "ghcr.io\/parkervcp\/yolks:nodejs_16", "ghcr.io\/parkervcp\/yolks:nodejs_15", From b749113b816cf474ef1bf103bd409943c9a38d8f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 28 Jul 2022 18:56:43 +0200 Subject: [PATCH 49/56] Update egg-pocketmine-m-p.json --- .../pocketmine_mp/egg-pocketmine-m-p.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index aebd5da2..85deba50 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -1,17 +1,17 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-12-11T19:52:34+00:00", + "exported_at": "2022-07-28T18:56:34+02:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:debian" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, "file_denylist": [], "startup": ".\/bin\/php7\/bin\/php .\/PocketMine-MP.phar --no-wizard --disable-ansi", "config": { @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n# This is already installed in our Script container image. Leaving it here for future reference | apt install -y curl jq\r\n\r\ncd \/mnt\/server\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", - "container": "ghcr.io\/parkervcp\/installers:debian", + "script": "#!\/bin\/bash\r\n\r\n# This is already installed in our Script container image. Leaving it here for future reference | apt install -y curl jq\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\necho ${ARCH}\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho \"amd64 php\"\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\necho \"arm64 php\"\r\necho \"please wait, this will take some time\"\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } }, @@ -35,7 +35,8 @@ "default_value": "pm4", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:pm3,pm4" + "rules": "required|string|in:pm3,pm4", + "field_type": "text" } ] -} \ No newline at end of file +} From 55e9f49ddacd6d8c76b94f36899e39cc2cd5d112 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 28 Jul 2022 19:05:36 +0200 Subject: [PATCH 50/56] remove debug flags out of install script --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 85deba50..add3021f 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-28T18:56:34+02:00", + "exported_at": "2022-07-28T19:04:48+02:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n# This is already installed in our Script container image. Leaving it here for future reference | apt install -y curl jq\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\necho ${ARCH}\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho \"amd64 php\"\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\necho \"arm64 php\"\r\necho \"please wait, this will take some time\"\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "script": "#!\/bin\/bash\r\n\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } From fe354c1989b3b486fd14b0dc579696e45201ebea Mon Sep 17 00:00:00 2001 From: ChrissQuartz <69059820+thecrazytech1@users.noreply.github.com> Date: Tue, 2 Aug 2022 14:11:04 +1000 Subject: [PATCH 51/56] Grammar PhantomBot README Change S in the word website, to a lowercase s in PhantomBot README --- bots/twitch/phantombot/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/twitch/phantombot/README.md b/bots/twitch/phantombot/README.md index ab9e186f..5055ed09 100644 --- a/bots/twitch/phantombot/README.md +++ b/bots/twitch/phantombot/README.md @@ -1,6 +1,6 @@ # PhantomBot -[WebSite](https://phantombot.github.io/PhantomBot/) +[Website](https://phantombot.github.io/PhantomBot/) [GitHub](https://github.com/phantombot/PhantomBot) 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. From 6a01cfe5cc0bdaf3cec1c00f480d70e8958294e0 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Wed, 3 Aug 2022 17:49:23 +0200 Subject: [PATCH 52/56] fix typo --- game_eggs/rdr/redm/egg-red-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/rdr/redm/egg-red-m.json b/game_eggs/rdr/redm/egg-red-m.json index 6dae0027..fca67286 100644 --- a/game_eggs/rdr/redm/egg-red-m.json +++ b/game_eggs/rdr/redm/egg-red-m.json @@ -24,7 +24,7 @@ "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\"", "container": "ghcr.io\/parkervcp\/installers:debian", - "entrypoint": "ash" + "entrypoint": "bash" } }, "variables": [ @@ -89,4 +89,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From d7a9961e720f2b6eee35f3396cd6985986e485a1 Mon Sep 17 00:00:00 2001 From: Eye <54536469+EyeDevs@users.noreply.github.com> Date: Fri, 5 Aug 2022 20:17:05 +0200 Subject: [PATCH 53/56] Typo for bash Changed ash to bash (fixed timedout problem for me) --- game_eggs/gta/fivem/egg-five-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 9752a14a..7d08e922 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_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 \"Skipping downloading default server config file as one already 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\nmkdir -p logs\/\r\n\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# FiveM 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\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 [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_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 \"Skipping downloading default server config file as one already 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\nmkdir -p logs\/\r\n\r\necho \"install complete\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -109,4 +109,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From bb945488ac2ec6fea6d1f4b1cc8cbd03aaa661f7 Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 6 Aug 2022 10:51:06 -0400 Subject: [PATCH 54/56] Change Murse download to use correct download link --- game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json index 577ef45c..e3bbd203 100644 --- a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json +++ b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nfi\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# 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## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## download OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/dl.spiderden.net\/murse\/linux -O murse 2> \/dev\/null\r\nchmod +x murse\r\n.\/murse upgrade -u https:\/\/toast1.openfortress.fun\/toast -c $(curl https:\/\/toast1.openfortress.fun\/toast\/reithreads) asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## add fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nrm -rf gameinfo.txt\r\ncat >> gameinfo.txt << EOF\r\n\"GameInfo\"\r\n{\r\ngame \"Open Fortress\"\r\ntitle \"\"\r\ntitle2 \"\"\r\ngamelogo \"1\"\r\ndeveloper \"https:\/\/github.com\/AgitationSkeleton\/open_fortress\/blob\/master\/credits.txt\"\r\ndeveloper_url\t\"https:\/\/github.com\/KaidemonLP\/Open-Fortress-Source\"\r\nmanual \"\"\r\ntype \"multiplayer_only\"\r\nhasportals \"0\" \/\/ gameui.dll\r\nhashdcontent\t\"0\" \/\/ gameui.dll\r\nnomodels \"0\" \/\/ gameui.dll\r\nnohimodel \"0\" \/\/ gameui.dll\r\nnocrosshair \"0\" \/\/ gameui.dll\r\nadvcrosshair \"1\" \/\/ gameui.dll\r\nnodifficulty\t\"1\" \/\/ gameui.dll\r\nsupportsvr \"0\" \/\/ engine.dll + gameui.dll\r\nbots \"0\" \/\/ gameui.dll\r\nnodegraph \"1\" \/\/ engine.dll\r\nperfwizard \"0\" \/\/ unused\r\nSupportsDX8 \"0\" \/\/ unused\r\nSupportsDX9 \"1\" \/\/ unused\r\nSupportsDX10\t\"0\" \/\/ unused\r\nSupportsDX11\t\"0\" \/\/ unused\r\nSupportsXbox\t\"0\" \/\/ unused\r\nSupportsXbox360\t\"0\" \/\/ unused\r\nSupportsXboxOne\t\"0\" \/\/ unused\r\nSupportsPS3 \"0\" \/\/ unused\r\nSupportsPS4 \"0\" \/\/ unused\r\nicon \"resource\/game\"\r\nGameData \"ofd_fic2.fgd\"\r\nInstancePath\t\"maps\/instances\/\"\r\nhidden_maps\r\n{\r\n\"test_speakers\" 1\r\n\"test_hardware\" 1\r\n\"background01\" 1\r\n\"background02\" 1\r\n\"background03\" 1\r\n\"background04\" 1\r\n\"background05\" 1\r\n\"background06\" 1\r\n\"background07\" 1\r\n\"background08\" 1\r\n\"background09\" 1\r\n\"background12\" 1\r\n\"background15\" 1\r\n\"ep1_c17_00\" 1\r\n\"ep1_c17_00a\" 1\r\n\"ep1_c17_01\" 1\r\n\"ep1_c17_01a\" 1\r\n\"ep1_c17_02\" 1\r\n\"ep1_c17_02a\" 1\r\n\"ep1_c17_02b\" 1\r\n\"ep1_c17_05\" 1\r\n\"ep1_c17_06\" 1\r\n\"ep1_citadel_00\"\t1\r\n\"ep1_citadel_00_demo\" 1\r\n\"ep1_citadel_01\"\t1\r\n\"ep1_citadel_02\"\t1\r\n\"ep1_citadel_02b\"\t1\r\n\"ep1_citadel_03\"\t1\r\n\"ep1_citadel_04\"\t1\r\n\"ep1_background01\"\t1\r\n\"ep1_background01a\"\t1\r\n\"ep1_background02\"\t1\r\n\"ep2_outland_01\"\t1\r\n\"ep2_outland_01a\"\t1\r\n\"ep2_outland_02\"\t1\r\n\"ep2_outland_03\"\t1\r\n\"ep2_outland_04\"\t1\r\n\"ep2_outland_05\"\t1\r\n\"ep2_outland_06\"\t1\r\n\"ep2_outland_06a\"\t1\r\n\"ep2_outland_07\"\t1\r\n\"ep2_outland_08\"\t1\r\n\"ep2_outland_09\"\t1\r\n\"ep2_outland_10\"\t1\r\n\"ep2_outland_10a\"\t1\r\n\"ep2_outland_11\"\t1\r\n\"ep2_outland_11a\"\t1\r\n\"ep2_outland_11b\"\t1\r\n\"ep2_outland_12\"\t1\r\n\"ep2_outland_12a\"\t1\r\n\"ep2_background01\"\t1\r\n\"ep2_background02\"\t1\r\n\"ep2_background02a\"\t1\r\n\"ep2_background03\"\t1\r\n\"credits\" 1\r\n\"vst_lostcoast\" 1\r\n\"test\" 1\r\n\"sdk_vehicles\" 1\r\n}\r\nFileSystem\r\n{\r\nSteamAppId 243750\r\nSearchPaths\r\n{\r\ngame+mod |gameinfo_path|custom\/*\r\ngame+game_write+mod+mod_write+default_write_path |gameinfo_path|.\r\ngamebin |gameinfo_path|bin\r\n\/\/ The lines below until the BREAK comment are responsible for the game resources to work properly\r\n\/\/ in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,\r\n\/\/ Source SDK and OF) in the same drive letter\/partition. If you have a different storage configuration,\r\n\/\/ feel free to modify the paths below between quotes (example: D:\\Steam\\steamapps\\common\\Team Fortress 2\\tf).\r\ngame \"\/home\/container\/tf2\/tf\/tf2_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_misc.vpk\"\r\n\/\/ The hl2 folder here is from Source SDK Base 2013 Multiplayer.\r\ngame \"|all_source_engine_paths|hl2\\hl2_misc.vpk\"\r\ngame \"|all_source_engine_paths|hl2\"\r\n\/\/ ========== BREAK ==========\r\nplatform |all_source_engine_paths|platform\/platform_misc.vpk\r\nplatform |all_source_engine_paths|platform\r\ngame+download |gameinfo_path|download\r\n}\r\n}\r\n}\r\nEOF\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nfi\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# 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## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## download OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/git.sr.ht\/~welt\/murse\/refs\/download\/v0.2.1\/murse-v0.2.1-linux-amd64.tar.gz -O murse.tgz 2> \/dev\/null\r\ntar xvfz murse.tgz\r\nrm -rf murse.tgz\r\nchmod +x murse\r\n.\/murse upgrade -u https:\/\/toast1.openfortress.fun\/toast -c $(curl https:\/\/toast1.openfortress.fun\/toast\/reithreads) asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## add fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nrm -rf gameinfo.txt\r\ncat >> gameinfo.txt << EOF\r\n\"GameInfo\"\r\n{\r\ngame \"Open Fortress\"\r\ntitle \"\"\r\ntitle2 \"\"\r\ngamelogo \"1\"\r\ndeveloper \"https:\/\/github.com\/AgitationSkeleton\/open_fortress\/blob\/master\/credits.txt\"\r\ndeveloper_url\t\"https:\/\/github.com\/KaidemonLP\/Open-Fortress-Source\"\r\nmanual \"\"\r\ntype \"multiplayer_only\"\r\nhasportals \"0\" \/\/ gameui.dll\r\nhashdcontent\t\"0\" \/\/ gameui.dll\r\nnomodels \"0\" \/\/ gameui.dll\r\nnohimodel \"0\" \/\/ gameui.dll\r\nnocrosshair \"0\" \/\/ gameui.dll\r\nadvcrosshair \"1\" \/\/ gameui.dll\r\nnodifficulty\t\"1\" \/\/ gameui.dll\r\nsupportsvr \"0\" \/\/ engine.dll + gameui.dll\r\nbots \"0\" \/\/ gameui.dll\r\nnodegraph \"1\" \/\/ engine.dll\r\nperfwizard \"0\" \/\/ unused\r\nSupportsDX8 \"0\" \/\/ unused\r\nSupportsDX9 \"1\" \/\/ unused\r\nSupportsDX10\t\"0\" \/\/ unused\r\nSupportsDX11\t\"0\" \/\/ unused\r\nSupportsXbox\t\"0\" \/\/ unused\r\nSupportsXbox360\t\"0\" \/\/ unused\r\nSupportsXboxOne\t\"0\" \/\/ unused\r\nSupportsPS3 \"0\" \/\/ unused\r\nSupportsPS4 \"0\" \/\/ unused\r\nicon \"resource\/game\"\r\nGameData \"ofd_fic2.fgd\"\r\nInstancePath\t\"maps\/instances\/\"\r\nhidden_maps\r\n{\r\n\"test_speakers\" 1\r\n\"test_hardware\" 1\r\n\"background01\" 1\r\n\"background02\" 1\r\n\"background03\" 1\r\n\"background04\" 1\r\n\"background05\" 1\r\n\"background06\" 1\r\n\"background07\" 1\r\n\"background08\" 1\r\n\"background09\" 1\r\n\"background12\" 1\r\n\"background15\" 1\r\n\"ep1_c17_00\" 1\r\n\"ep1_c17_00a\" 1\r\n\"ep1_c17_01\" 1\r\n\"ep1_c17_01a\" 1\r\n\"ep1_c17_02\" 1\r\n\"ep1_c17_02a\" 1\r\n\"ep1_c17_02b\" 1\r\n\"ep1_c17_05\" 1\r\n\"ep1_c17_06\" 1\r\n\"ep1_citadel_00\"\t1\r\n\"ep1_citadel_00_demo\" 1\r\n\"ep1_citadel_01\"\t1\r\n\"ep1_citadel_02\"\t1\r\n\"ep1_citadel_02b\"\t1\r\n\"ep1_citadel_03\"\t1\r\n\"ep1_citadel_04\"\t1\r\n\"ep1_background01\"\t1\r\n\"ep1_background01a\"\t1\r\n\"ep1_background02\"\t1\r\n\"ep2_outland_01\"\t1\r\n\"ep2_outland_01a\"\t1\r\n\"ep2_outland_02\"\t1\r\n\"ep2_outland_03\"\t1\r\n\"ep2_outland_04\"\t1\r\n\"ep2_outland_05\"\t1\r\n\"ep2_outland_06\"\t1\r\n\"ep2_outland_06a\"\t1\r\n\"ep2_outland_07\"\t1\r\n\"ep2_outland_08\"\t1\r\n\"ep2_outland_09\"\t1\r\n\"ep2_outland_10\"\t1\r\n\"ep2_outland_10a\"\t1\r\n\"ep2_outland_11\"\t1\r\n\"ep2_outland_11a\"\t1\r\n\"ep2_outland_11b\"\t1\r\n\"ep2_outland_12\"\t1\r\n\"ep2_outland_12a\"\t1\r\n\"ep2_background01\"\t1\r\n\"ep2_background02\"\t1\r\n\"ep2_background02a\"\t1\r\n\"ep2_background03\"\t1\r\n\"credits\" 1\r\n\"vst_lostcoast\" 1\r\n\"test\" 1\r\n\"sdk_vehicles\" 1\r\n}\r\nFileSystem\r\n{\r\nSteamAppId 243750\r\nSearchPaths\r\n{\r\ngame+mod |gameinfo_path|custom\/*\r\ngame+game_write+mod+mod_write+default_write_path |gameinfo_path|.\r\ngamebin |gameinfo_path|bin\r\n\/\/ The lines below until the BREAK comment are responsible for the game resources to work properly\r\n\/\/ in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,\r\n\/\/ Source SDK and OF) in the same drive letter\/partition. If you have a different storage configuration,\r\n\/\/ feel free to modify the paths below between quotes (example: D:\\Steam\\steamapps\\common\\Team Fortress 2\\tf).\r\ngame \"\/home\/container\/tf2\/tf\/tf2_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_misc.vpk\"\r\n\/\/ The hl2 folder here is from Source SDK Base 2013 Multiplayer.\r\ngame \"|all_source_engine_paths|hl2\\hl2_misc.vpk\"\r\ngame \"|all_source_engine_paths|hl2\"\r\n\/\/ ========== BREAK ==========\r\nplatform |all_source_engine_paths|platform\/platform_misc.vpk\r\nplatform |all_source_engine_paths|platform\r\ngame+download |gameinfo_path|download\r\n}\r\n}\r\n}\r\nEOF\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so", "container": "ubuntu:18.04", "entrypoint": "bash" } From 7c4cd97a4eb3a22208d391bddefdca0bda31a5da Mon Sep 17 00:00:00 2001 From: Yamiru Date: Sun, 7 Aug 2022 17:57:27 +0200 Subject: [PATCH 55/56] Update egg-black-mesa.json --- game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json b/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json index 8d2dfdbc..f58682a5 100644 --- a/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json +++ b/game_eggs/steamcmd_servers/black_mesa/egg-black-mesa.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-17T07:02:24+02:00", + "exported_at": "2022-08-07T17:56:38+02:00", "name": "Black Mesa", - "author": "yamiru@yamiru.com", + "author": "avalongamecs@gmail.com", "description": "Black Mesa is a 2020 first-person shooter game. It is a third-party remake of Half-Life (1998) made in the Source game engine.", "features": null, "docker_images": { @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", - "container": "debian:buster-slim", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -89,4 +89,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 8b6df7d5827bc1c0dff545585ec72bd7604c3669 Mon Sep 17 00:00:00 2001 From: Stefano Date: Mon, 8 Aug 2022 17:06:40 +0200 Subject: [PATCH 56/56] Don't use PTB as a link for the eggs. THis will cause people to have to re-log on the discord website :P --- game_eggs/gta/fivem/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/gta/fivem/README.md b/game_eggs/gta/fivem/README.md index 12f44451..151897eb 100644 --- a/game_eggs/gta/fivem/README.md +++ b/game_eggs/gta/fivem/README.md @@ -5,7 +5,7 @@ Pterodactyl will not be providing support for FiveM. You are free to run a FiveM server but no support will be provided in the Pterodactyl Discord, check the discord annoucement below for details. Worth a read if you plan on running a FiveM server -[Pterodactyl Discord Announcement](https://ptb.discord.com/channels/122900397965705216/124919575534895105/869733533495746560) +[Pterodactyl Discord Announcement](https://discord.com/channels/122900397965705216/124919575534895105/869733533495746560) ## From the [FiveM](https://fivem.net/) Site