From d660bf8101449a9e59b4fd7c72cdfb524af1c808 Mon Sep 17 00:00:00 2001 From: jasmine Date: Wed, 5 Jun 2024 21:14:22 +0800 Subject: [PATCH] Move traefik routers/services to applicable service/container.nix --- nixos/viridian/containers/adguardhome.nix | 19 +++ nixos/viridian/containers/homarr.nix | 20 +++ nixos/viridian/containers/jellyfin.nix | 20 +++ nixos/viridian/containers/jellyseerr.nix | 20 +++ nixos/viridian/containers/lidarr.nix | 20 +++ .../viridian/containers/microbin/default.nix | 20 +++ nixos/viridian/containers/prowlarr.nix | 19 +++ nixos/viridian/containers/qbittorrent.nix | 20 +++ nixos/viridian/containers/radarr.nix | 19 +++ nixos/viridian/containers/sonarr.nix | 19 +++ nixos/viridian/services/forgejo.nix | 20 +++ nixos/viridian/services/httpd.nix | 19 +++ nixos/viridian/services/minecraft/default.nix | 20 +++ nixos/viridian/services/traefik/routers.nix | 143 ------------------ nixos/viridian/services/traefik/services.nix | 42 ----- 15 files changed, 255 insertions(+), 185 deletions(-) diff --git a/nixos/viridian/containers/adguardhome.nix b/nixos/viridian/containers/adguardhome.nix index 264465a..5b22ea0 100644 --- a/nixos/viridian/containers/adguardhome.nix +++ b/nixos/viridian/containers/adguardhome.nix @@ -18,4 +18,23 @@ ]; }; }; + services.traefik.dynamicConfigOptions.http.routers = { + adguard-home = { + rule = "Host(`adguard.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "adguard-home"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + adguard-home.loadBalancer.servers = [ + { url = "http://192.168.1.102:3000"; } + ]; + }; } + diff --git a/nixos/viridian/containers/homarr.nix b/nixos/viridian/containers/homarr.nix index 3a45948..8a2352e 100644 --- a/nixos/viridian/containers/homarr.nix +++ b/nixos/viridian/containers/homarr.nix @@ -21,4 +21,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + homarr = { + rule = "Host(`kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "homarr"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + homarr.loadBalancer.servers = [ + { url = "http://192.168.1.102:7575"; } + ]; + }; } + diff --git a/nixos/viridian/containers/jellyfin.nix b/nixos/viridian/containers/jellyfin.nix index a59347e..3ec5c1b 100644 --- a/nixos/viridian/containers/jellyfin.nix +++ b/nixos/viridian/containers/jellyfin.nix @@ -26,4 +26,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + jellyfin = { + rule = "Host(`jellyfin.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "internal" + ]; + service = "jellyfin"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + jellyfin.loadBalancer.servers = [ + { url = "http://192.168.1.102:8096"; } + ]; + }; } + diff --git a/nixos/viridian/containers/jellyseerr.nix b/nixos/viridian/containers/jellyseerr.nix index e805e6d..be410b7 100644 --- a/nixos/viridian/containers/jellyseerr.nix +++ b/nixos/viridian/containers/jellyseerr.nix @@ -17,4 +17,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + jellyseerr = { + rule = "Host(`jellyseerr.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "internal" + ]; + service = "jellyseerr"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + jellyseerr.loadBalancer.servers = [ + { url = "http://192.168.1.102:5055"; } + ]; + }; } + diff --git a/nixos/viridian/containers/lidarr.nix b/nixos/viridian/containers/lidarr.nix index 30f72bc..8b1edd3 100644 --- a/nixos/viridian/containers/lidarr.nix +++ b/nixos/viridian/containers/lidarr.nix @@ -20,4 +20,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + lidarr = { + rule = "Host(`lidarr.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "lidarr"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + lidarr.loadBalancer.servers = [ + { url = "http://192.168.1.102:8686"; } + ]; + }; } + diff --git a/nixos/viridian/containers/microbin/default.nix b/nixos/viridian/containers/microbin/default.nix index 312b98f..1efc6b1 100644 --- a/nixos/viridian/containers/microbin/default.nix +++ b/nixos/viridian/containers/microbin/default.nix @@ -25,4 +25,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + microbin = { + rule = "Host(`bin.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "internal" + ]; + service = "microbin"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + microbin.loadBalancer.servers = [ + { url = "http://192.168.1.102:8181"; } + ]; + }; } + diff --git a/nixos/viridian/containers/prowlarr.nix b/nixos/viridian/containers/prowlarr.nix index 48e67ff..44e8d3d 100644 --- a/nixos/viridian/containers/prowlarr.nix +++ b/nixos/viridian/containers/prowlarr.nix @@ -18,4 +18,23 @@ ]; }; }; + services.traefik.dynamicConfigOptions.http.routers = { + prowlarr = { + rule = "Host(`prowlarr.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "prowlarr"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + prowlarr.loadBalancer.servers = [ + { url = "http://192.168.1.102:9696"; } + ]; + }; } + diff --git a/nixos/viridian/containers/qbittorrent.nix b/nixos/viridian/containers/qbittorrent.nix index e9550fb..9e20df7 100644 --- a/nixos/viridian/containers/qbittorrent.nix +++ b/nixos/viridian/containers/qbittorrent.nix @@ -20,4 +20,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + qbittorrent = { + rule = "Host(`torrent.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "qbittorrent"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + qbittorrent.loadBalancer.servers = [ + { url = "http://192.168.1.102:8080"; } + ]; + }; } + diff --git a/nixos/viridian/containers/radarr.nix b/nixos/viridian/containers/radarr.nix index 6f0b65d..07a8678 100644 --- a/nixos/viridian/containers/radarr.nix +++ b/nixos/viridian/containers/radarr.nix @@ -20,4 +20,23 @@ ]; }; }; + services.traefik.dynamicConfigOptions.http.routers = { + radarr = { + rule = "Host(`radarr.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "radarr"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + radarr.loadBalancer.servers = [ + { url = "http://192.168.1.102:7878"; } + ]; + }; } + diff --git a/nixos/viridian/containers/sonarr.nix b/nixos/viridian/containers/sonarr.nix index d39e799..f42eefb 100644 --- a/nixos/viridian/containers/sonarr.nix +++ b/nixos/viridian/containers/sonarr.nix @@ -20,5 +20,24 @@ ]; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + sonarr = { + rule = "Host(`sonarr.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "admin" + ]; + service = "sonarr"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + sonarr.loadBalancer.servers = [ + { url = "http://192.168.1.102:8989"; } + ]; + }; } diff --git a/nixos/viridian/services/forgejo.nix b/nixos/viridian/services/forgejo.nix index 74a5b3f..c338daf 100644 --- a/nixos/viridian/services/forgejo.nix +++ b/nixos/viridian/services/forgejo.nix @@ -17,4 +17,24 @@ log.LEVEL = "Info"; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + forgejo = { + rule = "Host(`git.sajenim.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "geoblock" + ]; + service = "forgejo"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + forgejo.loadBalancer.servers = [ + { url = "http://192.168.1.102:3131"; } + ]; + }; } + diff --git a/nixos/viridian/services/httpd.nix b/nixos/viridian/services/httpd.nix index 4f8afc7..a8e4077 100644 --- a/nixos/viridian/services/httpd.nix +++ b/nixos/viridian/services/httpd.nix @@ -12,5 +12,24 @@ adminAddr = "its.jassy@pm.me"; }; }; + + services.traefik.dynamicConfigOptions.http.routers = { + httpd = { + rule = "Host(`sajenim.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "geoblock" + ]; + service = "httpd"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + httpd.loadBalancer.servers = [ + { url = "http://192.168.1.102:5624"; } + ]; + }; } diff --git a/nixos/viridian/services/minecraft/default.nix b/nixos/viridian/services/minecraft/default.nix index 00704cb..9829311 100644 --- a/nixos/viridian/services/minecraft/default.nix +++ b/nixos/viridian/services/minecraft/default.nix @@ -74,4 +74,24 @@ in # https://account.mojang.com/documents/minecraft_eula eula = true; }; + + services.traefik.dynamicConfigOptions.http.routers = { + minecraft = { + rule = "Host(`minecraft.kanto.dev`)"; + entryPoints = [ + "websecure" + ]; + middlewares = [ + "internal" + ]; + service = "minecraft"; + }; + }; + + services.traefik.dynamicConfigOptions.http.services = { + minecraft.loadBalancer.servers = [ + { url = "http://192.168.1.102:25565"; } + ]; + }; } + diff --git a/nixos/viridian/services/traefik/routers.nix b/nixos/viridian/services/traefik/routers.nix index 6b08839..0b711fd 100644 --- a/nixos/viridian/services/traefik/routers.nix +++ b/nixos/viridian/services/traefik/routers.nix @@ -2,39 +2,6 @@ { services.traefik.dynamicConfigOptions.http.routers = { - httpd = { - rule = "Host(`sajenim.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "geoblock" - ]; - service = "httpd"; - }; - - forgejo = { - rule = "Host(`git.sajenim.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "geoblock" - ]; - service = "forgejo"; - }; - - homarr = { - rule = "Host(`kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "homarr"; - }; - traefik-dashboard = { rule = "Host(`traefik.kanto.dev`)"; entryPoints = [ @@ -46,116 +13,6 @@ service = "api@internal"; }; - adguard-home = { - rule = "Host(`adguard.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "adguard-home"; - }; - - minecraft = { - rule = "Host(`minecraft.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "internal" - ]; - service = "minecraft"; - }; - - jellyfin = { - rule = "Host(`jellyfin.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "internal" - ]; - service = "jellyfin"; - }; - - sonarr = { - rule = "Host(`sonarr.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "sonarr"; - }; - - radarr = { - rule = "Host(`radarr.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "radarr"; - }; - - lidarr = { - rule = "Host(`lidarr.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "lidarr"; - }; - - prowlarr = { - rule = "Host(`prowlarr.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "prowlarr"; - }; - - qbittorrent = { - rule = "Host(`torrent.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "admin" - ]; - service = "qbittorrent"; - }; - - jellyseerr = { - rule = "Host(`jellyseerr.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "internal" - ]; - service = "jellyseerr"; - }; - - microbin = { - rule = "Host(`bin.kanto.dev`)"; - entryPoints = [ - "websecure" - ]; - middlewares = [ - "internal" - ]; - service = "microbin"; - }; - ender1 = { rule = "Host(`e1.kanto.dev`)"; entryPoints = [ diff --git a/nixos/viridian/services/traefik/services.nix b/nixos/viridian/services/traefik/services.nix index 1f21c35..9ad772b 100644 --- a/nixos/viridian/services/traefik/services.nix +++ b/nixos/viridian/services/traefik/services.nix @@ -2,48 +2,6 @@ { services.traefik.dynamicConfigOptions.http.services = { - # sajenim.dev - httpd.loadBalancer.servers = [ - { url = "http://192.168.1.102:5624"; } - ]; - forgejo.loadBalancer.servers = [ - { url = "http://192.168.1.102:3131"; } - ]; - - # kanto.dev - homarr.loadBalancer.servers = [ - { url = "http://192.168.1.102:7575"; } - ]; - adguard-home.loadBalancer.servers = [ - { url = "http://192.168.1.102:3000"; } - ]; - minecraft.loadBalancer.servers = [ - { url = "http://192.168.1.102:25565"; } - ]; - jellyfin.loadBalancer.servers = [ - { url = "http://192.168.1.102:8096"; } - ]; - sonarr.loadBalancer.servers = [ - { url = "http://192.168.1.102:8989"; } - ]; - radarr.loadBalancer.servers = [ - { url = "http://192.168.1.102:7878"; } - ]; - lidarr.loadBalancer.servers = [ - { url = "http://192.168.1.102:8686"; } - ]; - prowlarr.loadBalancer.servers = [ - { url = "http://192.168.1.102:9696"; } - ]; - qbittorrent.loadBalancer.servers = [ - { url = "http://192.168.1.102:8080"; } - ]; - jellyseerr.loadBalancer.servers = [ - { url = "http://192.168.1.102:5055"; } - ]; - microbin.loadBalancer.servers = [ - { url = "http://192.168.1.102:8181"; } - ]; ender1.loadBalancer.servers = [ { url = "http://192.168.1.103:80"; } ];