Files
patrickandClaude Sonnet 5 4a19335a1e feat: rework starter kit for self-hosted deploy (Vite/React + Fastify/Drizzle/Postgres)
Replace Next.js/Supabase/Vercel stack with a self-hostable setup: Vite+React
frontend, Fastify+Drizzle+PostgreSQL backend with own JWT auth, deploy via
git pull + rsync + systemd (checkout/service separated, updates pulled from
Gitea). Adds a reference auth route (register/login/me) as the canonical
pattern for new routes. Updates all skills/rules/agents/docs to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BMdBJfD9TT6XUU2NqGG1PN
2026-09-08 11:42:47 +02:00

60 lines
1.8 KiB
Markdown

# Error Tracking Setup (Sentry, self-hosted friendly)
Track production errors automatically so you know about issues before your users report them. Sentry's SaaS free tier works fine even on a self-hosted app — it's just a DSN endpoint, no coupling to any specific host.
## Setup (5 minutes)
### 1. Create Sentry Account
- Go to [sentry.io](https://sentry.io) (free tier available for small apps)
- Create a project of type "Node" for the backend and one of type "React" for the frontend (or one combined project)
### 2. Install SDKs
```bash
# backend/
npm install @sentry/node
# frontend/
npm install @sentry/react
```
### 3. Initialize
Backend (`backend/src/server.ts`, before anything else runs):
```ts
import * as Sentry from "@sentry/node";
Sentry.init({ dsn: process.env.SENTRY_DSN });
```
Frontend (`frontend/src/main.tsx`, before rendering):
```ts
import * as Sentry from "@sentry/react";
Sentry.init({ dsn: import.meta.env.VITE_SENTRY_DSN });
```
### 4. Add Environment Variables
Backend `.env`:
```bash
SENTRY_DSN=https://xxx@xxx.ingest.sentry.io/xxx
```
Frontend `.env` (baked in at build time, so rebuild after changing it):
```bash
VITE_SENTRY_DSN=https://xxx@xxx.ingest.sentry.io/xxx
```
### 5. Verify Setup
Trigger a test error and check the Sentry Dashboard:
```typescript
// Temporary test - remove after verification
throw new Error("Sentry test error")
```
## What You Get
- Automatic error capture (client + server)
- Stack traces with source maps (upload via `@sentry/vite-plugin` / `@sentry/esbuild-plugin` in the build step)
- Error grouping and deduplication
- Email alerts for new errors
- Performance monitoring (optional)
## Alternative
Self-hosted **GlitchTip** — an open-source, Sentry-protocol-compatible error tracker you can run on your own server if sending errors to a third-party SaaS is not acceptable.