Epure
Compare

Lightweight self-hosted error tracking: five options compared

Self-hosted Sentry, GlitchTip, Bugsink, Telebugs and Epure, side by side: services, database, each project's own RAM figure, licence, upgrades, Sentry SDK support and agent access.

An open maintenance toolkit contains an application module, database, evidence sheet, and wrench.
Editorial illustration
On this pageShow
  1. Which self-hosted error tracker needs the least RAM?
  2. Why is self-hosted Sentry too heavy for a small server?
  3. Which free, open source Sentry alternative can you self-host?
  4. Do these self-hosted trackers keep your Sentry SDK?
  5. Can Claude Code or Cursor read errors from a self-hosted tracker?
  6. How do upgrades and backups compare on a small self-hosted tracker?
  7. Which self-hosted error tracker fits which team?
  8. How do you install self-hosted Epure in two containers?
  9. Is Cloud better for a team with no time to operate a server?
  10. How did we check this self-hosted error tracking comparison?
  11. Questions

Lightweight self-hosted error tracking usually starts with a bad week on self-hosted Sentry. The box has 8 GB of RAM, the requirements page asks for 16 GB plus 16 GB of swap, and the next upgrade has to pass through a list of hard-stop versions. You only read the Issues page. The table compares the five projects people move to, using each project's own documentation, read on 6 Nov 2026.

Self-hosted error trackers on 7 criteria (checked 6 Nov 2026)

Services in the default install

Sentry self-hosted
53 Compose services (28 with the errors-only profile), release 26.10.1
GlitchTip
1 app service plus PostgreSQL; web and worker can share one process
Bugsink
1 container
Telebugs
1 container
Epure
2 containers: Epure and Postgres 16

Database

Sentry self-hosted
Postgres, ClickHouse, Kafka, Redis, Memcached, SeaweedFS
GlitchTip
PostgreSQL 14+; Valkey 7+ optional
Bugsink
SQLite by default; MySQL or PostgreSQL
Telebugs
SQLite for data, cache and jobs
Epure
PostgreSQL 16 with row-level security

Minimum RAM in the project's docs

Sentry self-hosted
16 GB + 16 GB swap, 4 cores, 20 GB disk (32 GB recommended)
GlitchTip
256 MB all-in-one; 512 MB recommended
Bugsink
No figure published
Telebugs
1 GB RAM, 1 CPU core
Epure
No minimum published; idle 5 MiB + 48 MiB measured on a 769 MiB VPS

Licence

Sentry self-hosted
Functional Source License (Fair Source); each release opens up after two years
GlitchTip
MIT
Bugsink
PolyForm Shield 1.0.0 (source-available)
Telebugs
Paid licence, source included: $299, then $99/year for updates
Epure
AGPL-3.0 engine; Apache-2.0 CLI and MCP packages

Upgrade path

Sentry self-hosted
Monthly releases; 9 hard-stop versions to pass through; expect downtime
GlitchTip
Pull the new image and restart; migrations run automatically
Bugsink
Pull the new image and recreate the container; migrations run automatically
Telebugs
New releases included for one year, then $99/year
Epure
Dump Postgres, pin EPURE_IMAGE, compose up; migrations run on boot

Sentry SDK

Sentry self-hosted
Maintains the SDKs, mobile and native included
GlitchTip
Uses Sentry SDKs
Bugsink
Sentry's open-source SDKs
Telebugs
Point existing Sentry SDKs at it
Epure
Change the DSN; errors only; 102 envelopes from 22 SDK fixture families tested

Agent access

