Compare commits

..

No commits in common. "49a5a687886a75a56411daef13aa6deb4b4d7c6a" and "f38cb764e0cf851f551a8a563ecdc022f1abd465" have entirely different histories.

23 changed files with 55 additions and 54 deletions

View file

@ -6,7 +6,7 @@
{ name, ... }: { name, ... }:
{ {
options = { options = {
title = lib.mkOption { name = lib.mkOption {
type = lib.types.nonEmptyStr; type = lib.types.nonEmptyStr;
default = name; default = name;
}; };

View file

@ -102,7 +102,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Alertmanager"; name = "Alertmanager";
icon = "sh:prometheus"; icon = "sh:prometheus";
}; };
}; };

View file

@ -132,8 +132,8 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = lib.mkIf (cfg.domain != null) cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = lib.mkIf (cfg.domain != null) cfg.port;
meta.services.${cfg.domain} = lib.mkIf (cfg.domain != null) { meta.services.${cfg.domain} = lib.mkIf (cfg.domain != null) {
title = "Alloy"; name = "Alloy";
icon = "sh:grafana-alloy"; icon = "sh:alloy";
}; };
}; };
}; };

View file

@ -127,7 +127,7 @@ in
persistence.directories = [ "/var/lib/${config.services.prometheus.stateDir}" ]; persistence.directories = [ "/var/lib/${config.services.prometheus.stateDir}" ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Prometheus"; name = "Prometheus";
icon = "sh:prometheus"; icon = "sh:prometheus";
}; };
}; };

View file

@ -172,7 +172,7 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.gui.domain} = lib.mkIf (cfg.gui.domain != null) { meta.services.${cfg.gui.domain} = lib.mkIf (cfg.gui.domain != null) {
title = "Syncthing"; name = "Syncthing";
icon = "sh:syncthing"; icon = "sh:syncthing";
}; };
}; };

View file

@ -54,7 +54,7 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Actual Budget"; name = "Actual Budget";
icon = "sh:actual-budget"; icon = "sh:actual-budget";
}; };
}; };

View file

@ -49,7 +49,7 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Atuin"; name = "Atuin";
icon = "sh:atuin"; icon = "sh:atuin";
}; };
}; };

View file

@ -50,8 +50,8 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "File Browser"; name = "File Browser";
icon = "sh:filebrowser"; icon = "sh:file-browser";
}; };
}; };
}; };

View file

@ -85,7 +85,7 @@ in
persistence.directories = [ config.services.forgejo.stateDir ]; persistence.directories = [ config.services.forgejo.stateDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Forgejo"; name = "Forgejo";
icon = "sh:forgejo"; icon = "sh:forgejo";
}; };
}; };

View file

@ -51,7 +51,7 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "FreshRSS"; name = "FreshRSS";
icon = "sh:freshrss"; icon = "sh:freshrss";
}; };
}; };

View file

@ -212,7 +212,7 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Gatus"; name = "Gatus";
icon = "sh:gatus"; icon = "sh:gatus";
}; };
}; };

View file

@ -6,24 +6,6 @@
}: }:
let let
cfg = config.custom.web-services.glance; 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 in
{ {
options.custom.web-services.glance = { options.custom.web-services.glance = {
@ -45,19 +27,38 @@ in
server.port = cfg.port; server.port = cfg.port;
pages = lib.singleton { pages = lib.singleton {
name = "Home"; name = "Services";
center-vertically = true;
hide-desktop-navigation = true;
columns = lib.singleton { columns = lib.singleton {
size = "full"; size = "full";
widgets = widgets =
lib.singleton { allHosts
type = "search"; |> lib.attrValues
search-engine = "google"; |> lib.map (host: {
autofocus = true; 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;
} }
++ servicesWidgets; );
}
);
}; };
}; };
}; };
@ -67,7 +68,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Glance"; name = "Glance";
icon = "sh:glance"; icon = "sh:glance";
}; };
}; };

View file

@ -89,7 +89,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Grafana"; name = "Grafana";
icon = "sh:grafana"; icon = "sh:grafana";
}; };
}; };

View file

@ -21,7 +21,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.files = "${pkgs.it-tools}/lib"; services.caddy.virtualHosts.${cfg.domain}.files = "${pkgs.it-tools}/lib";
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "IT-Tools"; name = "IT-Tools";
icon = "sh:it-tools"; icon = "sh:it-tools";
}; };
}; };

View file

@ -59,7 +59,7 @@ in
]; ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Karakeep"; name = "Karakeep";
icon = "sh:karakeep"; icon = "sh:karakeep";
}; };
}; };

View file

@ -26,7 +26,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Networking Toolbox"; name = "Networking Toolbox";
icon = "sh:networking-toolbox"; icon = "sh:networking-toolbox";
}; };
}; };

View file

@ -30,7 +30,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "ntfy"; name = "ntfy";
icon = "sh:ntfy"; icon = "sh:ntfy";
}; };
}; };

View file

@ -87,7 +87,7 @@ in
]; ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Outline"; name = "Outline";
icon = "sh:outline"; icon = "sh:outline";
}; };
}; };

View file

@ -31,8 +31,8 @@ in
services.caddy.virtualHosts.${cfg.domain}.files = dataDir; services.caddy.virtualHosts.${cfg.domain}.files = dataDir;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Blog"; name = "Blog";
icon = "auto-invert sh:zola"; icon = "sh:zola";
}; };
}; };
}; };

View file

@ -41,7 +41,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "PrivateBin"; name = "PrivateBin";
icon = "sh:privatebin"; icon = "sh:privatebin";
}; };
}; };

View file

@ -111,7 +111,7 @@ in
persistence.directories = [ dataDir ]; persistence.directories = [ dataDir ];
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Radicale"; name = "Radicale";
icon = "sh:radicale"; icon = "sh:radicale";
}; };
}; };

View file

@ -30,7 +30,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Screego"; name = "Screego";
icon = "mdi:projector-screen-outline"; icon = "mdi:projector-screen-outline";
}; };
}; };

View file

@ -44,7 +44,7 @@ in
services.caddy.virtualHosts.${cfg.domain}.port = cfg.port; services.caddy.virtualHosts.${cfg.domain}.port = cfg.port;
meta.services.${cfg.domain} = { meta.services.${cfg.domain} = {
title = "Stirling PDF"; name = "Stirling PDF";
icon = "sh:stirling-pdf"; icon = "sh:stirling-pdf";
}; };
}; };