Epure
Guide

Install Epure on a cheap VPS and verify

Small VPS invoice path: prod env, Compose overlay, HTTPS edge, /health, DSN, Verify. Two containers. You own backups.

On this pageShow
  1. Box assumptions
  2. Prod env
  3. Compose up
  4. TLS edge
  5. Health and register
  6. DSN then Verify
  7. Backups next
  8. Questions

Start from the VPS invoice, not from architecture poetry. Fresh Linux box, Docker Engine + Compose plugin, a DNS name. Then prod env and overlay up.

Box assumptions

  • Fresh Linux VPS with Docker Engine + Compose plugin.
  • Public IPv4 and a DNS name you control.
  • SSH access; you can edit files and read logs.
  • Size class: small shared VPS (Hetzner CX22-class / DigitalOcean droplet-class). Re-measure RAM on your metal; see Small VPS and Sentry self-hosted RAM for dated receipts only.

Prod env

  • Clone epure-sh/epure.
  • Prefer ./configure --prod when present, or copy deploy/env.production.example to .env.
  • Set strong secrets, PUBLIC_URL=https://errors.example.com, and keep Postgres off the host port.

Details: Compose prod.

Compose up

docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

docker compose ps

Wait until both services are healthy. Logs: docker compose logs -f epure. Exact overlay filenames may match repo deploy/ templates; follow Installation if names differ on your tag.

TLS edge

Terminate TLS with Caddy, Traefik, or nginx in front of the app port. Epure speaks HTTP behind the edge. Do not expose Postgres on 0.0.0.0.

Health and register

curl -fsS https://errors.example.com/health

Open the UI, create the first user/project, copy the DSN.

DSN then Verify

Sentry.init({ dsn: process.env.SENTRY_DSN, tracesSampleRate: 0, profilesSampleRate: 0, replaysSessionSampleRate: 0, replaysOnErrorSampleRate: 0 })

Sentry.captureException(new Error("Epure VPS verify"))

Confirm Issues: Verify. Sibling: Point DSN.

Backups next

You own Postgres dumps and upgrades. Runbook: Backups and upgrades.

Questions

Is this a full Sentry self-host?
No. Error tracking on two containers. Self-hosted Sentry's default still pulls a large suite (~16 GB class). Sentry also ships an official errors-only profile; still heavier ops than this stack. Dated receipts: RAM benchmark.
Can I just change the DSN from SaaS?
Yes for exceptions after this host is up. Migrate from Sentry.
Cloud instead?
Prices published; Cloud not live. Self-host is the path that ships.