{ config, pkgs, lib, ... }: let tailscaleMagicDNS = "neon-dory.ts.net"; defaultNodePort = toString config.services.prometheus.exporters.node.port; in { age.secrets = { tailscale-authKey.file = ../../secrets/tailscale-authKey.age; grafana-admin-pwd = { file = ../../secrets/grafana-admin-pwd.age; owner = "grafana"; }; }; my = { utils = { commons.enable = true; lxc-standard.enable = true; }; services.media-mgr = { exportMetrics.enable = true; }; monitoring = { grafana = { enable = true; adminPasswordFile = config.age.secrets.grafana-admin-pwd.path; }; prometheus.enable = true; loki.enable = true; }; networking = { tailscale = { enable = true; magicDNSDomain = tailscaleMagicDNS; authKeyFile = config.age.secrets.tailscale-authKey.path; }; }; virtualisation = { proxmox.enable = true; }; }; # Extra packages environment.systemPackages = with pkgs; [ ]; services = { prometheus.scrapeConfigs = [ { job_name = "host-metrics"; static_configs = [ { targets = [ "metrics.internal:${defaultNodePort}" "caddy.internal:${defaultNodePort}" "arr.internal:${defaultNodePort}" "nextcloud.internal:${defaultNodePort}" "vaultwarden.internal:${defaultNodePort}" "plex.internal:${defaultNodePort}" "portainer.internal:${defaultNodePort}" ]; } ]; } ]; }; system.stateVersion = "24.05"; }