{ config, containerCfg, pkgs, lib, builder, name, ... }: let serverCfg = config.syscfg.server; version = "latest"; in { sops = true; db = true; paths = [{ path = "${serverCfg.configPath}/influxdb/"; mode = "0700"; }{ path = "${serverCfg.dataPath}/influxdb/"; owner = "1500:1500"; mode = "0700"; }]; containers = { server = builder.mkContainer { subdomain = containerCfg.subdomain; image = "influxdata/influxdb3-ui:${version}"; port = 8888; secret = name; extraEnv = { SESSION_SECRET_KEY = "7b0024c13ae770000f797c201e2f210b9932a689c04d34de04379faa44e88e97"; DATABASE_URL = "/db/sqlite.db"; }; overrides = { cmd = [ "--mode=admin" ]; volumes = [ "${serverCfg.dataPath}/influxdb:/db:rw" "${serverCfg.configPath}/influxdb/:/app-root/config:ro" ]; }; }; }; setup = { trigger = "server"; script = pkgs.writeShellScript "setup" '' cat > ${serverCfg.configPath}/influxdb/config.json << 'EOF' { "DEFAULT_INFLUX_SERVER": "http://${builder.host}:8181", "DEFAULT_INFLUX_DATABASE": "main", "DEFAULT_API_TOKEN": "b27686e85a883437666f61586e084f7deb763958497739479ca48bc913ee90afd1a920332156133c89fb8674cb197ced17706074e6a42fc7ce6b2d54ac6119c9", "DEFAULT_SERVER_NAME": "${serverCfg.domain}" } EOF ''; }; }