grafana setup

This commit is contained in:
soraefir
2026-06-06 21:31:33 +02:00
parent e24c9fd66a
commit 004de03308
2 changed files with 63 additions and 4 deletions

View File

@@ -3,6 +3,27 @@ let
serverCfg = config.syscfg.server;
version = "latest";
influxSource = pkgs.writers.writeYAML "influx.yaml" {
apiVersion = 1;
datasources = [
{
name = "InfluxDB 3 SQL";
type = "influxdb";
access = "proxy";
url = "http://influx-db";
jsonData = {
version = "SQL";
dbName = "telegraf";
httpMode = "POST";
};
secureJsonData = {
token = "\${INFLUXDB_TOKEN}";
};
isDefault = true;
editable = true;
}
];
};
in {
requires = {
@@ -41,7 +62,7 @@ in {
};
};
ui = builder.mkContainer {
ui = if(containerCfg.extra?explorer) then builder.mkContainer {
tmpfs = true;
authentik = true;
subdomain = containerCfg.subdomain;
@@ -59,6 +80,44 @@ in {
"${serverCfg.path.config}/influxdb/:/app-root/config:rw"
];
};
} else {
tmpfs = true;
authentik = true;
subdomain = containerCfg.subdomain;
image = "grafana/grafana:${version}";
port = 3000;
extraEnv = {
GF_DEFAULT_INSTANCE_NAME = serverCfg.domain;
GF_SECURITY_ADMIN_USER = "\${DEFAULT_ADMIN_USERNAME}";
GF_SECURITY_ADMIN_PASSWORD = "\${DEFAULT_ADMIN_PASSWORD}";
GF_SECURITY_ADMIN_EMAIL = "\${DEFAULT_ADMIN_EMAIL}";
GF_SECURITY_COOKIE_SECURE = "true";
GF_USERS_ALLOW_SIGN_UP = "false";
GF_USERS_AUTO_ASSIGN_ORG = "true";
GF_USERS_AUTO_ASSIGN_ORG_ROLE = "true";
GF_AUTH_PROXY_ENABLED = "true";
GF_AUTH_PROXY_HEADER_NAME = "X-authentik-username";
GF_AUTH_PROXY_HEADER_PROPERTY = "username";
GF_AUTH_PROXY_AUTO_SIGN_UP = "true";
GF_DATABASE_TYPE = "postgres";
GF_DATABASE_HOST = "${builder.host}";
GF_DATABASE_NAME = "influx_db";
GF_DATABASE_USER = "influx_user";
GF_ANALYTICS_REPORTING_ENABLED = "false";
GF_CHECK_FOR_UPDATED = "false";
GF_LIVE_HA_ENGINE = "redis";
GF_LIVE_HA_ENGINE_ADRESS = "${builder.host}:6379";
DEFAULT_INFLUX_SERVER = "http://${builder.host}:8181";
};
overrides = {
environmentFiles = [ config.sops.secrets."INFLUX".path config.sops.secrets."CUSTOM".path ] ;
volumes = [
"${serverCfg.path.data}/influxdb/ui:/var/lib/grafana:rw"
"${influxSource}:/etc/grafana/provisioning/datasources/influx.yaml:ro"
];
};
};
};