Observability on $5 self-host stack
5 open-source picks · replaces 5 SaaS · self-host on your own VPS
Persona. Solo or small-team operator who wants uptime checks + dashboards + analytics + status page + paging — and refuses to budget Datadog money for it.
Run this stack
Two files, one command. Pinned image tags, named volumes, env vars in
.env.example. Read the compose comments to see which picks
are inlined vs which have heavier official composes linked.
curl -O https://code-rho-dun.vercel.app/stack/observability-on-five-bucks/compose.yml
curl -O https://code-rho-dun.vercel.app/stack/observability-on-five-bucks/.env.example && mv .env.example .env
docker compose up -d
Raw files:
compose.yml
·
.env.example
Why these together
The premise: get usable monitoring + analytics + paging without paying Datadog. Uptime Kuma is the cheapest credible uptime checker (one container, $0 marginal cost when colocated with anything else); Grafana is the dashboard layer that reads from any timeseries store you bring (Prometheus on the same box is the typical pairing); Plausible is the lightweight web-analytics piece, separate from product/error data so the cookie-free promise to users stays clean; Cachet is the public status page that Uptime Kuma pings; Keep is the on-call rotation that closes the loop when something flips red. The compose.yml on this page ships Uptime Kuma + Grafana — the two cheapest pieces that fit cleanly inside $10/mo. Plausible (postgres + clickhouse), Cachet (MySQL), and Keep (multi-container) all need heavier installs and have their own composes linked from inside the file. Honest cost: Uptime Kuma alone fits in $5. Adding Grafana + Plausible + Keep typically pushes you to $15-20 — still ~10× cheaper than Datadog at any non-trivial scale.
The 5 picks
| Pick | Replaces | Cost / setup | Health |
|---|---|---|---|
| louislam/uptime-kuma · MIT | UptimeRobot External uptime / availability monitoring | $3/mo+ easy · 5min docker run | alive |
| grafana/grafana · AGPL-3.0 | Datadog Observability (metrics + logs + traces + APM) | $20/mo+ hard · 1-2h to wire up the LGTM stack via docker-compose; multi-day to do it production-grade | alive |
| plausible/analytics · AGPL-3.0 | Google Analytics Web analytics | $5/mo+ easy · 10min docker-compose | alive |
| cachethq/cachet · MIT | Statuspage (Atlassian) Public status page / incident communication | $5/mo+ moderate · 20min docker-compose (PHP/Laravel + Postgres or MySQL) | alive |
| keephq/keep · MIT | PagerDuty On-call rotation / incident response / paging | $10/mo+ moderate · 30min docker-compose (keep-frontend + keep-backend + websocket-server; SQLite default, swap to Postgres via `DATABASE_CONNECTION_STRING`) | alive |
Other stacks
- Indie Hacker self-host stack · 5 picks
- Remote team self-host stack · 5 picks
- Customer support team self-host stack · 4 picks
- Dev platform self-host stack · 5 picks
- Marketing team self-host stack · 5 picks
- Product team self-host stack · 5 picks
- AI builder self-host stack · 4 picks
- Privacy-first self-host stack · 5 picks