Dokumentation

Produktions-Setup

Checkliste für Umgebung und Integrationen vor dem Deployment von Motoko Base in die Produktion.

Öffnen inChatGPT (öffnet in neuem Tab)Claude (öffnet in neuem Tab)Cursor (öffnet in neuem Tab)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:

VariableProduktionswert
DATABASE_URLPostgres-Connection-String — bevorzuge den Supabase-Transaction-Pooler (Port 6543) zur Laufzeit
BETTER_AUTH_SECRETLanges 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_URLDieselbe ö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:migrate

Wenn DDL über den Pooler scheitert, nutze vorübergehend eine direkte Verbindung (Port 5432). Siehe Migrations.

Datenbank

CheckAktion
Postgres läuftSupabase, Neon, RDS oder self-hosted — jedes Postgres funktioniert
Migrationen angewendetpnpm db:migrate gegen die Produktion
Pooler zur LaufzeitTransaction-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

CheckAktion
Neues Produktions-SecretFrisches BETTER_AUTH_SECRET erzeugen — nicht aus .env.local kopieren
HTTPS-OriginBETTER_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:

ProviderProduktions-Callback-URL
Google{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.

VariableHinweise
RESEND_API_KEYProduktions-API-Key
EMAIL_FROMVerifizierter 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.

VariableHinweise
POLAR_SERVERproduction
POLAR_ACCESS_TOKENProduktions-Organisations-Token
POLAR_PRO_MONTHLY_PRODUCT_IDProduktions-Produkt-ID
POLAR_WEBHOOK_SECRETAus 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

VariableHinweise
R2_ACCOUNT_IDCloudflare-Konto
R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEYProduktions-API-Token
R2_BUCKET_NAMEPrivater Bucket

Konfiguriere Bucket-CORS für deine Produktions-Origin, wenn Browser-Uploads fehlschlagen.

Details: Storage (R2).

PostHog

VariableScopeHinweise
NEXT_PUBLIC_POSTHOG_PROJECT_TOKENClientProduktions-Projekt-Token
NEXT_PUBLIC_POSTHOG_HOSTClientZu deiner PostHog-Region (US/EU) passend
POSTHOG_PERSONAL_API_KEYServerFür HogQL unter /dashboard/analytics
POSTHOG_PROJECT_IDServerProduktions-Projekt-ID
POSTHOG_HOSTServerAPI-Host (nicht Ingest-Host)

Details: Analytics (PostHog).

Sentry

VariableHinweise
NEXT_PUBLIC_SENTRY_DSNProduktions-Projekt-DSN
SENTRY_AUTH_TOKENCI/Build — Source-Map-Upload
SENTRY_ORG / SENTRY_PROJECTCI/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_SECRET erzeugt
  • BETTER_AUTH_URL und NEXT_PUBLIC_APP_URL zeigen 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 build lokal oder in CI erfolgreich
  • Smoke-Test: Sign-up → Verify → Dashboard → zentrale Integrationen

Deployment — Deploy auf jede Next.js-kompatible Plattform + Vercel-Beispiel.