Infrared Commit

This commit is contained in:
Lucas OULIEU 2024-02-06 01:00:04 +01:00
parent cc05582f8b
commit 51e0b63c59
10 changed files with 314 additions and 1 deletions

View File

@ -207,6 +207,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Travertine](game_eggs/minecraft/proxy/java/travertine)
* [Velocity](game_eggs/minecraft/proxy/java/velocity)
* [Waterfall](game_eggs/minecraft/proxy/java/waterfall)
* [Infrared](game_eggs/minecraft/proxy/java/infrared)
* [Bedrock](game_eggs/minecraft/proxy/bedrock)
* [Waterdog PE](game_eggs/minecraft/proxy/bedrock/waterdog_pe)
* [Cross Platform](game_eggs/minecraft/proxy/cross_platform)

View File

@ -101,6 +101,7 @@
* [Travertine](minecraft/proxy/java/travertine)
* [Velocity](minecraft/proxy/java/velocity)
* [Waterfall](minecraft/proxy/java/waterfall)
* [Infrared](minecraft/proxy/java/infrared)
* [Bedrock](minecraft/proxy/bedrock)
* [Waterdog PE](minecraft/proxy/bedrock/waterdog_pe)
* [Cross Platform](minecraft/proxy/cross_platform)

View File

@ -50,3 +50,4 @@ Its set in infinitely-generated worlds of wide open terrain - icy mountains,
* [Velocity](proxy/java/velocity)
* [VIAaas](proxy/java/viaaas)
* [Waterfall](proxy/java/waterfall)
* [Infrared](proxy/java/infrared)

View File

@ -5,6 +5,7 @@
* [Velocity](/game_eggs/minecraft/proxy/java/velocity)
* [VIAaaS](/game_eggs/minecraft/proxy/java/viaaas)
* [Waterfall](/game_eggs/minecraft/proxy/java/waterfall)
* [Infrared](/game_eggs/minecraft/proxy/java/infrared)
* [Bedrock](/game_eggs/minecraft/proxy/bedrock)
* [Waterdog PE](/game_eggs/minecraft/proxy/bedrock/waterdogpe)
* [Cross Platform](/game_eggs/minecraft/proxy/cross_platform)

View File

@ -15,3 +15,7 @@ Velocity is a Minecraft server proxy with unparalleled server support, scalabili
#### Waterfall
[Waterfall](https://papermc.io/downloads#Waterfall)
Paper fork of the BungeeCord software, with improved Forge support and more features.
#### Infrared
[Infrared](https://https://infrared.dev/)
Infrared is a reverse proxy for Minecraft servers, that allow you to map server by domain name.

View File

@ -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 |

View File

@ -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": "oulieu.lucas@gmail.com",
"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"
}
]
}

View File

@ -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": "oulieu.lucas@gmail.com",
"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"
}
]
}

View File

@ -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": "oulieu.lucas@gmail.com",
"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"
}
]
}

View File

@ -0,0 +1,2 @@
# TODO
- Put the dockerfile in the 'yolks' repo