{ lib, config, inputs, ... }: let cfg = config.my.servers.homepage; in { options.my.servers.homepage = inputs.self.lib.mkServerOptions "homepage" "home" 8082 lib; config = lib.mkIf config.my.secureHost { sops.secrets = lib.mkIf cfg.enable { homepage.sopsFile = ../../secrets/homepage.yaml; "private-ca/pem" = { sopsFile = ../../secrets/certs.yaml; owner = "nginx"; group = "nginx"; }; }; my.servers.homepage.certPath = config.sops.secrets."private-ca/pem".path; services.homepage-dashboard = lib.mkIf cfg.enable { inherit (cfg) enable; listenPort = cfg.port; environmentFile = config.sops.secrets.homepage.path; settings = { providers.openweathermap = "{{HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY}}"; layout = import ./homepage/layout.nix; }; widgets = import ./homepage/widgets.nix; services = import ./homepage/services.nix { inherit lib config; }; bookmarks = inputs.self.lib.autoImport ./homepage/bookmarks (_: true) |> map import; }; }; }