diff --git a/modules/apps/homepage/default.nix b/modules/apps/homepage/default.nix new file mode 100644 index 0000000..3e60130 --- /dev/null +++ b/modules/apps/homepage/default.nix @@ -0,0 +1,59 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.homelab.apps.homepage-dashboard; + + networkName = "homepage"; +in { + options.homelab.apps.homepage-dashboard = { + enable = lib.mkEnableOption "homepage"; + port = lib.mkOption { + type = lib.types.int; + default = 8082; + description = "Homepage port"; + }; + }; + + config = let + inherit (config.homelab.apps.homepage-dashboard) port; + in lib.mkIf cfg.enable { + services.homepage-dashboard = { + enable = true; + package = pkgs.homepage-dashboard; + + listenPort = port; + + bookmarks = [ + { Office = [ + { "Zoho Mail" = [ + { href = "https://mail.zoho.eu"; + icon = "zohomail"; + } + ];} + ];} + { Network = [ + { Cloudflare = [ + { href = "https://dash.cloudflare.com"; + icon = "cloudflare"; + } + ];} + { TransIP = [ + { href = "https://www.transip.eu/cp/"; + icon = "https://www.transip.eu/cache-60c9b25f/img/transip-new/favicons/favicon.png"; + } + ];} + { "Telenet Modem" = [ + { href = "https://www2.telenet.be/residential/nl/mijn-telenet/je-thuisnetwerk#/mainnavitem=hgw/mainnavitemid=item-1/subnavitem=modem_general"; + icon = "https://static.telenet.be/assets/favicon/favicon.ico"; + } + ];} + { Pulsetic = [ + { href = "https://status.depeuter.dev"; + icon = "https://pulsetic.com/favicon-196x196.png"; + } + ];} + ];} + ]; + }; + }; +}