dotfiles/nixos/boxes/bolty/grafana.nix

56 lines
1.3 KiB
Nix

{ config, pkgs, inputs, lib, ... }:
let
fqdn = "bolty.raptor-carp.ts.net";
port = 30001;
path = "/data/grafana";
certPath = "${path}/cert.pem";
keyPath = "${path}/key.pem";
in {
networking.firewall.allowedTCPPorts = [ port ];
systemd.services.grafana-prep = {
script = ''
mkdir -p ${path}
cp -rv /var/lib/tailscale-certs/cert.pem ${certPath}
cp -rv /var/lib/tailscale-certs/key.pem ${keyPath}
chown -Rv grafana:grafana ${path}
'';
serviceConfig = {
Type = "oneshot";
ReloadPropagatedFrom = "tailscale-cert.service";
};
before = [ "grafana.service" ];
wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"network-online.target"
"tailscaled.service"
"tailscale-cert.service"
];
wants = [ "tailscale-cert.service" ];
};
systemd.services.grafana = {
after = [
"network.target"
"network-online.target"
"tailscaled.service"
"tailscale-cert.service"
"tailscale-auth.service"
];
};
services.grafana = {
enable = true;
dataDir = path;
settings.server = {
protocol = "https";
domain = fqdn;
http_port = port;
http_addr = fqdn;
cert_file = certPath;
cert_key = keyPath;
};
};
}