mirror of
https://codeberg.org/polyteknisk-radiogruppe/the_prg_server_configuration.git
synced 2026-10-21 03:15:46 +02:00
Compare commits
7 commits
783f1a8c0a
...
5ca2774960
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ca2774960 | |||
| 1a5c5b7904 | |||
| cada6f4672 | |||
| 3321243a6e | |||
| 676f8aaa03 | |||
| 617e3a0e45 | |||
| b397a85336 |
3 changed files with 32 additions and 16 deletions
|
|
@ -145,7 +145,7 @@
|
||||||
"/var/log/pelican/:/var/log/pelican:rw"
|
"/var/log/pelican/:/var/log/pelican:rw"
|
||||||
];
|
];
|
||||||
ports = [
|
ports = [
|
||||||
"8080:8080/tcp"
|
"8443:8443/tcp"
|
||||||
"2022:2022/tcp"
|
"2022:2022/tcp"
|
||||||
];
|
];
|
||||||
cmd = ["wings" "--ignore-certificate-errors"];
|
cmd = ["wings" "--ignore-certificate-errors"];
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ services:
|
||||||
container_name: pelican_wings
|
container_name: pelican_wings
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8443:8443"
|
||||||
- "2022:2022"
|
- "2022:2022"
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
command: ["wings", "--ignore-certificate-errors"]
|
command: ["wings", "--ignore-certificate-errors"]
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths);
|
choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths);
|
||||||
# Domain and Cloudflare DDNS records configured here. Update this list to add/remove records.
|
# Domain and Cloudflare DDNS records configured here. Update this list to add/remove records.
|
||||||
domain = "prg-radio.org";
|
domain = "prg-radio.org";
|
||||||
records = ["git" "grafana" "anubis" "wavelog" "pelican" "partdb" "mail" "mailadmin" "@" "test" "minecraft" "wings1.pelican"];
|
records = ["git" "grafana" "anubis" "wavelog" "pelican" "partdb" "mail" "mailadmin" "@" "test" "minecraft" "wings1"];
|
||||||
recordsStr = lib.concatStringsSep " " records;
|
recordsStr = lib.concatStringsSep " " records;
|
||||||
zoneId = "9fde8d0fa53502f2d1b7e0b1d3765d49";
|
zoneId = "9fde8d0fa53502f2d1b7e0b1d3765d49";
|
||||||
envFile = "/home/traefikprg/cloudflare/cloudflare.env";
|
envFile = "/home/traefikprg/cloudflare/cloudflare.env";
|
||||||
|
|
@ -296,6 +296,11 @@ in {
|
||||||
address = "[::]:993";
|
address = "[::]:993";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# SMPT TCP entrypoint (For Pelican's Wings file service)
|
||||||
|
pelican-wings-file = {
|
||||||
|
address = "[::]:2022";
|
||||||
|
};
|
||||||
|
|
||||||
# Minecraft TCP entrypoint (Minecraft Java Edition default port)
|
# Minecraft TCP entrypoint (Minecraft Java Edition default port)
|
||||||
minecraft = {
|
minecraft = {
|
||||||
address = "[::]:25565";
|
address = "[::]:25565";
|
||||||
|
|
@ -379,7 +384,7 @@ in {
|
||||||
|
|
||||||
# Wings panel - exposes the Wings
|
# Wings panel - exposes the Wings
|
||||||
wings = {
|
wings = {
|
||||||
rule = "Host(`wings1.pelican.prg-radio.org`)";
|
rule = "Host(`wings1.prg-radio.org`)";
|
||||||
service = "wings-pelican";
|
service = "wings-pelican";
|
||||||
entryPoints = ["websecure"];
|
entryPoints = ["websecure"];
|
||||||
tls = {certresolver = "acme";};
|
tls = {certresolver = "acme";};
|
||||||
|
|
@ -488,14 +493,12 @@ in {
|
||||||
servers = [
|
servers = [
|
||||||
{url = "http://10.1.1.249:8070";}
|
{url = "http://10.1.1.249:8070";}
|
||||||
];
|
];
|
||||||
passHostHeader = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
wings-pelican.loadBalancer = {
|
wings-pelican.loadBalancer = {
|
||||||
servers = [
|
servers = [
|
||||||
{url = "http://10.1.1.249:2022";}
|
{url = "https://10.1.1.249:8443";}
|
||||||
];
|
];
|
||||||
passHostHeader = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Mail JMAP HTTP backend
|
# Mail JMAP HTTP backend
|
||||||
|
|
@ -577,7 +580,12 @@ in {
|
||||||
entryPoints = ["imaps"];
|
entryPoints = ["imaps"];
|
||||||
tls = {passthrough = true;};
|
tls = {passthrough = true;};
|
||||||
};
|
};
|
||||||
|
pelican-wings-file = {
|
||||||
|
# Use catch-all SNI rule because Minecraft clients don't use TLS/SNI
|
||||||
|
rule = "HostSNI(`*`)";
|
||||||
|
service = "pelican-wings-file";
|
||||||
|
entryPoints = ["pelican-wings-file"];
|
||||||
|
};
|
||||||
# TCP router for Minecraft (plain TCP on 25565)
|
# TCP router for Minecraft (plain TCP on 25565)
|
||||||
minecraft = {
|
minecraft = {
|
||||||
# Use catch-all SNI rule because Minecraft clients don't use TLS/SNI
|
# Use catch-all SNI rule because Minecraft clients don't use TLS/SNI
|
||||||
|
|
@ -631,6 +639,13 @@ in {
|
||||||
servers = [{address = "10.1.1.15:993";}];
|
servers = [{address = "10.1.1.15:993";}];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# TCP service for SMTP of the Pelican
|
||||||
|
pelican-wings-file.loadBalancer = {
|
||||||
|
servers = [
|
||||||
|
{address = "10.1.1.249:2022";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# TCP service for Minecraft
|
# TCP service for Minecraft
|
||||||
minecraft.loadBalancer = {
|
minecraft.loadBalancer = {
|
||||||
servers = [
|
servers = [
|
||||||
|
|
@ -640,10 +655,10 @@ in {
|
||||||
|
|
||||||
# TCP game services
|
# TCP game services
|
||||||
openra.loadBalancer = {
|
openra.loadBalancer = {
|
||||||
servers = [{address = "10.1.1.244:1234";}];
|
servers = [{address = "10.1.1.249:1234";}];
|
||||||
};
|
};
|
||||||
openttd.loadBalancer = {
|
openttd.loadBalancer = {
|
||||||
servers = [{address = "10.1.1.244:3979";}];
|
servers = [{address = "10.1.1.249:3979";}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -693,16 +708,16 @@ in {
|
||||||
|
|
||||||
# UDP game services (Valheim and Xonotic)
|
# UDP game services (Valheim and Xonotic)
|
||||||
"valheim-2456".loadBalancer = {
|
"valheim-2456".loadBalancer = {
|
||||||
servers = [{address = "10.1.1.244:2456";}];
|
servers = [{address = "10.1.1.249:2456";}];
|
||||||
};
|
};
|
||||||
"valheim-2457".loadBalancer = {
|
"valheim-2457".loadBalancer = {
|
||||||
servers = [{address = "10.1.1.244:2457";}];
|
servers = [{address = "10.1.1.249:2457";}];
|
||||||
};
|
};
|
||||||
"valheim-2458".loadBalancer = {
|
"valheim-2458".loadBalancer = {
|
||||||
servers = [{address = "10.1.1.244:2458";}];
|
servers = [{address = "10.1.1.249:2458";}];
|
||||||
};
|
};
|
||||||
xonotic.loadBalancer = {
|
xonotic.loadBalancer = {
|
||||||
servers = [{address = "10.1.1.244:26000";}];
|
servers = [{address = "10.1.1.249:26000";}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -998,8 +1013,9 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [80 443 10022 30033 8448 9001 3001 993 465 25 25565 24454];
|
# Allow common HTTP/S and control ports,
|
||||||
networking.firewall.allowedUDPPorts = [80 443 9987 9001 3001 993 465 25 25565 24454];
|
networking.firewall.allowedTCPPorts = [80 443 10022 30033 8448 9001 3001 993 465 25 25565 24454 2456 2457 2458 26000 1234 3979 2022];
|
||||||
|
networking.firewall.allowedUDPPorts = [80 443 9987 9001 3001 993 465 25 25565 24454 2022 2456 2457 2458 26000 1234 3979 2022];
|
||||||
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue