{ config, lib, pkgs, inputs, ... }: with lib; { networking = { hostName = mkDefault "overwatch"; useDHCP = false; }; imports = [ ../modules/malobeo_user.nix ../modules/sshd.nix ]; networking.firewall.allowedTCPPorts = [ 80 9080 9001 3100 ]; services.grafana = { enable = true; domain = "grafana.malobeo.org"; port = 2342; addr = "127.0.0.1"; }; 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; exporters = { node = { enable = true; enabledCollectors = [ "systemd" "processes" ]; port = 9002; }; }; scrapeConfigs = [ { job_name = "overwatch"; static_configs = [{ targets = [ "127.0.0.1:9002" ]; }]; } { job_name = "infradocs"; static_configs = [{ targets = [ "10.0.0.11:9002" ]; }]; } ]; }; services.loki = { enable = true; configFile = ./loki.yaml; }; services.promtail = { enable = true; configFile = import ../modules/malobeo/promtail_config.nix { lokiAddress = "10.0.0.13"; logNginx = false; config = config; pkgs = pkgs; }; }; users.users.promtail.extraGroups = [ "nginx" "systemd-journal" ]; system.stateVersion = "22.11"; # Did you read the comment? }