Dokumentation
Produktions-Setup
Checkliste für Umgebung und Integrationen vor dem Deployment von Motoko Base in die Produktion.
Nutze diese Checkliste vor deinem ersten Produktions-Deploy. Erforderliche Variablen starten die App; optionale Integrationen kannst du einzeln aktivieren.
Vollständige Env-Referenz: Environment Variables.
Erforderlich
Diese vier Variablen sind das Minimum für eine funktionierende Produktions-App:
| Variable | Produktionswert |
|---|---|
DATABASE_URL | Postgres-Connection-String — bevorzuge den Supabase-Transaction-Pooler (Port 6543) zur Laufzeit |
BETTER_AUTH_SECRET | Langes Zufallsgeheimnis — erzeugen mit openssl rand -base64 32; Dev-Secret niemals wiederverwenden |
BETTER_AUTH_URL | Öffentliche HTTPS-Origin, z. B. https://app.example.com |
NEXT_PUBLIC_APP_URL | Dieselbe öffentliche Origin — für Short Links und Redirects |
Halte BETTER_AUTH_URL und NEXT_PUBLIC_APP_URL an der URL ausgerichtet, die Nutzer tatsächlich öffnen.
Führe Migrationen gegen die Produktion vor oder während des ersten Deploys aus:
pnpm db:migrateWenn DDL über den Pooler scheitert, nutze vorübergehend eine direkte Verbindung (Port 5432). Siehe Migrations.
Datenbank
| Check | Aktion |
|---|---|
| Postgres läuft | Supabase, Neon, RDS oder self-hosted — jedes Postgres funktioniert |
| Migrationen angewendet | pnpm db:migrate gegen die Produktion |
| Pooler zur Laufzeit | Transaction-Pooler-URL in DATABASE_URL für Serverless/Multi-Instance-Hosts |
| RLS (Supabase) | Starter liefert RLS aktiviert — App verbindet sich über Pooler-Rolle, nicht über Anon Key |
Details: Database.
Better Auth & Secrets
| Check | Aktion |
|---|---|
| Neues Produktions-Secret | Frisches BETTER_AUTH_SECRET erzeugen — nicht aus .env.local kopieren |
| HTTPS-Origin | BETTER_AUTH_URL muss zu deiner Live-Domain passen (Cookies + Callbacks hängen davon ab) |
| Trusted Origins (optional) | BETTER_AUTH_TRUSTED_ORIGINS für Preview/Staging-Hosts |
Details: Better Auth.
OAuth-Callbacks
Wenn du Google- oder GitHub-Login nutzt, aktualisiere sowohl die Provider-Konsole als auch .env:
| Provider | Produktions-Callback-URL |
|---|---|
{BETTER_AUTH_URL}/api/auth/callback/google | |
| GitHub | {BETTER_AUTH_URL}/api/auth/callback/github |
Setze Produktions-Credentials GOOGLE_* / GITHUB_* — Sandbox-/Dev-OAuth-Apps funktionieren nicht auf deiner Live-Domain.
Details: OAuth Setup.
Resend
Erforderlich für Signup-Verifizierung und Passwort-Reset in der Produktion.
| Variable | Hinweise |
|---|---|
RESEND_API_KEY | Produktions-API-Key |
EMAIL_FROM | Verifizierter Domain-Absender, z. B. My App <noreply@yourdomain.com> |
Verifiziere deine Domain in Resend (SPF/DKIM) vor dem Go-Live.
Details: Email (Resend).
Polar
Wechsle von Sandbox zu Production, wenn Billing live geht.
| Variable | Hinweise |
|---|---|
POLAR_SERVER | production |
POLAR_ACCESS_TOKEN | Produktions-Organisations-Token |
POLAR_PRO_MONTHLY_PRODUCT_ID | Produktions-Produkt-ID |
POLAR_WEBHOOK_SECRET | Aus der Produktions-Webhook-Konfiguration |
Webhook-URL: {NEXT_PUBLIC_APP_URL}/api/billing/webhooks/polar
Teste Checkout zuerst in der Sandbox. Details: Payments (Polar).
Cloudflare R2
| Variable | Hinweise |
|---|---|
R2_ACCOUNT_ID | Cloudflare-Konto |
R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY | Produktions-API-Token |
R2_BUCKET_NAME | Privater Bucket |
Konfiguriere Bucket-CORS für deine Produktions-Origin, wenn Browser-Uploads fehlschlagen.
Details: Storage (R2).
PostHog
| Variable | Scope | Hinweise |
|---|---|---|
NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN | Client | Produktions-Projekt-Token |
NEXT_PUBLIC_POSTHOG_HOST | Client | Zu deiner PostHog-Region (US/EU) passend |
POSTHOG_PERSONAL_API_KEY | Server | Für HogQL unter /dashboard/analytics |
POSTHOG_PROJECT_ID | Server | Produktions-Projekt-ID |
POSTHOG_HOST | Server | API-Host (nicht Ingest-Host) |
Details: Analytics (PostHog).
Sentry
| Variable | Hinweise |
|---|---|
NEXT_PUBLIC_SENTRY_DSN | Produktions-Projekt-DSN |
SENTRY_AUTH_TOKEN | CI/Build — Source-Map-Upload |
SENTRY_ORG / SENTRY_PROJECT | CI/Build — Org- und Projekt-Slugs |
Setze Sentry-Env-Vars in deiner Build-Umgebung (CI), nicht nur zur Laufzeit, damit Source Maps während pnpm build hochgeladen werden.
Sentry ist während next dev deaktiviert — prüfe mit pnpm build && pnpm start oder auf dem deployed Host.
Details: Monitoring (Sentry).
Pre-Launch-Checkliste
- Produktions-Env-Vars auf dem Host gesetzt (Secrets nie committen)
- Frisches
BETTER_AUTH_SECRETerzeugt -
BETTER_AUTH_URLundNEXT_PUBLIC_APP_URLzeigen auf die Live-HTTPS-Domain - Migrationen auf der Produktionsdatenbank angewendet
- Resend-Domain verifiziert; Verifizierungs-E-Mail getestet
- OAuth-Callback-URLs aktualisiert (bei Social Sign-in)
- Polar-Webhook zeigt auf die Produktions-URL (bei Billing)
-
pnpm buildlokal oder in CI erfolgreich - Smoke-Test: Sign-up → Verify → Dashboard → zentrale Integrationen
Deployment — Deploy auf jede Next.js-kompatible Plattform + Vercel-Beispiel.