Sentry self-hosted
sentry-mcp with SENTRY_HOST; no Seer on self-hosted
GlitchTip
No official MCP; community servers
Bugsink
REST API; no official MCP
Telebugs
MCP; write access is a separate, revocable permission
Epure
@epure-sh/mcp, or /mcp with EPURE_MCP_ENABLED=true (off by default)
DimensionSentry self-hostedGlitchTipBugsinkTelebugsEpure
Services in the default install53 Compose services (28 with the errors-only profile), release 26.10.11 app service plus PostgreSQL; web and worker can share one process1 container1 container2 containers: Epure and Postgres 16
DatabasePostgres, ClickHouse, Kafka, Redis, Memcached, SeaweedFSPostgreSQL 14+; Valkey 7+ optionalSQLite by default; MySQL or PostgreSQLSQLite for data, cache and jobsPostgreSQL 16 with row-level security
Minimum RAM in the project's docs16 GB + 16 GB swap, 4 cores, 20 GB disk (32 GB recommended)256 MB all-in-one; 512 MB recommendedNo figure published1 GB RAM, 1 CPU coreNo minimum published; idle 5 MiB + 48 MiB measured on a 769 MiB VPS
LicenceFunctional Source License (Fair Source); each release opens up after two yearsMITPolyForm Shield 1.0.0 (source-available)Paid licence, source included: $299, then $99/year for updatesAGPL-3.0 engine; Apache-2.0 CLI and MCP packages
Upgrade pathMonthly releases; 9 hard-stop versions to pass through; expect downtimePull the new image and restart; migrations run automaticallyPull the new image and recreate the container; migrations run automaticallyNew releases included for one year, then $99/yearDump Postgres, pin EPURE_IMAGE, compose up; migrations run on boot
Sentry SDKMaintains the SDKs, mobile and native includedUses Sentry SDKsSentry's open-source SDKsPoint existing Sentry SDKs at itChange the DSN; errors only; 102 envelopes from 22 SDK fixture families tested
Agent accesssentry-mcp with SENTRY_HOST; no Seer on self-hostedNo official MCP; community serversREST API; no official MCPMCP; write access is a separate, revocable permission@epure-sh/mcp, or /mcp with EPURE_MCP_ENABLED=true (off by default)

Verified 6 Nov 2026 against develop.sentry.dev/self-hosted (and its releases page), the getsentry/self-hosted 26.10.1 docker-compose.yml, glitchtip.com/documentation/install, bugsink.com/docs, the Bugsink LICENSE file, telebugs.com and telebugs.com/pricing. Epure facts: v0.2.0 (5 Nov 2026) and the 23 Sep 2026 benchmark. RAM figures are each vendor's own minimum, not a shared test.

Which self-hosted error tracker needs the least RAM?

GlitchTip publishes the lowest minimum of the five: 256 MB of RAM in all-in-one mode, 512 MB recommended (GlitchTip install docs, checked 6 Nov 2026). Telebugs asks for 1 GB and one core. Bugsink publishes no RAM figure. Self-hosted Sentry asks for 16 GB plus 16 GB of swap. Epure publishes no minimum either; what we have is a measurement of the two containers at idle on a small VPS.

Epure and Postgres 16 used about 5 MiB and 48 MiB of memory at idle on a 2 vCPU, 769 MiB VPS on 23 Sep 2026. Idle is not load, and the full readings, including what the rest of that box used, are in the 769 MiB VPS receipt. Vendor minimums and our idle reading come from different methods, so treat the RAM row as each project's own statement, not a ranking.

Why is self-hosted Sentry too heavy for a small server?

Self-hosted Sentry is heavy because it runs the same architecture as sentry.io. The docker-compose.yml of release 26.10.1 defines 53 services in its default feature-complete profile: Kafka, ClickHouse, Snuba consumers, Symbolicator, Relay, Vroom and task workers among them. Setting COMPOSE_PROFILES=errors-only brings that to 28 services, still with Kafka and ClickHouse. The requirements page gives one figure for both: 4 cores, 16 GB of RAM plus 16 GB of swap.

Upgrades add work. Sentry ships a release on the 15th of each month and lists nine hard-stop versions, from 9.1.2 to 26.7.0, that an upgrade must pass through (releases and upgrading, checked 6 Nov 2026). The page tells you to expect some downtime. Spike protection and Seer are not available self-hosted, and the self-hosted edition comes with no dedicated support. In exchange you get the whole product: tracing, replay, profiling and native symbolication.

Which free, open source Sentry alternative can you self-host?

GlitchTip and Epure are the two free options here under an OSI-approved licence: GlitchTip is MIT, and the Epure engine is AGPL-3.0 since v0.2.0. Bugsink is free to self-host under PolyForm Shield 1.0.0, a source-available licence that forbids competing use. Telebugs costs $299 for the first year and $99 a year for updates after that. Sentry's Functional Source License lets you run it for free, but not offer it as a competing service.

AGPL-3.0 matters only if you modify Epure and offer it to others over a network; then you share your changes. Running it for your own SaaS asks nothing of your code, and the Apache-2.0 client packages @epure-sh/cli and @epure-sh/mcp are licensed separately. Self-hosted Epure has no event quota and no seat count. Epure pricing lists self-hosting as the free plan.

Do these self-hosted trackers keep your Sentry SDK?

All five accept events from the official Sentry SDKs, so moving between them is a DSN change in Sentry.init, not a rewrite. What differs is what each one keeps. Epure stores errors only: transactions, replays and profiles are dropped at ingest, and our tests replay 102 envelopes from 22 SDK fixture families, from @sentry/nextjs to sentry-sdk for Python. Sentry itself stores everything the SDK sends.

