Databases 3 services 6 GiB RAM 60 GB disk

ClickHouse Cluster

3-node ClickHouse cluster - one shard, three replicas, embedded Keeper. Real replicated OLAP without ZooKeeper pods.

One-click deploy, from $49/mo on a Miget plan.

ClickHouse is the open-source column store that made sub-second analytics over billions of rows ordinary. This template runs a real replicated cluster - one shard, three replicas - with ClickHouse Keeper embedded in the server nodes, so there are no separate ZooKeeper or Keeper pods to deploy and feed.

Tables created ON CLUSTER main with the ReplicatedMergeTree engine replicate across all three nodes; any node can take writes and queries. Each node owns a 20 GB volume, and the whole cluster is internal-only - apps in the project connect to any node over HTTP (:8123) or the native protocol (:9000).

One required variable (CLICKHOUSE_PASSWORD) and you have the analytics backend that ClickHouse Cloud meters by the compute-hour - at a flat monthly price.

#what you get

  • One shard × three replicas with ReplicatedMergeTree - survive any single node loss
  • Embedded ClickHouse Keeper: no ZooKeeper, no extra pods
  • Cluster name main preconfigured for ON CLUSTER DDL
  • 20 GB per-node volumes; column compression stretches that a long way
  • HTTP (:8123) and native (:9000) interfaces on every node
  • Single required variable: CLICKHOUSE_PASSWORD

#topology

ServiceRolePublic
ch-1..3ClickHouse server + embedded Keeper (HTTP :8123, native :9000)no

#miget sizing

// this stack needs

6 GiB RAM · 60 GB disk · 3 services

2 GiB per node is a working floor for moderate analytics; ClickHouse respects container memory limits. Columnar compression typically fits hundreds of millions of rows in the 3×20 GB provisioned here.

Hobby - recommended fit

$49/mo

4 vCPU · 8 GiB · 160 GiB disk

Headroom for your own apps: 16 GiB at $97/mo

Professional - production

$169/mo

8 vCPU · 16 GiB · 100 GiB disk

Dedicated resources, production SLOs - plan details

One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.

#vs. the managed service

What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.

ServicePlanMonthlyWhat you get
ClickHouse Cluster on Miget 8 GiB plan$49this whole stack, flat - no usage meters, and room left for your own apps
ClickHouse CloudBasic~$67development-shaped: single replica active ~6h/day + 500 GB storage (worked example)
ClickHouse CloudScale~$499production: 2× 8 GiB replicas always-on + 1 TB storage (worked example)

#vs. other PaaS

Estimated monthly cost of running this exact stack (6 GiB RAM, 60 GB disk, 3 containers) elsewhere, from published June 2026 rates.

PlatformEst. monthlyNotes
Miget $49 flat compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan
Heroku ~$300 no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown
Render ~$90 per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service
DO App Platform ~$77 no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here)
Railway ~$69 usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top
Fly.io ~$44 cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra

Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.

#deploy it

On Miget

  1. Create a Compose Stack in app.miget.com pointing at the templates repository
  2. Set the stack path to clickhouse
  3. Set the required variable:
    • CLICKHOUSE_PASSWORD, password for the app user on all nodes
  4. Deploy. Miget layers compose.miget.yaml (RAM, privacy, volumes, managed services) automatically

Locally first?

Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:

git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/clickhouse
docker compose up -d

Same files, same behavior. The template README covers connection strings and scaling notes.

#faq

How does this compare to ClickHouse Cloud pricing?

ClickHouse Cloud bills compute per hour plus storage, which is excellent for spiky workloads but adds up for always-on ones. This cluster is a flat $49/month (8 GiB hobby plan) or $169/month Professional - predictable, with your data on your volumes.

Do I need ZooKeeper for ClickHouse replication?

No - coordination runs on ClickHouse Keeper, embedded inside the same three server nodes. You get replicated tables with zero extra processes to operate.

How do I create replicated tables?

Use CREATE TABLE ... ON CLUSTER main with ENGINE = ReplicatedMergeTree. The cluster macro config is baked in, so the standard '/clickhouse/tables/{shard}/{table}' path templates just work.

Can ClickHouse replace my Postgres for analytics?

For append-heavy, aggregate-style workloads (events, logs, metrics, funnels) - emphatically yes, often 100× faster. Keep transactional row-level workloads in Postgres; ClickHouse is an OLAP engine, not an OLTP database.

Ship ClickHouse Cluster today

One compose stack, 6 GiB of RAM, from $49/month flat, and it runs on your laptop with the same files.