Self-host
Run on one VPS
Puse is self-hostable by design: Fastify ingest, Next.js dashboard, alerts worker, Postgres. Your traces never leave your infrastructure.
Requirements
- Node.js 22+, pnpm 9
- Docker (for Postgres in development)
- 2 vCPU, 4 GB RAM minimum (small VPS)
Local / VPS setup
git clone <your-puse-repo> cd puse cp .env.example .env # set SESSION_SECRET (32+ chars) and DATABASE_URL docker compose -f docker-compose.dev.yml up -d pnpm install pnpm build # apply migrations once: pnpm db:migrate pnpm ingest:dev # :8789 pnpm dashboard:dev # :3002 pnpm worker:dev # alerts
Services
- ingest — Fastify API on port 8789
- dashboard — Next.js marketing + admin on port 3002
- worker — alert checks (error rate / cost spikes)
- postgres — trace storage (dev Compose maps :5433)
First account
Open /signup to create an organization and owner. Then create a project, copy the pu-… API key, and point the SDK at your ingest URL.
SDK configuration
const puse = createPuse({
apiKey: process.env.PUSE_API_KEY!,
baseUrl: process.env.PUSE_BASE_URL ?? "http://localhost:8789",
});Alerts
Configure Slack + thresholds per project in the dashboard. Optionally set a global SLACK_WEBHOOK_URL on the worker as a fallback.