{ config, self, lib, pkgs, inputs, ... }: with lib; { networking = { hostName = mkDefault "overwatch"; useDHCP = false; }; imports = [ self.nixosModules.malobeo.metrics ../modules/malobeo_user.nix ../modules/sshd.nix ]; networking.firewall.allowedTCPPorts = [ 80 3100 ]; malobeo.metrics = { enable = true; enablePromtail = true; logNginx = false; lokiHost = "10.0.0.14"; }; services.grafana = { enable = true; settings.server = { domain = "grafana.malobeo.org"; http_port = 2342; http_addr = "127.0.0.1"; }; provision.datasources.settings = { apiVersion = 1; datasources = [ { name = "loki"; type = "loki"; access = "proxy"; uid = "eeakiack8nqwwc"; url = "http://localhost:3100"; editable = false; } { name = "prometheus"; type = "prometheus"; access = "proxy"; uid = "feakib1gq7ugwc"; url = "http://localhost:9001"; editable = false; } ]; }; provision.dashboards.settings = { apiVersion = 1; providers = [{ name = "default"; options.path = ./dashboards; }]; }; }; services.nginx = { enable = true; virtualHosts.${config.services.grafana.domain} = { locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.grafana.port}"; proxyWebsockets = true; extraConfig = '' proxy_set_header Host $host; ''; }; }; }; services.prometheus = { enable = true; port = 9001; scrapeConfigs = [ { job_name = "overwatch"; static_configs = [{ targets = [ "127.0.0.1:9002" ]; }]; } { job_name = "durruti"; static_configs = [{ targets = [ "10.0.0.5:9002" ]; }]; } { job_name = "infradocs"; static_configs = [{ targets = [ "10.0.0.11:9002" ]; }]; } { job_name = "nextcloud"; static_configs = [{ targets = [ "10.0.0.13:9002" ]; }]; } { job_name = "fanny"; static_configs = [{ targets = [ "10.0.0.1:9002" ]; }]; } # add vpn - check how to reach it first. most probably 10.100.0.1 ]; }; services.loki = { enable = true; configFile = ./loki.yaml; }; users.users.promtail.extraGroups = [ "nginx" "systemd-journal" ]; system.stateVersion = "22.11"; # Did you read the comment? }