Add game ports for Valheim, OpenRA, OpenTTD, and Xonotic; update Wings configuration to use different ports instead.
Some checks failed
Build Nix modules (dry-run) / build-modules (push) Failing after 3m18s

This commit is contained in:
Root User 2026-03-22 15:13:43 +01:00
parent c80877a9a9
commit 6c25a08515
Signed by: root
GPG key ID: 087F0A95E5766D72
5 changed files with 81 additions and 4 deletions

View file

@ -145,8 +145,8 @@
"/var/log/pelican/:/var/log/pelican:rw" "/var/log/pelican/:/var/log/pelican:rw"
]; ];
ports = [ ports = [
"8080:8080/tcp"
"2022:2022/tcp" "2022:2022/tcp"
"8443:443/tcp"
]; ];
cmd = ["wings" "--ignore-certificate-errors"]; cmd = ["wings" "--ignore-certificate-errors"];
log-driver = "journald"; log-driver = "journald";

View file

@ -115,8 +115,8 @@ services:
container_name: pelican_wings container_name: pelican_wings
restart: unless-stopped restart: unless-stopped
ports: ports:
- "8080:8080"
- "2022:2022" - "2022:2022"
- "8443:443"
stdin_open: true stdin_open: true
command: ["wings", "--ignore-certificate-errors"] command: ["wings", "--ignore-certificate-errors"]
tty: true tty: true

View file

@ -59,6 +59,16 @@ in {
8087 # PartDB 8087 # PartDB
8070 # Pelican 8070 # Pelican
8443 # Wings 8443 # Wings
8080 # Wings
2022 # Wings
# Game stuff
2456 # Valheim
2457 # Valheim
2458 # Valheim
1234 # OpenRA
3979 # OpenTTD
26000 # Xonotic
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
80 80
@ -67,6 +77,16 @@ in {
8087 # PartDB 8087 # PartDB
8070 # Pelican 8070 # Pelican
8443 # Wings 8443 # Wings
8080 # Wings
2022 # Wings
# Game stuff
2456 # Valheim
2457 # Valheim
2458 # Valheim
1234 # OpenRA
3979 # OpenTTD
26000 # Xonotic
]; ];
system.stateVersion = "25.11"; system.stateVersion = "25.11";

View file

@ -224,7 +224,6 @@ in {
url = "https://cdn.modrinth.com/data/xGdtZczs/versions/wugBT1fU/polymer-bundled-0.15.2%2B1.21.11.jar"; url = "https://cdn.modrinth.com/data/xGdtZczs/versions/wugBT1fU/polymer-bundled-0.15.2%2B1.21.11.jar";
sha512 = "9c205ab398c324ee4dc376269d8aa5df64d11766b6418952a64d2df94f096e665f63eae0c4f0c66e22d03c6ff6767550d1777c28485340131e6556091199062a"; sha512 = "9c205ab398c324ee4dc376269d8aa5df64d11766b6418952a64d2df94f096e665f63eae0c4f0c66e22d03c6ff6767550d1777c28485340131e6556091199062a";
}; };
} }
); );
}; };

View file

@ -305,6 +305,14 @@ in {
minecraft-voice = { minecraft-voice = {
address = "[::]:24454/udp"; address = "[::]:24454/udp";
}; };
# Game ports: Valheim (UDP 2456-2458), OpenRA (TCP 1234), OpenTTD (TCP 3979), Xonotic (UDP 26000)
valheim-2456 = {address = "[::]:2456/udp";};
valheim-2457 = {address = "[::]:2457/udp";};
valheim-2458 = {address = "[::]:2458/udp";};
openra = {address = "[::]:1234";};
openttd = {address = "[::]:3979";};
xonotic = {address = "[::]:26000/udp";};
}; };
log = { log = {
level = "INFO"; level = "INFO";
@ -485,7 +493,7 @@ in {
wings-pelican.loadBalancer = { wings-pelican.loadBalancer = {
servers = [ servers = [
{url = "http://10.1.1.249:8443";} {url = "http://10.1.1.249:8080";}
]; ];
passHostHeader = true; passHostHeader = true;
}; };
@ -577,6 +585,17 @@ in {
service = "minecraft"; service = "minecraft";
entryPoints = ["minecraft"]; entryPoints = ["minecraft"];
}; };
# TCP game routers
openra = {
rule = "HostSNI(`*`)"; # catch-all; replace with stricter rule if desired
service = "openra";
entryPoints = ["openra"];
};
openttd = {
rule = "HostSNI(`*`)";
service = "openttd";
entryPoints = ["openttd"];
};
}; };
tcp.services = { tcp.services = {
@ -618,6 +637,14 @@ in {
{address = "10.1.1.244:25565";} {address = "10.1.1.244:25565";}
]; ];
}; };
# TCP game services
openra.loadBalancer = {
servers = [{address = "10.1.1.244:1234";}];
};
openttd.loadBalancer = {
servers = [{address = "10.1.1.244:3979";}];
};
}; };
# UDP routing for TeamSpeak voice # UDP routing for TeamSpeak voice
@ -632,6 +659,23 @@ in {
entryPoints = ["minecraft-voice"]; entryPoints = ["minecraft-voice"];
service = "minecraft-voice"; service = "minecraft-voice";
}; };
# UDP routers for game services
valheim-2456 = {
entryPoints = ["valheim-2456"];
service = "valheim-2456";
};
valheim-2457 = {
entryPoints = ["valheim-2457"];
service = "valheim-2457";
};
valheim-2458 = {
entryPoints = ["valheim-2458"];
service = "valheim-2458";
};
xonotic = {
entryPoints = ["xonotic"];
service = "xonotic";
};
}; };
udp.services = { udp.services = {
@ -646,6 +690,20 @@ in {
{address = "10.1.1.244:24454";} {address = "10.1.1.244:24454";}
]; ];
}; };
# UDP game services (Valheim and Xonotic)
"valheim-2456".loadBalancer = {
servers = [{address = "10.1.1.244:2456";}];
};
"valheim-2457".loadBalancer = {
servers = [{address = "10.1.1.244:2457";}];
};
"valheim-2458".loadBalancer = {
servers = [{address = "10.1.1.244:2458";}];
};
xonotic.loadBalancer = {
servers = [{address = "10.1.1.244:26000";}];
};
}; };
}; };
}; };