NixOS/modules/servers/homepage.nix
2025-10-12 14:12:19 -06:00

36 lines
1.1 KiB
Nix

{
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;
};
};
}