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