Hasty Briefsbeta

Bilingual

What Sentry's 16GB selfhosted taught me

15 hours ago
  • Sentry's self-hosted RAM floor is high because it includes a full observability suite (tracing, replay, profiling) with 20+ containers and 16GB RAM requirement.
  • Epure is an exception-only alternative: two containers (Rust and PostgreSQL 16), a DSN swap, Apache 2.0 license, and a dated docker stats receipt showing ~53 MiB combined idle RSS.
  • Four failure modes for small VPS users: install gravity, bill shock, compatible tools still requiring a fleet, and license friction.
  • Epure intentionally scopes out tracing, replay, profiling, log ingestion, native mobile symbolication, and Redis/Kafka/ClickHouse; it is not 100% Sentry protocol compatible.
  • Epure's Compose stack runs only two services: epure (ghcr.io/epure-sh/epure:v0.1.1) and postgres:16-alpine, with no separate worker or Redis.
  • The dated RSS receipt (2026-09-23) shows idle ~5 MiB for Epure, ~48 MiB for Postgres; burst (280-330 req/s) kept Epure under ~12 MiB.
  • Spike valve defaults limit duplicates: ~100 events/min per fingerprint, project cap 5000 events/hour, and 2MB body limit.
  • Epure is not a free clone; it discards transaction/replay/profile items and targets only grouped exceptions with readable stacks.
  • Comparison table: Sentry (20+ containers, FSL, full suite), GlitchTip (~4 containers, MIT, DSN-swap errors), Bugsink (1 container, Polyform Shield, SQLite), Epure (2 containers, Apache 2.0, exceptions only).
  • Try it by pinning EPURE_IMAGE, using docker compose up -d, and checking health endpoint; no .env needed for localhost.