{
  "id": 8662836,
  "title": "Point the official Sentry SDK at self-hosted ingest (DSN only)",
  "url": "https://urgent.news/2026/09/20/point-the-official-sentry-sdk-at-self-hosted-ingest-dsn-only",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-20T10:00:44.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/amorizz/point-the-official-sentry-sdk-at-self-hosted-ingest-dsn-only-3ij2"
  },
  "original_language": "en",
  "account": "To set up the official Sentry SDK for self-hosted ingest, simply change the DSN and ensure the SDK is initialized with the appropriate settings. Two containers, an app image and PostgreSQL 16, are required. Replay, traces, and profiles should be disabled at a sample rate of 0, as they are out of scope. Follow these steps to complete the setup:\n\n1. Clone the public repo and start the Docker Compose from the repo root: git clone https://github.com/epure-sh/epure.git cd epure docker compose up\n2. Verify the health check by accessing http://localhost:8080/health → { status : ok }\n3. Install the pinned official SDK (7.120.0) using your DSN. For a browser SPA, use: import * as Sentry from \"@sentry/browser\"; Sentry.init({ dsn: \"http://YOUR_PUBLIC_KEY@localhost:8080/YOUR_PROJECT_ID\", environment: \"local\", release: \"my-app@0.0.0\", tracesSampleRate: 0, profilesSampleRate: 0, replaysSessionSampleRate: 0, replaysOnErrorSampleRate: 0 });\n4. For Node, use: const Sentry = require(\"@sentry/node\"); Sentry.init({ dsn: \"http://YOUR_PUBLIC_KEY@localhost:8080/YOUR_PROJECT_ID\", environment: \"local\", release: \"my-app@0.0.0\", tracesSampleRate: 0, profilesSampleRate: 0, replaysSessionSampleRate: 0, replaysOnErrorSampleRate: 0 });\n5. Confirm the SDK ingestion by capturing an exception and checking for a 202 response, followed by an Issues row. If necessary, perform raw store or envelope curls for verification.",
  "summary": "You don’t need a forked Sentry SDK. Keep @sentry/browser or @sentry/node , change only dsn , then prove /health → HTTP 202 → Issues. Two containers (app + Postgres 16); leave replay, traces, and profiles at sample rate 0 — those envelope items are out of scope. What you will do Clone and docker compose up Confirm GET /health → {\"status\":\"ok\"} Install a pinned official SDK ( 7.120.0 ) Sentry.init…",
  "key_points": [
    "Clone the public repo and run Docker Compose to set up self-hosted ingest.",
    "Install pinned official Sentry SDK (7.120.0) with custom DSN and settings.",
    "Verify SDK ingestion by capturing an exception and checking for 202 response."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}