{ config, lib, pkgs, ... }: { services.glance = { enable = true; settings.server.port = 80; settings.server.host = "0.0.0.0"; openFirewall = true; settings = { pages = [ { name = "Home"; hide-desktop-navigation = true; columns = [ { size = "full"; widgets = [ { type = "group"; widgets = [ { type = "clock"; hour-format = "24h"; timezones = [ { timezone = "Australia/Sydney"; label = "Sydney"; } { timezone = "Europe/London"; label = "London"; } { timezone = "Europe/Moscow"; label = "Moscow"; } ]; } { type = "weather"; location = "Sydney, Australia"; units = "metric"; # alternatively "imperial" hour-format = "12h"; # alternatively "24h" } { type = "calendar"; first-day-of-week = "monday"; } ]; } { type = "bookmarks"; groups = [ { title = "Media"; color = "10 70 50"; links = [ { title = "Jellyfin"; url = "http://${config.networking.hostName}:8096"; } { title = "Jellyseer"; url = "http://${config.networking.hostName}:5055"; } { title = "Radarr"; url = "http://${config.networking.hostName}:7878"; } { title = "Sonarr"; url = "http://${config.networking.hostName}:8989"; } { title = "Lidarr"; url = "http://${config.networking.hostName}:8686"; } { title = "Prowlarr"; url = "http://${config.networking.hostName}:9696"; } { title = "Bazarr"; url = "http://${config.networking.hostName}:6767"; } { title = "Deluge"; url = "http://${config.networking.hostName}:8112"; } ]; } { title = "Sync"; color = "120 73 75"; links = [ { title = "Miniflux"; url = "http://${config.networking.hostName}:8021"; } ]; } ]; } ]; } ]; } ]; }; }; # allow services to bind to port 80 boot.kernel.sysctl."net.ipv4.ip_unprivileged_port_start" = 0; }