job "clickhouse" { datacenters = ["alo"] meta { uuid = uuidv4() } group "db" { # Run on primary storage node (zippy) for local disk performance # TODO: move to fractal once it's converted to NixOS (spinning disks OK for time-series data) constraint { attribute = "${meta.storage_role}" value = "primary" } network { port "clickhouse" { static = 8123 } } task "clickhouse" { driver = "docker" config { image = "clickhouse/clickhouse-server:25.9" volumes = [ "/data/services/clickhouse:/var/lib/clickhouse", "local/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro", "local/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro", ] ports = [ "clickhouse" ] } env { # TODO: this is insecure, see "Managing default user" at https://hub.docker.com/r/clickhouse/clickhouse-server/ CLICKHOUSE_SKIP_USER_SETUP = 1 } service { name = "clickhouse" port = "clickhouse" } template { data = < warning true 0.0.0.0 EOH destination = "local/clickhouse-config.xml" } template { data = < 0 0 EOH destination = "local/clickhouse-user-config.xml" } resources { memory = 1000 } } } }