From 727e1af67ddc81c002679c02ad3e564b20c2f7c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Tue, 3 Feb 2026 15:03:28 +0100 Subject: [PATCH] wip: nix-topology #81 --- SwarselSystems.org | 36 ++++++++++++++++------------ modules/nixos/server/koillection.nix | 16 +++++++------ modules/nixos/server/shlink.nix | 16 +++++++------ modules/nixos/server/slink.nix | 14 ++++++----- 4 files changed, 47 insertions(+), 35 deletions(-) diff --git a/SwarselSystems.org b/SwarselSystems.org index 4b09d47..d941617 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -16201,11 +16201,13 @@ kanidm person credential create-reset-token koillection-env-file = { inherit sopsFile; }; }; - topology.nodes.${topologyContainerName}.services.${serviceName} = { - name = lib.swarselsystems.toCapitalized serviceName; - info = "https://${serviceDomain}"; - icon = "${self}/files/topology-images/${serviceName}.png"; - }; + # topology.nodes.${topologyContainerName}.services.${serviceName} = { + # name = lib.swarselsystems.toCapitalized serviceName; + # info = "https://${serviceDomain}"; + # icon = "${self}/files/topology-images/${serviceName}.png"; + # }; + + topology.serviceRegistry.koillection.oci.repos = [ "koillection" ]; globals = { networks = { @@ -16763,11 +16765,13 @@ kanidm person credential create-reset-token }; }; - topology.nodes.${topologyContainerName}.services.${serviceName} = { - name = lib.swarselsystems.toCapitalized serviceName; - info = "https://${serviceDomain}"; - icon = "${self}/files/topology-images/${serviceName}.png"; - }; + # topology.nodes.${topologyContainerName}.services.${serviceName} = { + # name = lib.swarselsystems.toCapitalized serviceName; + # info = "https://${serviceDomain}"; + # icon = "${self}/files/topology-images/${serviceName}.png"; + # }; + + topology.serviceRegistry.shlinkio.oci.repos = [ "shlink" ]; virtualisation.oci-containers.containers.${serviceName} = { image = "shlinkio/shlink@${containerRev}"; @@ -16871,11 +16875,13 @@ Deployment notes: podman = true; }; - topology.nodes.${topologyContainerName}.services.${serviceName} = { - name = lib.swarselsystems.toCapitalized serviceName; - info = "https://${serviceDomain}"; - icon = "services.not-available"; - }; + # topology.nodes.${topologyContainerName}.services.${serviceName} = { + # name = lib.swarselsystems.toCapitalized serviceName; + # info = "https://${serviceDomain}"; + # icon = "services.not-available"; + # }; + + topology.serviceRegistry.anirdev.oci.repos = [ "slink" ]; virtualisation.oci-containers.containers.${serviceName} = { image = "anirdev/slink@${containerRev}"; diff --git a/modules/nixos/server/koillection.nix b/modules/nixos/server/koillection.nix index cae571b..52fde60 100644 --- a/modules/nixos/server/koillection.nix +++ b/modules/nixos/server/koillection.nix @@ -1,6 +1,6 @@ -{ self, lib, config, globals, dns, confLib, ... }: +{ lib, config, globals, dns, confLib, ... }: let - inherit (confLib.gen { name = "koillection"; port = 2282; dir = "/var/lib/koillection"; }) servicePort serviceName serviceUser serviceDir serviceDomain serviceAddress proxyAddress4 proxyAddress6 topologyContainerName; + inherit (confLib.gen { name = "koillection"; port = 2282; dir = "/var/lib/koillection"; }) servicePort serviceName serviceUser serviceDir serviceDomain serviceAddress proxyAddress4 proxyAddress6; inherit (confLib.static) isHome isProxied webProxy homeWebProxy dnsServer homeProxyIf webProxyIf homeServiceAddress nginxAccessRules; serviceDB = "koillection"; @@ -24,11 +24,13 @@ in koillection-env-file = { inherit sopsFile; }; }; - topology.nodes.${topologyContainerName}.services.${serviceName} = { - name = lib.swarselsystems.toCapitalized serviceName; - info = "https://${serviceDomain}"; - icon = "${self}/files/topology-images/${serviceName}.png"; - }; + # topology.nodes.${topologyContainerName}.services.${serviceName} = { + # name = lib.swarselsystems.toCapitalized serviceName; + # info = "https://${serviceDomain}"; + # icon = "${self}/files/topology-images/${serviceName}.png"; + # }; + + topology.serviceRegistry.koillection.oci.repos = [ "koillection" ]; globals = { networks = { diff --git a/modules/nixos/server/shlink.nix b/modules/nixos/server/shlink.nix index fb552a3..e989771 100644 --- a/modules/nixos/server/shlink.nix +++ b/modules/nixos/server/shlink.nix @@ -1,6 +1,6 @@ -{ self, lib, config, dns, globals, confLib, ... }: +{ lib, config, dns, globals, confLib, ... }: let - inherit (confLib.gen { name = "shlink"; port = 8081; dir = "/var/lib/shlink"; }) servicePort serviceName serviceDomain serviceDir serviceAddress proxyAddress4 proxyAddress6 topologyContainerName; + inherit (confLib.gen { name = "shlink"; port = 8081; dir = "/var/lib/shlink"; }) servicePort serviceName serviceDomain serviceDir serviceAddress proxyAddress4 proxyAddress6; inherit (confLib.static) isHome isProxied webProxy homeWebProxy dnsServer homeProxyIf webProxyIf homeServiceAddress nginxAccessRules; containerRev = "sha256:1a697baca56ab8821783e0ce53eb4fb22e51bb66749ec50581adc0cb6d031d7a"; @@ -31,11 +31,13 @@ in }; }; - topology.nodes.${topologyContainerName}.services.${serviceName} = { - name = lib.swarselsystems.toCapitalized serviceName; - info = "https://${serviceDomain}"; - icon = "${self}/files/topology-images/${serviceName}.png"; - }; + # topology.nodes.${topologyContainerName}.services.${serviceName} = { + # name = lib.swarselsystems.toCapitalized serviceName; + # info = "https://${serviceDomain}"; + # icon = "${self}/files/topology-images/${serviceName}.png"; + # }; + + topology.serviceRegistry.shlinkio.oci.repos = [ "shlink" ]; virtualisation.oci-containers.containers.${serviceName} = { image = "shlinkio/shlink@${containerRev}"; diff --git a/modules/nixos/server/slink.nix b/modules/nixos/server/slink.nix index ae1ce6d..ce6ae92 100644 --- a/modules/nixos/server/slink.nix +++ b/modules/nixos/server/slink.nix @@ -1,6 +1,6 @@ { lib, config, dns, globals, confLib, ... }: let - inherit (confLib.gen { name = "slink"; port = 3000; dir = "/var/lib/slink"; }) servicePort serviceName serviceDomain serviceDir serviceAddress proxyAddress4 proxyAddress6 topologyContainerName; + inherit (confLib.gen { name = "slink"; port = 3000; dir = "/var/lib/slink"; }) servicePort serviceName serviceDomain serviceDir serviceAddress proxyAddress4 proxyAddress6; inherit (confLib.static) isHome isProxied webProxy homeWebProxy dnsServer homeProxyIf webProxyIf homeServiceAddress nginxAccessRules; containerRev = "sha256:98b9442696f0a8cbc92f0447f54fa4bad227af5dcfd6680545fedab2ed28ddd9"; @@ -15,11 +15,13 @@ in podman = true; }; - topology.nodes.${topologyContainerName}.services.${serviceName} = { - name = lib.swarselsystems.toCapitalized serviceName; - info = "https://${serviceDomain}"; - icon = "services.not-available"; - }; + # topology.nodes.${topologyContainerName}.services.${serviceName} = { + # name = lib.swarselsystems.toCapitalized serviceName; + # info = "https://${serviceDomain}"; + # icon = "services.not-available"; + # }; + + topology.serviceRegistry.anirdev.oci.repos = [ "slink" ]; virtualisation.oci-containers.containers.${serviceName} = { image = "anirdev/slink@${containerRev}";