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 pageShowHide
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 --prodwhen present, or copydeploy/env.production.exampleto.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.