diff --git a/modules/nixos/meta/services.nix b/modules/nixos/meta/services.nix index fee970a..e67e39f 100644 --- a/modules/nixos/meta/services.nix +++ b/modules/nixos/meta/services.nix @@ -6,7 +6,7 @@ { name, ... }: { options = { - title = lib.mkOption { + name = lib.mkOption { type = lib.types.nonEmptyStr; default = name; }; diff --git a/modules/nixos/services/alertmanager.nix b/modules/nixos/services/alertmanager.nix index 977b3a5..3281dd4 100644 --- a/modules/nixos/services/alertmanager.nix +++ b/modules/nixos/services/alertmanager.nix @@ -102,7 +102,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "Alertmanager"; + name = "Alertmanager"; icon = "sh:prometheus"; }; }; diff --git a/modules/nixos/services/alloy.nix b/modules/nixos/services/alloy.nix index 24543d4..6bcb8cb 100644 --- a/modules/nixos/services/alloy.nix +++ b/modules/nixos/services/alloy.nix @@ -132,8 +132,8 @@ in services.caddy.virtualHosts.${cfg.domain}.port = lib.mkIf (cfg.domain != null) cfg.port; meta.services.${cfg.domain} = lib.mkIf (cfg.domain != null) { - title = "Alloy"; - icon = "sh:grafana-alloy"; + name = "Alloy"; + icon = "sh:alloy"; }; }; }; diff --git a/modules/nixos/services/prometheus.nix b/modules/nixos/services/prometheus.nix index 5139fe8..621d784 100644 --- a/modules/nixos/services/prometheus.nix +++ b/modules/nixos/services/prometheus.nix @@ -127,7 +127,7 @@ in persistence.directories = [ "/var/lib/${config.services.prometheus.stateDir}" ]; meta.services.${cfg.domain} = { - title = "Prometheus"; + name = "Prometheus"; icon = "sh:prometheus"; }; }; diff --git a/modules/nixos/services/syncthing.nix b/modules/nixos/services/syncthing.nix index 27703c0..2a898b8 100644 --- a/modules/nixos/services/syncthing.nix +++ b/modules/nixos/services/syncthing.nix @@ -172,7 +172,7 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.gui.domain} = lib.mkIf (cfg.gui.domain != null) { - title = "Syncthing"; + name = "Syncthing"; icon = "sh:syncthing"; }; }; diff --git a/modules/nixos/web-services/actualbudget.nix b/modules/nixos/web-services/actualbudget.nix index ec1a616..c416d9c 100644 --- a/modules/nixos/web-services/actualbudget.nix +++ b/modules/nixos/web-services/actualbudget.nix @@ -54,7 +54,7 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.domain} = { - title = "Actual Budget"; + name = "Actual Budget"; icon = "sh:actual-budget"; }; }; diff --git a/modules/nixos/web-services/atuin.nix b/modules/nixos/web-services/atuin.nix index f655aae..0f559a8 100644 --- a/modules/nixos/web-services/atuin.nix +++ b/modules/nixos/web-services/atuin.nix @@ -49,7 +49,7 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.domain} = { - title = "Atuin"; + name = "Atuin"; icon = "sh:atuin"; }; }; diff --git a/modules/nixos/web-services/filebrowser.nix b/modules/nixos/web-services/filebrowser.nix index 1163d51..e22d440 100644 --- a/modules/nixos/web-services/filebrowser.nix +++ b/modules/nixos/web-services/filebrowser.nix @@ -50,8 +50,8 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.domain} = { - title = "File Browser"; - icon = "sh:filebrowser"; + name = "File Browser"; + icon = "sh:file-browser"; }; }; }; diff --git a/modules/nixos/web-services/forgejo.nix b/modules/nixos/web-services/forgejo.nix index 4a2083a..57f546d 100644 --- a/modules/nixos/web-services/forgejo.nix +++ b/modules/nixos/web-services/forgejo.nix @@ -85,7 +85,7 @@ in persistence.directories = [ config.services.forgejo.stateDir ]; meta.services.${cfg.domain} = { - title = "Forgejo"; + name = "Forgejo"; icon = "sh:forgejo"; }; }; diff --git a/modules/nixos/web-services/freshrss.nix b/modules/nixos/web-services/freshrss.nix index bb749e6..bc0d591 100644 --- a/modules/nixos/web-services/freshrss.nix +++ b/modules/nixos/web-services/freshrss.nix @@ -51,7 +51,7 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.domain} = { - title = "FreshRSS"; + name = "FreshRSS"; icon = "sh:freshrss"; }; }; diff --git a/modules/nixos/web-services/gatus.nix b/modules/nixos/web-services/gatus.nix index c1e049e..2e8a486 100644 --- a/modules/nixos/web-services/gatus.nix +++ b/modules/nixos/web-services/gatus.nix @@ -212,7 +212,7 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.domain} = { - title = "Gatus"; + name = "Gatus"; icon = "sh:gatus"; }; }; diff --git a/modules/nixos/web-services/glance.nix b/modules/nixos/web-services/glance.nix index a14d1ea..42de319 100644 --- a/modules/nixos/web-services/glance.nix +++ b/modules/nixos/web-services/glance.nix @@ -6,24 +6,6 @@ }: let cfg = config.custom.web-services.glance; - - servicesWidgets = - allHosts - |> lib.attrValues - |> lib.map (host: { - hostName = host.config.networking.hostName; - services = host.config.custom.meta.services |> lib.attrValues; - }) - |> lib.filter ({ services, ... }: services != [ ]) - |> lib.map ( - { hostName, services }: - { - type = "monitor"; - cache = "1m"; - title = "Services - ${hostName}"; - sites = services; - } - ); in { options.custom.web-services.glance = { @@ -45,19 +27,38 @@ in server.port = cfg.port; pages = lib.singleton { - name = "Home"; - center-vertically = true; - hide-desktop-navigation = true; - + name = "Services"; columns = lib.singleton { size = "full"; widgets = - lib.singleton { - type = "search"; - search-engine = "google"; - autofocus = true; - } - ++ servicesWidgets; + allHosts + |> lib.attrValues + |> lib.map (host: { + hostName = host.config.networking.hostName; + services = host.config.custom.meta.services |> lib.attrValues; + }) + |> lib.filter ({ services, ... }: services != [ ]) + |> lib.map ( + { hostName, services }: + { + type = "monitor"; + cache = "1m"; + title = "Services - ${hostName}"; + sites = + services + |> lib.map ( + { + name, + url, + icon, + }: + { + title = name; + inherit url icon; + } + ); + } + ); }; }; }; @@ -67,7 +68,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "Glance"; + name = "Glance"; icon = "sh:glance"; }; }; diff --git a/modules/nixos/web-services/grafana.nix b/modules/nixos/web-services/grafana.nix index e3c3909..74399c8 100644 --- a/modules/nixos/web-services/grafana.nix +++ b/modules/nixos/web-services/grafana.nix @@ -89,7 +89,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "Grafana"; + name = "Grafana"; icon = "sh:grafana"; }; }; diff --git a/modules/nixos/web-services/it-tools.nix b/modules/nixos/web-services/it-tools.nix index 6ad12a2..857d59d 100644 --- a/modules/nixos/web-services/it-tools.nix +++ b/modules/nixos/web-services/it-tools.nix @@ -21,7 +21,7 @@ in services.caddy.virtualHosts.${cfg.domain}.files = "${pkgs.it-tools}/lib"; meta.services.${cfg.domain} = { - title = "IT-Tools"; + name = "IT-Tools"; icon = "sh:it-tools"; }; }; diff --git a/modules/nixos/web-services/karakeep.nix b/modules/nixos/web-services/karakeep.nix index a796faf..5bfa705 100644 --- a/modules/nixos/web-services/karakeep.nix +++ b/modules/nixos/web-services/karakeep.nix @@ -59,7 +59,7 @@ in ]; meta.services.${cfg.domain} = { - title = "Karakeep"; + name = "Karakeep"; icon = "sh:karakeep"; }; }; diff --git a/modules/nixos/web-services/networking-toolbox.nix b/modules/nixos/web-services/networking-toolbox.nix index fee4ba3..9015b29 100644 --- a/modules/nixos/web-services/networking-toolbox.nix +++ b/modules/nixos/web-services/networking-toolbox.nix @@ -26,7 +26,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "Networking Toolbox"; + name = "Networking Toolbox"; icon = "sh:networking-toolbox"; }; }; diff --git a/modules/nixos/web-services/ntfy.nix b/modules/nixos/web-services/ntfy.nix index 5067d4f..19d604e 100644 --- a/modules/nixos/web-services/ntfy.nix +++ b/modules/nixos/web-services/ntfy.nix @@ -30,7 +30,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "ntfy"; + name = "ntfy"; icon = "sh:ntfy"; }; }; diff --git a/modules/nixos/web-services/outline.nix b/modules/nixos/web-services/outline.nix index 767c0e5..4da49f9 100644 --- a/modules/nixos/web-services/outline.nix +++ b/modules/nixos/web-services/outline.nix @@ -87,7 +87,7 @@ in ]; meta.services.${cfg.domain} = { - title = "Outline"; + name = "Outline"; icon = "sh:outline"; }; }; diff --git a/modules/nixos/web-services/personal-blog.nix b/modules/nixos/web-services/personal-blog.nix index c89ca61..a07cd0c 100644 --- a/modules/nixos/web-services/personal-blog.nix +++ b/modules/nixos/web-services/personal-blog.nix @@ -31,8 +31,8 @@ in services.caddy.virtualHosts.${cfg.domain}.files = dataDir; meta.services.${cfg.domain} = { - title = "Blog"; - icon = "auto-invert sh:zola"; + name = "Blog"; + icon = "sh:zola"; }; }; }; diff --git a/modules/nixos/web-services/privatebin.nix b/modules/nixos/web-services/privatebin.nix index a708bb6..7e9fcf0 100644 --- a/modules/nixos/web-services/privatebin.nix +++ b/modules/nixos/web-services/privatebin.nix @@ -41,7 +41,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "PrivateBin"; + name = "PrivateBin"; icon = "sh:privatebin"; }; }; diff --git a/modules/nixos/web-services/radicale.nix b/modules/nixos/web-services/radicale.nix index ab87975..c2021aa 100644 --- a/modules/nixos/web-services/radicale.nix +++ b/modules/nixos/web-services/radicale.nix @@ -111,7 +111,7 @@ in persistence.directories = [ dataDir ]; meta.services.${cfg.domain} = { - title = "Radicale"; + name = "Radicale"; icon = "sh:radicale"; }; }; diff --git a/modules/nixos/web-services/screego.nix b/modules/nixos/web-services/screego.nix index 1f8d820..ffac102 100644 --- a/modules/nixos/web-services/screego.nix +++ b/modules/nixos/web-services/screego.nix @@ -30,7 +30,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "Screego"; + name = "Screego"; icon = "mdi:projector-screen-outline"; }; }; diff --git a/modules/nixos/web-services/stirling-pdf.nix b/modules/nixos/web-services/stirling-pdf.nix index 97382e4..3d5bf5f 100644 --- a/modules/nixos/web-services/stirling-pdf.nix +++ b/modules/nixos/web-services/stirling-pdf.nix @@ -44,7 +44,7 @@ in services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; meta.services.${cfg.domain} = { - title = "Stirling PDF"; + name = "Stirling PDF"; icon = "sh:stirling-pdf"; }; };