Commit 2827bc58b49f

Vincent Demeester <vincent@sbr.pm>
2026-01-02 11:24:53
feat(services): Expose Navidrome, Jellyfin, and Audiobookshelf
- Add DNS A records for navidrome, jellyfin, audiobookshelf - Configure Caddy reverse proxies for all three services - Enable external access to music, media, and audiobook servers Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 1df7d13
Changed files (2)
systems
common
services
kerkouane
systems/common/services/dns/sbr.pm-gandi.nix
@@ -13,7 +13,10 @@ in
 baseZone
 // {
   subdomains = baseZone.subdomains // {
-    # Override immich to point to kerkouane's public IP (reverse proxy entry point)
+    # Override services to point to kerkouane's public IP (reverse proxy entry point)
     immich.A = [ "167.99.17.238" ];
+    navidrome.A = [ "167.99.17.238" ];
+    jellyfin.A = [ "167.99.17.238" ];
+    audiobookshelf.A = [ "167.99.17.238" ];
   };
 }
systems/kerkouane/extra.nix
@@ -143,6 +143,36 @@ in
         }
       '';
 
+      # Navidrome music streaming (proxied to aion)
+      "navidrome.sbr.pm".extraConfig = ''
+        reverse_proxy 10.100.0.49:4533 {
+          header_up Host {host}
+          header_up X-Forwarded-For {remote_host}
+          header_up X-Real-IP {remote_host}
+          header_up X-Forwarded-Proto {scheme}
+        }
+      '';
+
+      # Jellyfin media server (proxied to rhea)
+      "jellyfin.sbr.pm".extraConfig = ''
+        reverse_proxy 10.100.0.50:8096 {
+          header_up Host {host}
+          header_up X-Forwarded-For {remote_host}
+          header_up X-Real-IP {remote_host}
+          header_up X-Forwarded-Proto {scheme}
+        }
+      '';
+
+      # Audiobookshelf audiobook server (proxied to aion)
+      "audiobookshelf.sbr.pm".extraConfig = ''
+        reverse_proxy 10.100.0.49:13378 {
+          header_up Host {host}
+          header_up X-Forwarded-For {remote_host}
+          header_up X-Real-IP {remote_host}
+          header_up X-Forwarded-Proto {scheme}
+        }
+      '';
+
       # Webhook/gosmee service with SSE support
       "webhook.sbr.pm".extraConfig = ''
         reverse_proxy localhost:3333 {