GlitchTip
Sentry-API-compatible error tracking at a fraction of self-hosted Sentry’s footprint - managed Postgres + Valkey, one secret.
One-click deploy, from $25/mo on a Miget plan.
Self-hosted Sentry is famously a 20+ container leviathan (Kafka, ClickHouse, Zookeeper, an army of consumers). GlitchTip implements the Sentry API - your existing Sentry SDKs just point at a new DSN - in four lean services: web, a Celery worker, Postgres, and a Redis-compatible cache. Same SDKs, same DSN flow, a tenth of the iron.
On Miget, db and queue become managed Postgres and Valkey with connection env auto-wired onto all GlitchTip services. SECRET_KEY is the only required variable. Error events, performance traces, and uptime checks land in a UI that any Sentry user will navigate without a manual.
The economics are stark: error tracking SaaS meters by event volume, and one bad deploy can blow a month’s quota in an hour. Self-hosted GlitchTip ingests whatever your stack can hold - a noisy week costs disk space, not an invoice.
Upstream project: GlitchTip
#what you get
- Sentry SDK compatible - point any Sentry client at the GlitchTip DSN
- Error tracking, performance monitoring, and uptime checks
- Email + webhook alerting (Slack, Discord, …)
- Managed Postgres + Valkey auto-provisioned and auto-wired
- Unlimited events - your quota is your disk
- One required variable: SECRET_KEY
#topology
| Service | Role | Public |
|---|---|---|
| web | UI + API + event ingestion (:5000) | yes |
| worker | Celery worker + beat | no |
| migrate | idempotent Django migrations, then idles | no |
| db / queue | Postgres / Valkey - managed services on Miget | no |
#miget sizing
// this stack needs
3.8 GiB RAM · 5 GB disk · 5 services
Sized for steady ingestion: 1 GiB each for web and worker. High-volume bursts queue in Valkey and drain through the worker - scale the worker first if backlogs grow.
Hobby - recommended fit
$25/mo
2 vCPU · 4 GiB · 80 GiB disk
Headroom for your own apps: 8 GiB at $49/mo
Professional - production
$43/mo
2 vCPU · 4 GiB · 25 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.
| Service | Plan | Monthly | What you get |
|---|---|---|---|
| GlitchTip on Miget ★ | 4 GiB plan | $25 | this whole stack, flat - no usage meters, and room left for your own apps |
| Sentry | Team | ~$26 | 50k errors/mo included, pay-as-you-go overage beyond quota |
Same SDKs on both sides - the variable is whether a noisy deploy is a disk-space event or a billing event.
#vs. other PaaS
Estimated monthly cost of running this exact stack (3.8 GiB RAM, 5 GB disk, 5 containers) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $25 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$188 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$50 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$48 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$38 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$23 | 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
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
glitchtip -
Set the required variables:
SECRET_KEY, Django secret (openssl rand -hex 32)GLITCHTIP_DOMAIN, set to the web app’s https domain after first deploy
- 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/glitchtip
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
Do my existing Sentry SDKs work with GlitchTip?
Yes - GlitchTip implements the Sentry ingestion API. Swap the DSN in sentry-sdk / @sentry/node / sentry-ruby etc. and events flow. No code changes beyond the DSN.
GlitchTip vs self-hosted Sentry - why not real Sentry?
Modern self-hosted Sentry needs Kafka, ClickHouse, Redis, Postgres, and dozens of containers - roughly an order of magnitude more RAM than GlitchTip’s four services. If you need Sentry’s deep tracing products, pay for sentry.io; if you need solid error tracking with the same SDKs, GlitchTip is the rational self-host.
What does GlitchTip cost to run vs Sentry SaaS?
Sentry’s Team plan is ~$26/month for 50k errors, with overage pricing past quota. GlitchTip here runs $25/month flat (4 GiB hobby plan) with no event metering - a single noisy deploy stops being a billing event.
What is the migrate service doing in the stack?
It runs Django migrations idempotently on every deploy and then idles. Compose platforms have no one-shot job primitive, so a tiny always-there service is the portable way to keep the schema current.
Ship GlitchTip today
One compose stack, 3.8 GiB of RAM, from $25/month flat, and it runs on your laptop with the same files.