wip: nix-topology #81

This commit is contained in:
Leon Schwarzäugl 2026-02-03 15:03:28 +01:00
parent a343de7a90
commit 727e1af67d
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
4 changed files with 47 additions and 35 deletions

View file

@ -16201,11 +16201,13 @@ kanidm person credential create-reset-token <user>
koillection-env-file = { inherit sopsFile; }; koillection-env-file = { inherit sopsFile; };
}; };
topology.nodes.${topologyContainerName}.services.${serviceName} = { # topology.nodes.${topologyContainerName}.services.${serviceName} = {
name = lib.swarselsystems.toCapitalized serviceName; # name = lib.swarselsystems.toCapitalized serviceName;
info = "https://${serviceDomain}"; # info = "https://${serviceDomain}";
icon = "${self}/files/topology-images/${serviceName}.png"; # icon = "${self}/files/topology-images/${serviceName}.png";
}; # };
topology.serviceRegistry.koillection.oci.repos = [ "koillection" ];
globals = { globals = {
networks = { networks = {
@ -16763,11 +16765,13 @@ kanidm person credential create-reset-token <user>
}; };
}; };
topology.nodes.${topologyContainerName}.services.${serviceName} = { # topology.nodes.${topologyContainerName}.services.${serviceName} = {
name = lib.swarselsystems.toCapitalized serviceName; # name = lib.swarselsystems.toCapitalized serviceName;
info = "https://${serviceDomain}"; # info = "https://${serviceDomain}";
icon = "${self}/files/topology-images/${serviceName}.png"; # icon = "${self}/files/topology-images/${serviceName}.png";
}; # };
topology.serviceRegistry.shlinkio.oci.repos = [ "shlink" ];
virtualisation.oci-containers.containers.${serviceName} = { virtualisation.oci-containers.containers.${serviceName} = {
image = "shlinkio/shlink@${containerRev}"; image = "shlinkio/shlink@${containerRev}";
@ -16871,11 +16875,13 @@ Deployment notes:
podman = true; podman = true;
}; };
topology.nodes.${topologyContainerName}.services.${serviceName} = { # topology.nodes.${topologyContainerName}.services.${serviceName} = {
name = lib.swarselsystems.toCapitalized serviceName; # name = lib.swarselsystems.toCapitalized serviceName;
info = "https://${serviceDomain}"; # info = "https://${serviceDomain}";
icon = "services.not-available"; # icon = "services.not-available";
}; # };
topology.serviceRegistry.anirdev.oci.repos = [ "slink" ];
virtualisation.oci-containers.containers.${serviceName} = { virtualisation.oci-containers.containers.${serviceName} = {
image = "anirdev/slink@${containerRev}"; image = "anirdev/slink@${containerRev}";

View file

@ -1,6 +1,6 @@
{ self, lib, config, globals, dns, confLib, ... }: { lib, config, globals, dns, confLib, ... }:
let 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; inherit (confLib.static) isHome isProxied webProxy homeWebProxy dnsServer homeProxyIf webProxyIf homeServiceAddress nginxAccessRules;
serviceDB = "koillection"; serviceDB = "koillection";
@ -24,11 +24,13 @@ in
koillection-env-file = { inherit sopsFile; }; koillection-env-file = { inherit sopsFile; };
}; };
topology.nodes.${topologyContainerName}.services.${serviceName} = { # topology.nodes.${topologyContainerName}.services.${serviceName} = {
name = lib.swarselsystems.toCapitalized serviceName; # name = lib.swarselsystems.toCapitalized serviceName;
info = "https://${serviceDomain}"; # info = "https://${serviceDomain}";
icon = "${self}/files/topology-images/${serviceName}.png"; # icon = "${self}/files/topology-images/${serviceName}.png";
}; # };
topology.serviceRegistry.koillection.oci.repos = [ "koillection" ];
globals = { globals = {
networks = { networks = {

View file

@ -1,6 +1,6 @@
{ self, lib, config, dns, globals, confLib, ... }: { lib, config, dns, globals, confLib, ... }:
let 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; inherit (confLib.static) isHome isProxied webProxy homeWebProxy dnsServer homeProxyIf webProxyIf homeServiceAddress nginxAccessRules;
containerRev = "sha256:1a697baca56ab8821783e0ce53eb4fb22e51bb66749ec50581adc0cb6d031d7a"; containerRev = "sha256:1a697baca56ab8821783e0ce53eb4fb22e51bb66749ec50581adc0cb6d031d7a";
@ -31,11 +31,13 @@ in
}; };
}; };
topology.nodes.${topologyContainerName}.services.${serviceName} = { # topology.nodes.${topologyContainerName}.services.${serviceName} = {
name = lib.swarselsystems.toCapitalized serviceName; # name = lib.swarselsystems.toCapitalized serviceName;
info = "https://${serviceDomain}"; # info = "https://${serviceDomain}";
icon = "${self}/files/topology-images/${serviceName}.png"; # icon = "${self}/files/topology-images/${serviceName}.png";
}; # };
topology.serviceRegistry.shlinkio.oci.repos = [ "shlink" ];
virtualisation.oci-containers.containers.${serviceName} = { virtualisation.oci-containers.containers.${serviceName} = {
image = "shlinkio/shlink@${containerRev}"; image = "shlinkio/shlink@${containerRev}";

View file

@ -1,6 +1,6 @@
{ lib, config, dns, globals, confLib, ... }: { lib, config, dns, globals, confLib, ... }:
let 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; inherit (confLib.static) isHome isProxied webProxy homeWebProxy dnsServer homeProxyIf webProxyIf homeServiceAddress nginxAccessRules;
containerRev = "sha256:98b9442696f0a8cbc92f0447f54fa4bad227af5dcfd6680545fedab2ed28ddd9"; containerRev = "sha256:98b9442696f0a8cbc92f0447f54fa4bad227af5dcfd6680545fedab2ed28ddd9";
@ -15,11 +15,13 @@ in
podman = true; podman = true;
}; };
topology.nodes.${topologyContainerName}.services.${serviceName} = { # topology.nodes.${topologyContainerName}.services.${serviceName} = {
name = lib.swarselsystems.toCapitalized serviceName; # name = lib.swarselsystems.toCapitalized serviceName;
info = "https://${serviceDomain}"; # info = "https://${serviceDomain}";
icon = "services.not-available"; # icon = "services.not-available";
}; # };
topology.serviceRegistry.anirdev.oci.repos = [ "slink" ];
virtualisation.oci-containers.containers.${serviceName} = { virtualisation.oci-containers.containers.${serviceName} = {
image = "anirdev/slink@${containerRev}"; image = "anirdev/slink@${containerRev}";