Set tracesSampleRate: 0 and the replay and profile sample rates to 0 when your tracker does not use that data; the SDK then sends less. Check your runtime in the Sentry SDK matrix before you switch production. JS/TS source maps uploaded to an Epure release are matched by release and file name (source maps guide); other languages show raw frames.

Can Claude Code or Cursor read errors from a self-hosted tracker?

Three of the five ship agent access with self-hosting. Sentry's sentry-mcp reaches a self-hosted instance through SENTRY_HOST, without Seer. Telebugs has an MCP server where read access and write access are separate permissions you can revoke (Telebugs MCP, checked 6 Nov 2026). Epure serves its hosted MCP at /mcp once you set EPURE_MCP_ENABLED=true, which is off by default. GlitchTip and Bugsink rely on community MCP servers or their API.

Event payloads deserve care on any of them: anyone holding your public DSN can send an error whose message reads like an instruction. Epure's MCP server tells the agent that application content is untrusted data, and epure_issues_context leaves raw payloads out and hashes end-user emails and IDs unless the call asks for them. Setup steps are in the MCP and CLI reference.

How do upgrades and backups compare on a small self-hosted tracker?

GlitchTip, Bugsink and Epure upgrade the same way: pull a new image, restart, and let migrations run on boot. Epure's database is one Postgres 16 container. Sentry's nine hard stops and monthly CalVer releases make it the outlier. Backups follow the database. Bugsink and Telebugs on SQLite back up a file; GlitchTip and Epure back up Postgres; Sentry needs Postgres and its ClickHouse, Kafka and SeaweedFS volumes in step.

For Epure, one pg_dump from the postgres container covers issues, events and settings, plus a tar of the artifacts_data volume if you upload source maps. Pin EPURE_IMAGE to a release tag such as ghcr.io/epure-sh/epure:v0.2.0, run docker compose up -d, then check /health. The full sequence, with the rollback, is in Epure upgrades.

Which self-hosted error tracker fits which team?

Each of the 5 self-hosted error trackers here is the right answer for a different team, and Epure is not always it. The list gives the best fit and the poor fit for each, using the facts in the table above. If two of them fit, run the same staging error through both and compare the issue page you get. Line-by-line pages exist for Epure vs GlitchTip, Epure vs Bugsink and Epure vs Telebugs.

  • Self-hosted Sentry. Best for teams that need tracing, replay, profiling or iOS and Android stack traces on their own hardware, and have 16 GB or more to give it. Not for a single VPS shared with your app, or for anyone who cannot plan around hard-stop upgrades.
  • GlitchTip. Best for the smallest machine and an MIT licence; its documented minimum is 256 MB. Not for teams that want an official MCP server.
  • Bugsink. Best when one container with SQLite is the whole wish list. Not for teams that need an OSI-approved licence or an official MCP server; its Postgres support is described as not extensively tested.
  • Telebugs. Best for a one-time purchase with a scoped MCP server. Not for teams that want free software or Postgres; the licence covers one production instance on one domain.
  • Epure. Best for a SaaS run by one or two developers who want errors only, Postgres, an MCP server whose instructions treat event data as untrusted, and a flat Cloud plan to move to later. Not for tracing, replay, logs, mobile symbolication or SSO, and not for anyone who needs a one-container install: Epure is two.

Newer Rust trackers are worth a look too. Rustrak (AGPL-3.0, v0.25.0 released 6 Nov 2026) runs as a single process on SQLite, speaks the Sentry protocol, has an MCP endpoint, and also accepts logs and transactions. Its README reports a peak under 60 MB during a 20,000-event burst on 4 cores; we have not reproduced that.

How do you install self-hosted Epure in two containers?

Self-hosted Epure installs with Docker Compose v2 from the epure-sh/epure repository: git clone, then docker compose up -d starts Epure and postgres:16-alpine on localhost:8080. A warm compose reaches the first issue in about 10 seconds. Production uses a separate overlay: ./configure --prod writes real secrets, and --profile tls puts Caddy in front for HTTPS.

git clone https://github.com/epure-sh/epure.git && cd epure
./configure --prod
docker compose -f docker-compose.yml -f deploy/docker-compose.prod.yml --profile tls up -d
curl -sS https://errors.example.com/health
# {"status":"ok"}

Sign-in needs HTTPS because the session cookie is Secure; a correct password on http://YOUR_SERVER:8080 sends you back to the login form. After the first account exists, set EPURE_REGISTRATION=false. The installation guide has every step, and the Coolify guide covers the panel route.

