{ config, ... }: let secret = name: config.age.secrets."influxdb2-${name}".path; token = user: secret "${user}_token_file"; host = "influx.dgnum.eu"; port = 8086; in { services.influxdb2 = { enable = true; provision = { enable = true; organizations = { dgnum = { description = "DGNum org"; buckets.telegraf.description = "Telegraf bucket"; auths = { telegraf = { writeBuckets = [ "telegraf" ]; tokenFile = token "telegraf"; }; grafana = { readPermissions = [ "buckets" ]; tokenFile = token "grafana"; }; }; }; }; initialSetup = { tokenFile = token "initial"; passwordFile = secret "initial_password_file"; organization = "main"; bucket = "main"; }; }; }; dgn-web.simpleProxies.influxdb = { inherit host port; }; age-secrets.autoMatch = [ "influxdb2" ]; }