{ config, host, username, pkgs, ... }: let baseRepo = "ssh://liv@dandelion:9123/spinners/rootvol/backups/${host}"; in { services = { grafana = { enable = true; settings.server = { domain = "monitoring.liv.town"; http_addr = "127.0.0.1"; http_port = 2342; }; }; nginx.virtualHosts.${config.services.grafana.settings.server.domain} = { forceSSL = true; sslCertificate = "/var/lib/acme/liv.town/cert.pem"; sslCertificateKey = "/var/lib/acme/liv.town/key.pem"; locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.grafana.settings.server.http_port}"; proxyWebsockets = true; }; }; # borgbackup.jobs."violet-grafana" = { # paths = [ "/var/lib/grafana" ]; # repo = "${baseRepo}/var-grafana"; # encryption.mode = "none"; # compression = "auto,zstd"; # startAt = "daily"; # preHook = '' # systemctl stop grafana # ''; # postHook = '' # systemctl start grafana # if [ $exitStatus -eq 2 ]; then # ${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${host} "borgbackup: ${host} backup (grafana) failed with errors" # else # ${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${host} "borgbackup: ${host} backup (grafana) completed succesfully with exit status $exitStatus" # fi # ''; # user = "root"; # extraCreateArgs = [ # "--stats" # ]; # environment = { # BORG_RSH = "ssh -p 9123 -i /home/${username}/.ssh/id_ed25519"; # }; # }; }; }