X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fmonitoring%2Fstatus.nix;h=420124bf2880542979927b26562d4f8592ccb4d0;hb=bd0cb07b13aecd16a0782492655843a1b699611d;hp=2860e966989de9794b8e514f7e71ab62e98435b7;hpb=981fa80354fd6f00f49446777c38f77bd8a65f65;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/monitoring/status.nix b/modules/private/monitoring/status.nix index 2860e96..420124b 100644 --- a/modules/private/monitoring/status.nix +++ b/modules/private/monitoring/status.nix @@ -12,29 +12,54 @@ }; }; config = lib.mkIf config.myServices.status.enable { - secrets.keys = [ - { - dest = "naemon-status/environment"; - user = "naemon"; - group = "naemon"; - permission = "0400"; - text = '' - TOKENS=${builtins.concatStringsSep " " config.myEnv.monitoring.nrdp_tokens} - ''; - } - ]; + secrets.keys."naemon-status/environment" = { + user = "naemon"; + group = "naemon"; + permissions = "0400"; + text = '' + TOKENS=${builtins.concatStringsSep " " config.myEnv.monitoring.nrdp_tokens} + ''; + }; services.nginx = { enable = true; recommendedOptimisation = true; recommendedGzipSettings = true; recommendedProxySettings = true; + upstreams."netdata".servers = { "127.0.0.1:19999" = {}; }; + upstreams."netdata".extraConfig = '' + keepalive 64; + ''; virtualHosts."status.immae.eu" = { + acmeRoot = config.myServices.certificates.webroot; useACMEHost = name; forceSSL = true; locations."/".proxyPass = "http://unix:/run/naemon-status/socket.sock:/"; + + locations."= /netdata".return = "301 /netdata/"; + locations."~ /netdata/(?.*)".extraConfig = '' + proxy_redirect off; + proxy_set_header Host $host; + + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_http_version 1.1; + proxy_pass_request_headers on; + proxy_set_header Connection "keep-alive"; + proxy_store off; + proxy_pass http://netdata/$ndpath$is_args$args; + + gzip on; + gzip_proxied any; + gzip_types *; + ''; }; }; - security.acme2.certs."${name}".extraDomains."status.immae.eu" = null; + security.acme.certs."${name}" = { + extraDomains."status.immae.eu" = null; + user = config.services.nginx.user; + group = config.services.nginx.group; + }; myServices.certificates.enable = true; networking.firewall.allowedTCPPorts = [ 80 443 ];