diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix index 4ff4be8..ce3f8ac 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix @@ -145,7 +145,7 @@ "/var/log/pelican/:/var/log/pelican:rw" ]; ports = [ - "8080:8080/tcp" + "8443:8443/tcp" "2022:2022/tcp" ]; cmd = ["wings" "--ignore-certificate-errors"]; diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml b/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml index 9425be8..f82b7eb 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.yml @@ -115,7 +115,7 @@ services: container_name: pelican_wings restart: unless-stopped ports: - - "8080:8080" + - "8443:8443" - "2022:2022" stdin_open: true command: ["wings", "--ignore-certificate-errors"] diff --git a/nix-system-configs/modules/system/traefik.nix b/nix-system-configs/modules/system/traefik.nix index 7725c75..74e59c8 100644 --- a/nix-system-configs/modules/system/traefik.nix +++ b/nix-system-configs/modules/system/traefik.nix @@ -7,7 +7,7 @@ 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 = "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; zoneId = "9fde8d0fa53502f2d1b7e0b1d3765d49"; envFile = "/home/traefikprg/cloudflare/cloudflare.env"; @@ -296,6 +296,11 @@ in { 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 = { address = "[::]:25565"; @@ -379,7 +384,7 @@ in { # Wings panel - exposes the Wings wings = { - rule = "Host(`wings1.pelican.prg-radio.org`)"; + rule = "Host(`wings1.prg-radio.org`)"; service = "wings-pelican"; entryPoints = ["websecure"]; tls = {certresolver = "acme";}; @@ -488,14 +493,12 @@ in { servers = [ {url = "http://10.1.1.249:8070";} ]; - passHostHeader = true; }; wings-pelican.loadBalancer = { servers = [ - {url = "http://10.1.1.249:2022";} + {url = "https://10.1.1.249:8443";} ]; - passHostHeader = true; }; # Mail JMAP HTTP backend @@ -577,7 +580,12 @@ in { entryPoints = ["imaps"]; 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) minecraft = { # 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";}]; }; + # TCP service for SMTP of the Pelican + pelican-wings-file.loadBalancer = { + servers = [ + {address = "10.1.1.249:2022";} + ]; + }; + # TCP service for Minecraft minecraft.loadBalancer = { servers = [ @@ -640,10 +655,10 @@ in { # TCP game services openra.loadBalancer = { - servers = [{address = "10.1.1.244:1234";}]; + servers = [{address = "10.1.1.249:1234";}]; }; 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) "valheim-2456".loadBalancer = { - servers = [{address = "10.1.1.244:2456";}]; + servers = [{address = "10.1.1.249:2456";}]; }; "valheim-2457".loadBalancer = { - servers = [{address = "10.1.1.244:2457";}]; + servers = [{address = "10.1.1.249:2457";}]; }; "valheim-2458".loadBalancer = { - servers = [{address = "10.1.1.244:2458";}]; + servers = [{address = "10.1.1.249:2458";}]; }; 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]; - networking.firewall.allowedUDPPorts = [80 443 9987 9001 3001 993 465 25 25565 24454]; + # Allow common HTTP/S and control ports, + 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"; };