Is Cloud better for a team with no time to operate a server?

Cloud is the better choice when nobody on a one- or two-person team will own backups, upgrades and disk growth. Epure Cloud Pro is $29 a month for 200,000 events with unlimited seats, and every self-hosted option above except Sentry also sells a managed plan. GlitchTip is cheaper below 100,000 events at $15 a month. The table prices two volumes with the same assumptions: monthly billing, errors only, list prices before tax.

Managed price per month at two volumes (checked 6 Nov 2026)

Sentry Team

200,000 events
About $61
1,500,000 events
About $264

GlitchTip

200,000 events
$50 (Medium, 500,000)
1,500,000 events
$250 (Large, 3 million)

Bugsink

200,000 events
€50 (600,000)
1,500,000 events
€158 (3 million)

Telebugs

200,000 events
$99 (one instance, 2 vCPU, 4 GB)
1,500,000 events
$99 (same instance)

Epure

200,000 events
$29 (Pro, 200,000)
1,500,000 events
$89 (Scale, 1,500,000)
Dimension200,000 events1,500,000 events
Sentry TeamAbout $61About $264
GlitchTip$50 (Medium, 500,000)$250 (Large, 3 million)
Bugsink€50 (600,000)€158 (3 million)
Telebugs$99 (one instance, 2 vCPU, 4 GB)$99 (same instance)
Epure$29 (Pro, 200,000)$89 (Scale, 1,500,000)

Sources, all checked 6 Nov 2026: glitchtip.com/pricing, bugsink.com, telebugs.com/pricing, sentry.io/pricing and docs.sentry.io/pricing (Sentry figures are our arithmetic from its reserved per-error rates, as on /vs/sentry). Epure: epure.sh/pricing, monthly billing only.

Epure Cloud starts with a 14-day trial on Pro limits, no card. Over the quota it keeps counting every occurrence and stores the first event of each new or regressed issue, up to a grace of 5% of the quota, with no automatic overage. Epure is in Beta, so weigh that against the years behind Sentry and GlitchTip. If your choice is really between Sentry's hosted plan and Epure, read Epure vs Sentry.

How did we check this self-hosted error tracking comparison?

We read each project's own install, licence, upgrade and pricing pages on 6 Nov 2026, counted the services in getsentry/self-hosted 26.10.1 through the GitHub API, and read the GitLab API for GlitchTip (latest tag v6.2.6, 7 Aug 2026) and GitHub for Bugsink (2.6.3, 6 Nov 2026). We have not benchmarked the other trackers ourselves. Epure figures come from v0.2.0 and our 23 Sep 2026 measurement.

Epure wrote this page, so weigh it accordingly. We re-check it every three months. If a figure here is wrong or out of date, open an issue on epure-sh/epure or email support@news.epure.sh, and we will correct it and date the change.

FAQ

Questions

What is the most lightweight self-hosted Sentry alternative?
By each project's own documentation, GlitchTip has the lowest published minimum: 256 MB of RAM in all-in-one mode (checked 6 Nov 2026). Bugsink, Telebugs and Rustrak run as one container on SQLite. Epure runs two containers that idled at about 5 MiB and 48 MiB on a 769 MiB VPS. Test your own workload before choosing.
Can I run self-hosted Sentry with errors only?
Yes. Setting COMPOSE_PROFILES=errors-only in release 26.10.1 cuts the stack from 53 Compose services to 28, though Kafka, ClickHouse and Snuba stay. Sentry's requirements page still lists 4 cores and 16 GB of RAM plus 16 GB of swap, and hard-stop upgrades apply either way.
Is self-hosted Epure free, and does it limit events?
Yes, self-hosted Epure is free under AGPL-3.0 with unlimited seats and no event quota. You pay for your own server and run your own backups. The over-quota rule and the plan limits apply only to Epure Cloud, which costs $29 a month for 200,000 events on Pro.
Can I move from self-hosted Sentry to Epure without changing my code?
Yes for errors. Point the DSN in your existing Sentry SDK at Epure and redeploy; your capture calls and beforeSend hooks stay. History does not move, so keep the old instance readable until its retention ends. The migration guide shows the staging test and the rollback.
Does Epure need Redis or Kafka?
No. Self-hosted Epure is one Rust binary and PostgreSQL 16, run as two containers. Ingest, the worker that groups events and the dashboard are the same process, so there is no queue broker, cache server or column store to operate, back up or upgrade alongside it.