{ config, ... }: let cfg = config.services.homepage-dashboard; domain = "odin.t5.st"; in { services.homepage-dashboard = { enable = true; allowedHosts = "${domain}"; bookmarks = [ { Developer = [ { Github = [ { abbr = "GH"; href = "https://github.com/"; } ]; } ]; } { Entertainment = [ { YouTube = [ { abbr = "YT"; href = "https://youtube.com/"; } ]; } ]; } ]; services = [ { "Apps" = [ { "AdGuard Home" = { href = "https://adguard.odin.t5.st/"; description = "Network-wide ads & trackers blocking DNS server"; }; } { "Immich Photos" = { href = "https://photos.t5.st/"; description = "High performance self-hosted photo and video management solution."; }; } ]; } ]; widgets = [ ]; settings = { title = "Odin (/ˈoʊdɪn/; from Old Norse: Óðinn)"; description = "A widely revered god in Norse mythology and Germanic paganism. Most surviving information on Odin comes from Norse mythology, but he figures prominently in the recorded history of Northern Europe."; background = "https://images.unsplash.com/photo-1604223190546-a43e4c7f29d7?q=80&w=2669&auto=format&fit=crop&ixlib=rb-4.1.0"; cardBlur = "sm"; theme = "dark"; color = "stone"; }; }; services.caddy.virtualHosts.homepage = { hostName = "{$DOMAIN}"; extraConfig = '' encode gzip zstd reverse_proxy 127.0.0.1:${toString cfg.listenPort} ''; }; }