diff --git a/hosts/router/services.nix b/hosts/router/services.nix index 034ec07..b7ac6a5 100644 --- a/hosts/router/services.nix +++ b/hosts/router/services.nix @@ -4,6 +4,135 @@ let domain = vars.domain; in { + # Glance dashboard + services.glance.enable = true; + services.glance.settings.pages = [ + { + name = "Home"; + # hideDesktopNavigation = true; # Uncomment if needed + columns = [ + { + size = "small"; + widgets = [ + { + type = "calendar"; + firstDayOfWeek = "monday"; + } + { + type = "rss"; + limit = 10; + collapseAfter = 3; + cache = "12h"; + feeds = [ + { url = "https://rtk0c.pages.dev/index.xml"; } + { url = "https://www.yegor256.com/rss.xml"; } + { url = "https://selfh.st/rss/"; title = "selfh.st"; } + { url = "https://ciechanow.ski/atom.xml"; } + { url = "https://www.joshwcomeau.com/rss.xml"; title = "Josh Comeau"; } + { url = "https://samwho.dev/rss.xml"; } + { url = "https://ishadeed.com/feed.xml"; title = "Ahmad Shadeed"; } + ]; + } + { + type = "twitch-channels"; + channels = [ + "theprimeagen" + "j_blow" + "piratesoftware" + "cohhcarnage" + "christitustech" + "EJ_SA" + ]; + } + ]; + } + { + size = "full"; + widgets = [ + { + type = "group"; + widgets = [ + { type = "hacker-news"; } + { type = "lobsters"; } + ]; + } + { + type = "videos"; + channels = [ + "UCXuqSBlHAE6Xw-yeJA0Tunw" # Linus Tech Tips + "UCR-DXc1voovS8nhAvccRZhg" # Jeff Geerling + "UCsBjURrPoezykLs9EqgamOA" # Fireship + "UCBJycsmduvYEL83R_U4JriQ" # Marques Brownlee + "UCHnyfMqiRRG1u-2MsSQLbXA" # Veritasium + ]; + } + { + type = "group"; + widgets = [ + { + type = "reddit"; + subreddit = "technology"; + showThumbnails = true; + } + { + type = "reddit"; + subreddit = "selfhosted"; + showThumbnails = true; + } + ]; + } + ]; + } + { + size = "small"; + widgets = [ + { + type = "weather"; + location = "San Jose, California, United States"; + units = "metric"; + hourFormat = "12h"; + # hideLocation = true; # Uncomment if needed + } + { + type = "server-stats"; + servers = [ + { type = "local"; name = "Router"; } + ]; + } + { + type = "dns-stats"; + service = "adguard"; + url = "http://localhost:${toString config.services.adguardhome.port}"; + username = "admin"; + password = "admin"; + } + { + type = "markets"; + markets = [ + { symbol = "SPY"; name = "S&P 500"; } + { symbol = "BTC-USD"; name = "Bitcoin"; } + { symbol = "NVDA"; name = "NVIDIA"; } + { symbol = "AAPL"; name = "Apple"; } + { symbol = "MSFT"; name = "Microsoft"; } + ]; + } + { + type = "releases"; + cache = "1d"; + # token = "..."; # Uncomment and set if needed + repositories = [ + "glanceapp/glance" + "go-gitea/gitea" + "immich-app/immich" + "syncthing/syncthing" + ]; + } + ]; + } + ]; + } + ]; + # vnStat for tracking network interface stats services.vnstat.enable = true; @@ -61,6 +190,9 @@ in dns cloudflare {env.CF_API_KEY} resolvers 1.1.1.1 } + handle /* { + reverse_proxy localhost:${toString config.services.glance.settings.server.port} + } @grafana path /grafana /grafana/* handle @grafana { reverse_proxy localhost:${toString config.services.grafana.settings.server.http_port}