Self-hosted error tracking
Self-hosted error tracking.
Run the error tracker yourself and your stack traces never leave your servers. Your apps keep the Sentry SDKs; only the DSN changes.
OpenFault is in active development and not production ready. Updated November 9, 2026.
- Tools compared
- 5
- OpenFault license
- MIT
- Self-host price
- Free
- Containers
- 1
- iOS app
- Free
Best for teams that want one container, SQLite, no paid tier, and alerts on a free native iOS app.
01 · Why
Why teams self-host.
- Data
- Stack traces carry user IDs, URLs and request bodies. Self-hosted, they stay on your disk.
- Cost
- No per-event pricing. A noisy release costs you disk, not an invoice.
- Control
- You set retention, scrubbing, backups and who gets access.
- The catch
- You run it. Pick a tool small enough that running it is boring. What Sentry self-hosted needs →
- OpenFaultFits1 containerRust + SQLite
10 MB idle, 28 MB peak (measured)
- Sentry self-hostedNeeds 16 GBMany servicesPythonPostgresClickHouseKafkaRedis
16 GB RAM + 16 GB swap minimum
- GlitchTipFitsApp + PostgresApp · DjangoPostgres
256 MB minimum, 512 MB recommended
Log scale. Dashed line: 100 MB. Solid line: your server. Minimums from each project’s docs; OpenFault measured on Apple M5, macOS 27, 2026-11-06.
02 · How OpenFault does it
One container. One volume.
A Rust binary with SQLite inside. No Redis, Kafka, Postgres or ClickHouse. Free, MIT, no paid tier, built by Skcript.
- Ingest
- The Sentry envelope protocol, so the official SDKs post to it unchanged.
- Memory
- Peak 28 MB RSS during a 10k-event burst across 3 projects (3,000 accepted, 7,000 rate-limited; tests/load.rs) (Apple M5, macOS 27, 2026-11-06).
- Backups
- Everything lives in
/data. Copy the volume or back up daily to S3 or R2. - Agents
- MCP built in. Agents can triage; a person approves before they read stacks or start a fix.
- Who should pick another tool
- Teams that need tracing, replay or a production-ready release today. See all alternatives.
Compare
Side by side.
From each project’s own docs and pricing pages, checked 2026-11-09.
| OpenFault | Sentry self-hosted | GlitchTip | Bugsink | Telebugs | |
|---|---|---|---|---|---|
| License | MIT | FSL (converts to Apache 2.0 after 2 years) | MIT | PolyForm Shield 1.0.0 (source-available, not OSI-approved) | Proprietary |
| Self-host price | Free, MIT, no paid tier | Free | Free | Free | $299 first year, $99/yr renewal |
| Hosted plan | None | Developer free (1 user, 5k errors); Team $26/mo annual, $29 monthly | Free up to 1k events/mo; $15/mo small plan | Free 15K-event evaluation plan; paid from €16/mo (checked 2026-11-09) | Managed $99/mo after a 14-day trial (checked 2026-11-09) |
| Containers to run | 1 | — | App + Postgres | 1 | 1 |
| Database | SQLite | Postgres, ClickHouse, Kafka, Redis | Postgres | SQLite supported | SQLite |
| Minimum RAM | Peak 28 MB in a 10k-event burst (measured) | 16 GB + 16 GB swap | 256 MB minimum, 512 MB recommended | — | 1 GB |
| Runtime | Rust + SQLite | Python, Kafka, ClickHouse, Postgres, Redis | Python (Django) | Python | Ruby on Rails |
| Sentry SDK compatible | Yes | Yes | Yes | Yes | Yes |
| Source maps | Yes, via sentry-cli | Yes | Yes, via file upload | Yes, via sentry-cli | Yes |
| iOS crash symbolication | Yes, dSYM upload + Swift demangling | Yes | — | — | — |
| Live updates and TV mode | Yes, SSE | — | — | — | — |
| MCP server | Built in, approval-gated | Separate server | — | — | — |
| iOS app | Widgets, push, QR pairing (on the App Store) | — | — | — | — |
Verified 2026-11-09. A dash means we haven’t checked. Sources: Sentry self-hosted, Sentry pricing, GlitchTip, Bugsink, Telebugs.
FAQ
Questions.
What is self-hosted error tracking?
An error tracker you run on your own server. Your apps send crashes and exceptions to it instead of to a SaaS, so stack traces, user data and costs stay with you.
Why self-host error tracking?
Data stays on your infrastructure, there are no per-event bills, and you control retention. The trade-off is that you run and back up the server yourself.
What is the lightest self-hosted option?
Single-container tools with SQLite: OpenFault, Bugsink and Telebugs. OpenFault does not need Postgres, Redis or Kafka. Sentry self-hosted needs 16 GB of RAM plus 16 GB of swap.
Do I need error tracking for a small project, or are server logs enough?
Logs are enough until you stop reading them. A log holds what you chose to write down, and nobody is told when a line says something broke. An error tracker groups the same crash into one issue with its stack trace and alerts you when it happens, so you hear about it before a user emails you. OpenFault is free and MIT-licensed, runs as one container with SQLite, and keeps the Sentry SDKs you already use. The free native iOS app can push an alert with Resolve and Mute on the notification, once you opt in to push. It is in active development and not production ready yet, so run it next to your current setup first.
Is OpenFault production ready?
Not yet. OpenFault is in active development and not production ready. Run it next to your current error tracker before you switch that one off.
Get started
Try it next to what you run now.
One command, no config. Free, MIT, no paid tier. In active development, so run it alongside your current tool before you switch.
-
Start the container.
docker run -d -p 8080:8080 -v openfault:/data ghcr.io/openfault/openfault Open
http://localhost:8080. The setup wizard creates your admin account and first project.Put the project’s DSN in your Sentry SDK config. Read the install guide →