56 lines
1.4 KiB
Nix
56 lines
1.4 KiB
Nix
{ 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";
|
|
};
|
|
extraOptions = [
|
|
"--tmpfs=/tmp:rw,noexec,nosuid,size=512m"
|
|
];
|
|
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
|
|
'';
|
|
};
|
|
|
|
} |