From d536b55061ba311d88c532d5ec2a14e54d516c3e Mon Sep 17 00:00:00 2001 From: Christine Elisabeth Koppel Date: Sat, 7 Feb 2026 00:00:54 +0100 Subject: [PATCH] Add Wavelog onto Traefik --- .../songsheet/wavelog/docker-compose.nix | 47 ++++++++++--------- .../modules/system/compose-songsheet.nix | 12 ++--- nix-system-configs/modules/system/traefik.nix | 12 +++++ 3 files changed, 44 insertions(+), 27 deletions(-) diff --git a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix index c260015..998500c 100644 --- a/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix +++ b/nix-system-configs/modules/songsheet/wavelog/docker-compose.nix @@ -1,8 +1,10 @@ # Auto-generated by compose2nix. - -{ pkgs, lib, config, ... }: - { + pkgs, + lib, + config, + ... +}: { # Runtime virtualisation.podman = { enable = true; @@ -12,9 +14,12 @@ # Enable container name DNS for all Podman networks. networking.firewall.interfaces = let - matchAll = if !config.networking.nftables.enable then "podman+" else "podman*"; + matchAll = + if !config.networking.nftables.enable + then "podman+" + else "podman*"; in { - "${matchAll}".allowedUDPPorts = [ 53 ]; + "${matchAll}".allowedUDPPorts = [53]; }; virtualisation.oci-containers.backend = "podman"; @@ -104,7 +109,7 @@ # Networks systemd.services."podman-network-wavelog_default" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -113,13 +118,13 @@ script = '' podman network inspect wavelog_default || podman network create wavelog_default ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; # Volumes systemd.services."podman-volume-wavelog_wavelog-config" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -127,11 +132,11 @@ script = '' podman volume inspect wavelog_wavelog-config || podman volume create wavelog_wavelog-config ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; systemd.services."podman-volume-wavelog_wavelog-dbdata" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -139,11 +144,11 @@ script = '' podman volume inspect wavelog_wavelog-dbdata || podman volume create wavelog_wavelog-dbdata ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; systemd.services."podman-volume-wavelog_wavelog-uploads" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -151,11 +156,11 @@ script = '' podman volume inspect wavelog_wavelog-uploads || podman volume create wavelog_wavelog-uploads ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; systemd.services."podman-volume-wavelog_wavelog-userdata" = { - path = [ pkgs.podman ]; + path = [pkgs.podman]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -163,8 +168,8 @@ script = '' podman volume inspect wavelog_wavelog-userdata || podman volume create wavelog_wavelog-userdata ''; - partOf = [ "podman-compose-wavelog-root.target" ]; - wantedBy = [ "podman-compose-wavelog-root.target" ]; + partOf = ["podman-compose-wavelog-root.target"]; + wantedBy = ["podman-compose-wavelog-root.target"]; }; # Root service @@ -174,6 +179,6 @@ unitConfig = { Description = "Root target generated by compose2nix."; }; - wantedBy = [ "multi-user.target" ]; + wantedBy = ["multi-user.target"]; }; } diff --git a/nix-system-configs/modules/system/compose-songsheet.nix b/nix-system-configs/modules/system/compose-songsheet.nix index ba4b39c..6ac040b 100644 --- a/nix-system-configs/modules/system/compose-songsheet.nix +++ b/nix-system-configs/modules/system/compose-songsheet.nix @@ -47,14 +47,14 @@ local.address = "10.1.1.249"; networking.firewall.allowedTCPPorts = [ - 80 - 443 - 8086 # Wavelog + 80 + 443 + 8086 # Wavelog ]; networking.firewall.allowedUDPPorts = [ - 80 - 443 - 8086 # Wavelog + 80 + 443 + 8086 # Wavelog ]; system.stateVersion = "25.11"; diff --git a/nix-system-configs/modules/system/traefik.nix b/nix-system-configs/modules/system/traefik.nix index f4edbb8..4658796 100644 --- a/nix-system-configs/modules/system/traefik.nix +++ b/nix-system-configs/modules/system/traefik.nix @@ -90,6 +90,13 @@ entryPoints = ["websecure"]; tls = {}; }; + + wavelog = { + rule = "Host(`wavelog.prg-radio.org`)"; + service = "wavelog"; + entryPoints = ["websecure"]; + tls = {}; + }; }; http.services = { forgejo.loadBalancer = { @@ -97,6 +104,11 @@ {url = "http://10.1.1.4:3000";} ]; }; + wavelog.loadBalancer = { + servers = [ + {url = "http://10.1.1.249:8086";} + ]; + }; }; }; };