Skip to content

Commit

Permalink
Merge pull request #5 from Red-Banana-Official/add/update
Browse files Browse the repository at this point in the history
Add/update eggs
  • Loading branch information
danny6167 authored Dec 11, 2024
2 parents af14067 + c126cd2 commit f5480fe
Show file tree
Hide file tree
Showing 12 changed files with 394 additions and 0 deletions.
15 changes: 15 additions & 0 deletions lavalink/README.md
Original file line number Diff line number Diff line change
@@ -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
62 changes: 62 additions & 0 deletions lavalink/egg-lavalink.json
Original file line number Diff line number Diff line change
@@ -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": "[email protected]",
"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"
}
]
}
7 changes: 7 additions & 0 deletions monitoring/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Monitoring

## Loki


## Prometheus

25 changes: 25 additions & 0 deletions monitoring/loki/README.md
Original file line number Diff line number Diff line change
@@ -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 |
42 changes: 42 additions & 0 deletions monitoring/loki/egg-loki.json
Original file line number Diff line number Diff line change
@@ -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": "[email protected]",
"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"
}
]
}
19 changes: 19 additions & 0 deletions monitoring/prometheus/README.md
Original file line number Diff line number Diff line change
@@ -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 |
52 changes: 52 additions & 0 deletions monitoring/prometheus/egg-prometheus.json
Original file line number Diff line number Diff line change
@@ -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": "[email protected]",
"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"
}
]
}
4 changes: 4 additions & 0 deletions voice/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Voice Servers

* Teamspeak_ARM64
* TS3-Manager
17 changes: 17 additions & 0 deletions voice/teamspeak_ARM64/README.md
Original file line number Diff line number Diff line change
@@ -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.
72 changes: 72 additions & 0 deletions voice/teamspeak_ARM64/egg-teamspeak3-server-a-r-m64.json
Original file line number Diff line number Diff line change
@@ -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": "[email protected]",
"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"
}
]
}
17 changes: 17 additions & 0 deletions voice/ts3_manager/README.md
Original file line number Diff line number Diff line change
@@ -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 |
Loading

0 comments on commit f5480fe

Please sign in to comment.