This repository has been archived by the owner on May 14, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
[Infrared] Addition of Infrared to Minecraft Proxy #2729
Draft
Shadowner
wants to merge
1
commit into
pelican-eggs:master
Choose a base branch
from
Shadowner:feature/minecract_proxy_infrared
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Infrared server | ||
Reverse Proxy for Minecraft servers. | ||
|
||
## Reverse Proxy Configuration | ||
Multiple egg are available to configure the reverse proxy. | ||
|
||
* The infrared-manual egg : Please refer to [Infrared Doc](https://infrared.dev/config/proxies) | ||
* The infrared-x-server egg : You need to setup the variable defined in the egg (X_DOMAINS / X_ADDRESSES). | ||
|
||
>If you want to extend the number of Proxy just duplicate the "Proxy #1 Domains / Addresses" variable and change their respective variable name / Environment variable name to an increment. And increment the PROXY_COUNT variable. | ||
|
||
>For now it's the only way to extend the number of Proxy, like a custom egg. | ||
|
||
|
||
| Port | default | | ||
|-------|---------| | ||
| Game | 25565 | |
112 changes: 112 additions & 0 deletions
112
game_eggs/minecraft/proxy/java/infrared/egg-infrared-three-server.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
{ | ||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||
"meta": { | ||
"version": "PTDL_v2", | ||
"update_url": null | ||
}, | ||
"exported_at": "2024-02-05T22:54:33+01:00", | ||
"name": "Basic - Two server", | ||
"author": "[email protected]", | ||
"description": "The basic installation on infrared with two server configurable via environment variables.", | ||
"features": null, | ||
"docker_images": { | ||
"shadowner\/infrared-egg:latest": "shadowner\/infrared-egg:latest" | ||
}, | ||
"file_denylist": [], | ||
"startup": "infrared", | ||
"config": { | ||
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"keepAliveTimeout\": \"{{env.keepAliveTimeout}}s\",\r\n \"filters.rateLimiter.requestLimit\": \"{{env.rateLimiterMaxRequests}}\",\r\n \"filters.rateLimiter.windowLength\": \"{{env.rateLimiterTimeWindow}}s\"\r\n }\r\n }\r\n}", | ||
"startup": "{\r\n \"done\": \"System is online\"\r\n}", | ||
"logs": "{}", | ||
"stop": "^C" | ||
}, | ||
"scripts": { | ||
"installation": { | ||
"script": null, | ||
"container": "alpine:3.4", | ||
"entrypoint": "ash" | ||
} | ||
}, | ||
"variables": [ | ||
{ | ||
"name": "Keep Alive Timeout", | ||
"description": "Maximum duration between packets before the client gets timed out.", | ||
"env_variable": "keepAliveTimeout", | ||
"default_value": "30", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Rate Limiter - Request Limit", | ||
"description": "Request Limit is the amount of times an IP address can create a new connection before it gets blocked.", | ||
"env_variable": "rateLimiterMaxRequests", | ||
"default_value": "10", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Rate Limiter - Window Length", | ||
"description": "Windows Length is the time frame for the Request Limit.", | ||
"env_variable": "rateLimiterTimeWindow", | ||
"default_value": "1", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #1 Domains", | ||
"description": "A list of domains for the addresses listed, separated by a coma.", | ||
"env_variable": "DOMAINS_1", | ||
"default_value": "localhost", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:10000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #1 Addresses", | ||
"description": "A list of addresses including ports separated by a coma.", | ||
"env_variable": "ADDRESSES_1", | ||
"default_value": "127.0.0.1:25565", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:200000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #2 Domains", | ||
"description": "A list of domains for the addresses listed, separated by a coma.", | ||
"env_variable": "DOMAINS_2", | ||
"default_value": "localhost", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:10000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #2 Addresses", | ||
"description": "A list of addresses including ports separated by a coma.", | ||
"env_variable": "ADDRESSES_2", | ||
"default_value": "127.0.0.1:25565", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:200000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy Count", | ||
"description": "Used to keep track of the number of proxies to create.", | ||
"env_variable": "PROXY_COUNT", | ||
"default_value": "2", | ||
"user_viewable": false, | ||
"user_editable": false, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
} | ||
] | ||
} |
112 changes: 112 additions & 0 deletions
112
game_eggs/minecraft/proxy/java/infrared/egg-infrared-two-server.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
{ | ||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", | ||
"meta": { | ||
"version": "PTDL_v2", | ||
"update_url": null | ||
}, | ||
"exported_at": "2024-02-05T22:54:33+01:00", | ||
"name": "Basic - Two server", | ||
"author": "[email protected]", | ||
"description": "The basic installation on infrared with two server configurable via environment variables.", | ||
"features": null, | ||
"docker_images": { | ||
"shadowner\/infrared-egg:latest": "shadowner\/infrared-egg:latest" | ||
}, | ||
"file_denylist": [], | ||
"startup": "infrared", | ||
"config": { | ||
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"keepAliveTimeout\": \"{{env.keepAliveTimeout}}s\",\r\n \"filters.rateLimiter.requestLimit\": \"{{env.rateLimiterMaxRequests}}\",\r\n \"filters.rateLimiter.windowLength\": \"{{env.rateLimiterTimeWindow}}s\"\r\n }\r\n }\r\n}", | ||
"startup": "{\r\n \"done\": \"System is online\"\r\n}", | ||
"logs": "{}", | ||
"stop": "^C" | ||
}, | ||
"scripts": { | ||
"installation": { | ||
"script": null, | ||
"container": "alpine:3.4", | ||
"entrypoint": "ash" | ||
} | ||
}, | ||
"variables": [ | ||
{ | ||
"name": "Keep Alive Timeout", | ||
"description": "Maximum duration between packets before the client gets timed out.", | ||
"env_variable": "keepAliveTimeout", | ||
"default_value": "30", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Rate Limiter - Request Limit", | ||
"description": "Request Limit is the amount of times an IP address can create a new connection before it gets blocked.", | ||
"env_variable": "rateLimiterMaxRequests", | ||
"default_value": "10", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Rate Limiter - Window Length", | ||
"description": "Windows Length is the time frame for the Request Limit.", | ||
"env_variable": "rateLimiterTimeWindow", | ||
"default_value": "1", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #1 Domains", | ||
"description": "A list of domains for the addresses listed, separated by a coma.", | ||
"env_variable": "DOMAINS_1", | ||
"default_value": "localhost", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:10000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #1 Addresses", | ||
"description": "A list of addresses including ports separated by a coma.", | ||
"env_variable": "ADDRESSES_1", | ||
"default_value": "127.0.0.1:25565", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:200000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #2 Domains", | ||
"description": "A list of domains for the addresses listed, separated by a coma.", | ||
"env_variable": "DOMAINS_2", | ||
"default_value": "localhost", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:10000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy - #2 Addresses", | ||
"description": "A list of addresses including ports separated by a coma.", | ||
"env_variable": "ADDRESSES_2", | ||
"default_value": "127.0.0.1:25565", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|string|max:200000", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Proxy Count", | ||
"description": "Used to keep track of the number of proxies to create.", | ||
"env_variable": "PROXY_COUNT", | ||
"default_value": "2", | ||
"user_viewable": false, | ||
"user_editable": false, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-02-05T22:39:14+01:00", | ||
"name": "Basic - Manual Configuation", | ||
"author": "[email protected]", | ||
"description": "The base to run Infrared, however you will need to manually set the proxies in the `proxies` directory. cf : https://infrared.dev/config/proxies", | ||
"features": null, | ||
"docker_images": { | ||
"shadowner\/infrared-egg:latest": "shadowner\/infrared-egg:latest" | ||
}, | ||
"file_denylist": [], | ||
"startup": "infrared", | ||
"config": { | ||
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"bind\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"keepAliveTimeout\": \"{{env.keepAliveTimeout}}s\",\r\n \"filters.rateLimiter.requestLimit\": \"{{env.rateLimiterMaxRequests}}\",\r\n \"filters.rateLimiter.windowLength\": \"{{env.rateLimiterTimeWindow}}s\"\r\n }\r\n }\r\n}", | ||
"startup": "{\r\n \"done\": \"System is online\"\r\n}", | ||
"logs": "{}", | ||
"stop": "^C" | ||
}, | ||
"scripts": { | ||
"installation": { | ||
"script": null, | ||
"container": "alpine:3.4", | ||
"entrypoint": "ash" | ||
} | ||
}, | ||
"variables": [ | ||
{ | ||
"name": "Keep Alive Timeout", | ||
"description": "Maximum duration between packets before the client gets timed out.", | ||
"env_variable": "keepAliveTimeout", | ||
"default_value": "30", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Rate Limiter - Request Limit", | ||
"description": "Request Limit is the amount of times an IP address can create a new connection before it gets blocked.", | ||
"env_variable": "rateLimiterMaxRequests", | ||
"default_value": "10", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
}, | ||
{ | ||
"name": "Rate Limiter - Window Length", | ||
"description": "Windows Length is the time frame for the Request Limit.", | ||
"env_variable": "rateLimiterTimeWindow", | ||
"default_value": "1", | ||
"user_viewable": true, | ||
"user_editable": true, | ||
"rules": "required|int", | ||
"field_type": "text" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# TODO | ||
- Put the dockerfile in the 'yolks' repo |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer if you PR an image to my repo. Why can't this be downloaded in the install script and ran from the home dir?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to the yolks repo ?
I will do it but no tonight sadly, it's in the Todo.md
I use my action on my repo to always fetch the latest infrared release, but I will look more into doing this step in the installation scripts, I had just no clue about how the installation script worked before finding this repo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it uses github for releases you can use the git script - https://github.com/parkervcp/eggs/blob/master/scripts/github_release_grabber.sh