diff --git a/lavalink/README.md b/lavalink/README.md new file mode 100644 index 0000000..6830823 --- /dev/null +++ b/lavalink/README.md @@ -0,0 +1,15 @@ +# Lavalink Server + +## From their [Github](https://github.com/freyacodes/Lavalink) + +Standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards. + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|----------|----------| +| Lavalink | 2333 | + +### Mods/Plugins may require ports to be added to the server diff --git a/lavalink/egg-lavalink.json b/lavalink/egg-lavalink.json new file mode 100644 index 0000000..98c2213 --- /dev/null +++ b/lavalink/egg-lavalink.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": "2024-12-11T19:05:06+00:00", + "name": "Lavalink", + "author": "damuffin36@gmail.com", + "description": "A standalone audio sending node based on Lavaplayer and Koe. Allows for sending audio without it ever reaching any of your shards.\r\nDescription taken from https:\/\/github.com\/lavalink-devs\/Lavalink", + "features": null, + "docker_images": { + "ghcr.io\/ptero-eggs\/yolks:java_21": "ghcr.io\/ptero-eggs\/yolks:java_21" + }, + "file_denylist": [], + "startup": "java -jar Lavalink.jar", + "config": { + "files": "{\r\n \"application.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"server.address\": \"0.0.0.0\",\r\n \"server.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Started Launcher in \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\napt update\r\napt install -y curl jq git\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -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\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -L -o Lavalink.jar ${DOWNLOAD_URL}\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/freyacodes\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "debian:bookworm-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Version", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "GITHUB_PACKAGE", + "description": "", + "env_variable": "GITHUB_PACKAGE", + "default_value": "lavalink-devs\/Lavalink", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Match", + "description": "", + "env_variable": "MATCH", + "default_value": "Lavalink.jar", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/monitoring/README.md b/monitoring/README.md new file mode 100644 index 0000000..f2827c4 --- /dev/null +++ b/monitoring/README.md @@ -0,0 +1,7 @@ +# Monitoring + +## Loki + + +## Prometheus + diff --git a/monitoring/loki/README.md b/monitoring/loki/README.md new file mode 100644 index 0000000..d99b1be --- /dev/null +++ b/monitoring/loki/README.md @@ -0,0 +1,25 @@ +# Loki + +## From the [Loki](https://github.com/grafana/loki) GitHub repository + +Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. + +## Working with Loki + +To get logs "into" Loki you need a scrape agent, such as official [Promtail](https://grafana.com/docs/loki/latest/clients/promtail/installation/) or a library for your app that can push logs through HTTP endpoint (gRPC endpoint is disabled in Docker enviroment by default) + +## Resource consumption + +As this egg sets up Loki in single node mode, it can consume a lot of disk space really fast. It is possible to setup different kind of storages for different parts of Loki files. For further information refer to official [Loki documentation](https://grafana.com/docs/loki/latest/operations/storage/). + +To get started, you can go with a minimum of 3GB RAM and >=2.5GB disk space. + +Keep in mind that those numbers can grow pretty quick! + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|-------------|---------| +| Loki server | 3100 | diff --git a/monitoring/loki/egg-loki.json b/monitoring/loki/egg-loki.json new file mode 100644 index 0000000..7a62768 --- /dev/null +++ b/monitoring/loki/egg-loki.json @@ -0,0 +1,42 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2024-12-11T19:05:03+00:00", + "name": "Loki", + "author": "unknown@unknown.com", + "description": "Prometheus but for logs. This egg is for Loki instance only! You usually need pushing agents like Promtail to put logs in this", + "features": null, + "docker_images": { + "ghcr.io\/ptero-eggs\/yolks:debian": "ghcr.io\/ptero-eggs\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/loki-linux -config.file=loki-docker-config.yaml", + "config": { + "files": "{\r\n \"loki-docker-config.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server.http_listen_port\": \"{{server.build.default.port}}\",\r\n \"common.ring.instance_addr\": \"0.0.0.0\",\r\n \"common.path_prefix\": \"\/home\/container\/loki\",\r\n \"common.storage.filesystem.chunks_directory\": \"\/home\/container\/loki\/chunks\",\r\n \"common.storage.filesystem.rules_directory\": \"\/home\/container\/loki\/rules\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Loki started\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Switch to mounted working install directory\r\ncd \/mnt\/server\r\n\r\napt update\r\napt install -y zip unzip wget curl git file\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n# Download and extract Loki\r\n\r\nif [ \"$LOKI_VERSION\" = \"latest\" ]; then LOKI_VERSION=$(curl --silent \"https:\/\/api.github.com\/repos\/grafana\/loki\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/' | cut -c2-); fi\r\necho -e \"running curl -L https:\/\/github.com\/grafana\/loki\/releases\/download\/v${LOKI_VERSION}\/loki-linux-${ARCH}.zip --output loki-linux-amd64.zip\"\r\ncurl -L https:\/\/github.com\/grafana\/loki\/releases\/download\/v${LOKI_VERSION}\/loki-linux-${ARCH}.zip --output loki-linux-${ARCH}.zip\r\nunzip loki-linux-${ARCH}.zip\r\nrm -rf loki-linux-${ARCH}.zip\r\ncurl -L https:\/\/raw.githubusercontent.com\/grafana\/loki\/v${LOKI_VERSION}\/cmd\/loki\/loki-docker-config.yaml --output loki-docker-config.yaml\r\nmv loki-linux-* loki-linux\r\necho -e \"installation completed\"", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Loki Version", + "description": "The version of Loki to use.\r\n\r\nFind all versions from https:\/\/github.com\/grafana\/loki", + "env_variable": "LOKI_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/monitoring/prometheus/README.md b/monitoring/prometheus/README.md new file mode 100644 index 0000000..b741ab7 --- /dev/null +++ b/monitoring/prometheus/README.md @@ -0,0 +1,19 @@ +# Prometheus + +## From the [Prometheus](https://github.com/prometheus/prometheus) GitHub repository + +The Prometheus monitoring system and time series database. + +## Resource consumption + +As Prometheus is a monitoring software that saves data in a timeseries database, it can take up massive amounts of disk space. Due to Prometheus design, a huge memory consumption is also possible. +To get started, a minimum of 3GB RAM and >=2.5GB disk space is recommended. +Keep in mind that those numbers can grow pretty quick for large monitored environments! + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|-------------------|---------| +| Prometheus server | 9090 | diff --git a/monitoring/prometheus/egg-prometheus.json b/monitoring/prometheus/egg-prometheus.json new file mode 100644 index 0000000..4dd5023 --- /dev/null +++ b/monitoring/prometheus/egg-prometheus.json @@ -0,0 +1,52 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2024-12-11T19:05:00+00:00", + "name": "Prometheus", + "author": "p.zarrad@outlook.de", + "description": "The Prometheus monitoring system and time series database.", + "features": null, + "docker_images": { + "ghcr.io\/ptero-eggs\/yolks:debian": "ghcr.io\/ptero-eggs\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/prometheus --web.listen-address=0.0.0.0:{{SERVER_PORT}} --config.file=\/home\/container\/prometheus.yml --storage.tsdb.path=\/home\/container\/data --web.console.templates=\/home\/container\/consoles --web.console.libraries=\/home\/container\/console_libraries --web.config.file=\/home\/container\/prometheus.web.yml --storage.tsdb.retention.time={{DATA_SAVE_TIME}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Server is ready to receive web requests.\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/sh\r\nshopt -s extglob\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Update installation system and install curl\r\napt-get update\r\napt-get install -y curl\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n# Cleanup previous install if available\r\nif [ -f \"prometheus.yml\" ]; then mv prometheus.yml prometheus.yml.bak; fi\r\nif [ -f \"prometheus.web.yml\" ]; then mv prometheus.web.yml prometheus.web.yml.bak; fi\r\nrm -rfv !(data|prometheus.yml.bak|prometheus.web.yml.bak)\r\n# Download and extract Prometheus\r\nversion=${PROMETHEUS_VERSION}\r\nif [ \"$version\" = \"latest\" ]; then version=$(curl --silent \"https:\/\/api.github.com\/repos\/prometheus\/prometheus\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/' | cut -c2-); fi\r\ncurl -L https:\/\/github.com\/prometheus\/prometheus\/releases\/download\/v${version}\/prometheus-${version}.linux-${ARCH}.tar.gz --output prometheus.tar.gz\r\ntar -zxvf prometheus.tar.gz\r\nmv -n prometheus-*\/* .\/\r\nrm -rf prometheus.tar.gz prometheus-*\/\r\n# Restore configuration if necessary\r\nif [ -f \"prometheus.yml.bak\" ]; then rm -rf prometheus.yml && mv prometheus.yml.bak prometheus.yml && rm -rf prometheus.yml.bak; fi\r\nif [ -f \"prometheus.web.yml.bak\" ]; then rm -rf prometheus.web.yml && mv prometheus.web.yml.bak prometheus.web.yml && rm -rf prometheus.web.yml.bak; fi\r\n# Create dummy prometheus.web.yml as a placeholder\r\nif [ ! -f \"prometheus.web.yml\" ]; then touch prometheus.web.yml; fi", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Prometheus Version", + "description": "The version of Prometheus to install. By default the latest version is being installed.", + "env_variable": "PROMETHEUS_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Data Save time in Days", + "description": "How long the data is being saved", + "env_variable": "DATA_SAVE_TIME", + "default_value": "15d", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:10", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/voice/README.md b/voice/README.md new file mode 100644 index 0000000..763bf9a --- /dev/null +++ b/voice/README.md @@ -0,0 +1,4 @@ +# Voice Servers + +* Teamspeak_ARM64 +* TS3-Manager diff --git a/voice/teamspeak_ARM64/README.md b/voice/teamspeak_ARM64/README.md new file mode 100644 index 0000000..b7450bc --- /dev/null +++ b/voice/teamspeak_ARM64/README.md @@ -0,0 +1,17 @@ +# 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 | + +### arm64 +* The arm64 may not perform as expected due to the amd64 to arm emulaton. diff --git a/voice/teamspeak_ARM64/egg-teamspeak3-server-a-r-m64.json b/voice/teamspeak_ARM64/egg-teamspeak3-server-a-r-m64.json new file mode 100644 index 0000000..ff0af2f --- /dev/null +++ b/voice/teamspeak_ARM64/egg-teamspeak3-server-a-r-m64.json @@ -0,0 +1,72 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2024-12-11T19:05:12+00: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": { + "ghcr.io\/ptero-eggs\/yolks:box64": "ghcr.io\/ptero-eggs\/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}} serveradmin_password={{SERVERADMIN_PASSWORD}} 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 Query Admin Password", + "description": "The password for the server query admin user.", + "env_variable": "SERVERADMIN_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "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" + } + ] +} \ No newline at end of file diff --git a/voice/ts3_manager/README.md b/voice/ts3_manager/README.md new file mode 100644 index 0000000..731d290 --- /dev/null +++ b/voice/ts3_manager/README.md @@ -0,0 +1,17 @@ +# TS3 Manager + +## [Website](https://www.ts3.app/) + +TS3 Manager is a simple and lightwight webbased Teamspeak Webinterface + +### Install notes + +Connect with your IP from your Pteroserver and the assigned Port. Add your IP to TS Server Withlist + +### Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 3000 | diff --git a/voice/ts3_manager/egg-t-s3-manager.json b/voice/ts3_manager/egg-t-s3-manager.json new file mode 100644 index 0000000..eea0d41 --- /dev/null +++ b/voice/ts3_manager/egg-t-s3-manager.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": "2024-12-11T19:05:09+00:00", + "name": "TS3 Manager", + "author": "eggs@goover.dev", + "description": "The Open Source Webinterface For TeamSpeak Servers", + "features": null, + "docker_images": { + "ghcr.io\/ptero-eggs\/yolks:debian": "ghcr.io\/ptero-eggs\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/start_ts3-manager -p ${SERVER_PORT}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Server listening on\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## install needed packages\r\napt update\r\napt install -y git unzip jq wget tar curl\r\n\r\n## env\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "ghcr.io\/ptero-eggs\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "GITHUB_PACKAGE", + "description": "", + "env_variable": "GITHUB_PACKAGE", + "default_value": "joni1802\/ts3-manager", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "VERSION", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:30", + "field_type": "text" + }, + { + "name": "MATCH", + "description": "", + "env_variable": "MATCH", + "default_value": "ts3-manager-linux-x64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:50", + "field_type": "text" + } + ] +}