Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Add Gate Minecraft Server Proxy Egg #2668

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ If you are reading this it looks like you are looking to add an egg to your serv

* [Proxies](game_eggs/minecraft/proxy) Minecraft Server Proxies
* [Java](game_eggs/minecraft/proxy/java)
* [Gate](game_eggs/minecraft/proxy/java/gate)
* [Travertine](game_eggs/minecraft/proxy/java/travertine)
* [Velocity](game_eggs/minecraft/proxy/java/velocity)
* [Waterfall](game_eggs/minecraft/proxy/java/waterfall)
Expand Down
1 change: 1 addition & 0 deletions game_eggs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@

* [Proxies](minecraft/proxy) Minecraft Server Proxies
* [Java](minecraft/proxy/java)
* [Gate](minecraft/proxy/java/gate)
* [Travertine](minecraft/proxy/java/travertine)
* [Velocity](minecraft/proxy/java/velocity)
* [Waterfall](minecraft/proxy/java/waterfall)
Expand Down
1 change: 1 addition & 0 deletions game_eggs/minecraft/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains,
* [GeyserMC](proxy/cross_platform/geyser)
* [Waterdog](proxy/cross_platform/waterdog)
* [Java](proxy/java)
* [Gate](proxy/java/gate)
* [Travertine](proxy/java/travertine)
* [Velocity](proxy/java/velocity)
* [VIAaas](proxy/java/viaaas)
Expand Down
1 change: 1 addition & 0 deletions game_eggs/minecraft/proxy/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Minecraft Proxies

* [Java](/game_eggs/minecraft/proxy/java/)
* [Gate](/game_eggs/minecraft/proxy/java/gate)
* [Travertine](/game_eggs/minecraft/proxy/java/travertine)
* [Velocity](/game_eggs/minecraft/proxy/java/velocity)
* [VIAaaS](/game_eggs/minecraft/proxy/java/viaaas)
Expand Down
4 changes: 4 additions & 0 deletions game_eggs/minecraft/proxy/java/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Minecraft Java Proxies


#### Gate
[Gate](https://github.com/minekube/gate)
High-Performance, Low-Memory, Lightweight, Extensible Minecraft Reverse Proxy.

#### Travertine
[Travertine](https://papermc.io/downloads#Travertine)
Waterfall, with additional support for Minecraft 1.7.10.
Expand Down
15 changes: 15 additions & 0 deletions game_eggs/minecraft/proxy/java/gate/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Gate Minecraft Proxy
High-Performance, Low-Memory, Lightweight, Extensible Minecraft Reverse Proxy with Excellent Multi-Protocol Version Support - Velocity/Bungee Replacement - Ready for dev and large deploy (Description from Github)

## Server Ports

| Port | default |
|-------|---------|
| Game | 25565 |

### Notes

<!--Notes about the server ports.-->
25565 is the default port, but any port can be used.

### Mods/Plugins may require ports to be added to the server
42 changes: 42 additions & 0 deletions game_eggs/minecraft/proxy/java/gate/egg-gate.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-01-17T14:53:01+01:00",
"name": "Gate",
"author": "[email protected]",
"description": "High-Performance, Low-Memory, Lightweight, Extensible Minecraft Reverse Proxy with Excellent Multi-Protocol Version Support - Velocity\/Bungee Replacement - Ready for dev and large deploy! (Description from Github)",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
},
"file_denylist": [],
"startup": ".\/gate",
"config": {
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"config.bind\": \"0.0.0.0:{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"listening\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\n# Create \/mnt\/server directory if it doesn't exist\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\r\n\r\nif [ -f \/mnt\/server\/gate.old ]; then\r\n rm gate.old\r\nfi\r\n\r\nif [ -f \/mnt\/server\/gate ]; then\r\n mv gate gate.old\r\nfi\r\n\r\n# Determine latest version and get download link\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/minekube\/gate\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/minekube\/gate\/releases\")\r\n\r\n# Determine CPU architecture, in order to get correct package\r\nARCHITECTURE=$( [[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux_amd64\" || echo \"linux_arm64\" )\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 ${ARCHITECTURE})\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 ${ARCHITECTURE})\r\n else\r\n echo -e \"Specified version not found, defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${ARCHITECTURE})\r\n fi\r\nfi\r\n\r\n# Download the Gate binary from GitHub releases\r\necho \"Download URL: ${DOWNLOAD_URL}\"\r\ncurl -sSL -o gate ${DOWNLOAD_URL}\r\n\r\n# Ensure the downloaded binary is executable\r\nchmod +x \/mnt\/server\/gate\r\n\r\n# Create config file if it doesn't already exist\r\nif [ ! -f \/mnt\/server\/config.yml ]; then\r\n cat <<EOL > \/mnt\/server\/config.yml\r\n config:\r\n bind: 0.0.0.0:25565\r\n servers:\r\n server1: localhost:25566\r\n server2: localhost:25567\r\n try:\r\n - server1\r\n - server2\r\nEOL\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Gate Version",
"description": "Version of Gate to download, eg 'v0.36.4'. Set to 'latest' to download the latest version",
"env_variable": "VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
}
]
}