Migrate Sentry to Epure (DSN swap + Verify)
migrate from Sentry to self-hosted
Keep official Sentry SDK init, replace only dsn, zero traces/replay/profile rates, Confirm with Verify. No history import claim. Cutover checklist, not a compat matrix.
On this pageShowHide
Keep your official Sentry SDK init options, replace only dsn with your Epure host, and set traces, profiles, and replay sample rates to 0. Bring the host up, create a project DSN, capture one exception, Confirm with Verify (202 then env chip then Issues). Event history import is not documented; omit it.
You already ship official Sentry SDKs against Sentry SaaS (or a large Sentry self-host flotilla) and want exception Issues on a two-container Epure host (Rust binary + PostgreSQL 16) without rewiring every init option. Full Sentry self-host for replay and APM, or staying on SaaS for those products, is the undesired alternative when exception-only is enough. This is a cutover checklist, not another "who accepts a DSN" matrix.
Unique wedge: Welcome FAQ and Quickstart one-liner: keep the same init; replace only dsn; zero discarded sample rates; Verify bisect. Bias disclosed: Epure first-party docs. Distinct from Sentry SDK compatible (scoreboard) and from any GlitchTip-only migrate.
Primary how-to: Welcome, Quickstart. Acceptance: Verify. Host: Installation. Runtime pins: Platforms. Sibling: Sentry SDK compatible, Two-container error tracking, Epure vs Sentry.
Host up /health
Clone the public tree and start two containers, or use the production overlay on a VPS. Wait until GET /health returns { "status": "ok" }. Laptop: git clone https://github.com/epure-sh/epure.git && cd epure && docker compose up, then curl -sS http://localhost:8080/health. Production steps: Installation § Production.
Project and DSN
Register, open Settings → SDK connection, create a key if needed. Secret is shown once. DSN shape: http://{public_key}@YOUR_HOST/{project_id} (HTTPS in production).
Swap only dsn
Welcome FAQ: you can keep your Sentry SaaS init options. Quickstart: migrating from Sentry SaaS, keep the same init; replace only dsn. Do not rewrite integrations just to change host.
Zero sample rates
Set traces, profiles, and replay sample rates to 0. Those item types are discarded on Epure ingest (exception-only product). On Sentry JS v8+, set enableTracing: false when the option exists. CI fixtures for JS are @sentry/browser / @sentry/node 7.120.0; 8.x often works; confirm with Verify. Per-runtime pins: Next.js @sentry/nextjs@7.120.0, Go fixture-captured 0.28.0, Python pip install sentry-sdk unpinned.
Capture and Verify
Call Sentry.captureException(new Error("Epure verify test")) (or your runtime equivalent). Expect 202 Accepted plus { "id" }, then an unresolved Issues row. Match the environment chip to your SDK environment tag (local / production / all). Wrong project or env filter is the usual empty-Issues cause after a 202.
Ingest HTTP
- Expected
- 202 Accepted
Body
- Expected
- { "id": "<uuid>" }
Issues list
- Expected
- New unresolved issue for the exception type
Env chip
- Expected
- Matches Sentry.init environment
| Dimension | Expected |
|---|---|
| Ingest HTTP | 202 Accepted |
| Body | { "id": "<uuid>" } |
| Issues list | New unresolved issue for the exception type |
| Env chip | Matches Sentry.init environment |
What you lose
Epure is not 100% Sentry compatible. Session replay, APM tracing, and profiling are not Epure features. JS/TS demangle is available via source maps; other languages stay raw frames. Event / history import from Sentry SaaS is not a documented Epure path; do not invent export steps. Redis, Kafka, and ClickHouse are not default Epure services. Cloud is not live.
Who should use what
Cut over when exception Issues on your box with official SDKs is enough. Stay on Sentry Cloud when session replay or APM is the daily debug loop. For "which backends accept a DSN swap" read the sibling scoreboard; this post does not remake it.
Use this cutover if
- You keep official Sentry SDKs and only need to change dsn to Epure.
- You will Confirm with Verify (202 → env chip → Issues).
- Exception-only is enough; replay/APM are not the daily loop.
Read something else if
- You need the compat scoreboard: Sentry SDK compatible.
- You need host shape: Two-container error tracking.
- Replay/APM is required daily: stay on Sentry Cloud (Epure vs Sentry).
Limitations
No history import claim. Not a GlitchTip migrate. Not a backends scoreboard remake. Not 100% compatible. Cloud is not live.
- Epure is not 100% Sentry compatible.
- Session replay, APM tracing, and profiling are not Epure features.
- No documented event/history import path; omit inventing one.
- Do not claim Sentry 8.x as CI-proven; fixtures are 7.120.0; confirm with Verify.
- This post is not a GlitchTip migrate and not a remake of sentry-sdk-compatible.
- Cloud is not live.
Deep links: Welcome | Quickstart | Verify | Installation | Platforms.