Konfiguration
Verwalte globale Projekteinstellungen und Umgebungsvariablen.
Die Konfiguration hat drei Ebenen: Code-Standardwerte in config.ts, Umgebungsvariablen für Bereitstellung und Zugangsdaten sowie unterstützte Admin-Überschreibungen in SystemSetting.
Code-Standardwerte und Admin-Überschreibungen
appenthält Produktidentität und Metadaten-Standardwerte.i18ndefiniert aktive Sprachen, Standardwährungen und das CookieNEXT_LOCALE.auth.passwordPolicydefiniert Passwortregeln;teams.avatarColorsdefiniert Farben generierter Avatare.mailingwählt Mail-Adapter und Standardabsender.analyticswählt den Browser-Analytics-Adapter.payments.plansliefert den Startkatalog; gespeicherte Änderungen unter/app/admin/pricinghaben Vorrang.feedback,roadmap,changelogundai.copilotkonfigurieren optionale Produktmodule.
Die Adminseiten für Module und Template-Einstellungen speichern unterstützte Überschreibungen ohne Änderung an config.ts. Servercode nutzt getResolvedModules() und getResolvedTemplateSettings() aus database, wenn diese Werte gelten sollen. Direkter Zugriff auf config.ts liest nur Code-Standardwerte. Provider-IDs und ihre TypeScript-Typen liegen in packages/config/providers.ts; Anbieterimplementierungen bleiben in ihren jeweiligen Paketen.
Umgebungsvariablen
| Variable | Zweck |
|---|---|
NEXT_PUBLIC_SITE_URL | Öffentlicher App-Ursprung, lokal etwa http://localhost:3000 |
DATABASE_URL | PostgreSQL-Verbindungszeichenfolge |
BETTER_AUTH_SECRET | Secret für Auth und signierte Referenzen; mindestens 32 zufällige Zeichen |
APP_ENCRYPTION_KEY | Schlüssel zur Verschlüsselung gespeicherter Provider-Secrets; wird von setup:local erzeugt und überall dort benötigt, wo Zugangsdaten über Admin-Formulare gespeichert werden |
ADMIN_EMAILS | Kommagetrennte Adressen, die bei Registrierung die Adminrolle erhalten |
MOCK_SERVICES | true wählt explizit Mock-Zahlungen, Konsolen-Mail, Mock-Speicher und Mock-KI |
PAYMENT_PROVIDER | Zahlungsadapter; siehe Zahlungen |
MAIL_PROVIDER | Mail-Adapter; siehe E-Mail-Anbieter |
AI_PROVIDER | KI-Adapter; siehe KI-Provider |
STORAGE_PROVIDER | Speicheradapter; siehe Speicher |
S3_ENDPOINT, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY | S3-kompatible Verbindung |
NEXT_PUBLIC_AVATARS_BUCKET_NAME | Erlaubter Bucket für Avatar-Uploads |
TRUST_PROXY_HEADERS | Nur true setzen, wenn ein vertrauenswürdiger Edge-Proxy die verifizierte Client-IP an X-Forwarded-For anhängt und direkte Zugriffe die App nicht erreichen können |
Kopieren Sie .env.example als Ausgangspunkt und ergänzen Sie echte Werte für die gewählten Anbieter. Fehlende Zugangsdaten aktivieren nicht überall Mocks. Zahlungs- und Speicherpfade schlagen in Produktion ohne Konfiguration fehl, sofern Sandbox-Modus nicht explizit aktiv ist; Mail und KI folgen ihren dokumentierten Auswahlregeln.
Unterstützte Admin-Integrationsformulare können ausgewählte Zugangsdaten in der Datenbank speichern. Sie sind kein allgemeiner Zugangsdaten-Editor für jeden Adapter. Prüfen Sie Schlüssel und Vorrangregeln im jeweiligen Anbieterleitfaden. Als geheim markierte Felder liegen in SystemSetting verschlüsselt (AES-256-GCM mit APP_ENCRYPTION_KEY); Secret-Werte werden niemals an den Browser zurückgegeben. Umgebungsverwaltete Secrets bleiben umgebungsverwaltet und in der UI schreibgeschützt. Begrenzen Sie Datenbankzugriff, verwahren Sie den Verschlüsselungsschlüssel getrennt von Backups und schützen Sie Backups entsprechend.
Committen Sie .env niemals; Variablen mit NEXT_PUBLIC_ sind im Browser sichtbar und werden in das Browser-Bundle eingebaut. Eine Änderung verlangt einen neuen Produktions-Build und eine Bereitstellung; ein Runtime-Secret ändert keinen bereits gebauten öffentlichen Wert.
Die Auswahl eines Anbieters bestätigt nur die Konfiguration, nicht seine Live-Erreichbarkeit. Die Readiness-Prüfung kontrolliert notwendige Konfiguration, Datenbankerreichbarkeit und angewendete Migrationen, ohne kostenpflichtige Anbieter zu prüfen. Testen Sie vor dem Start den echten Ablauf jedes aktivierten Anbieters.
TRUST_PROXY_HEADERS=true verwendet die letzte gültige IP in X-Forwarded-For. Lassen Sie die Variable in der lokalen Entwicklung und bei jeder Bereitstellung ohne geschützten Edge-Proxy leer. Ungültige, fehlende und nicht vertrauenswürdige Werte teilen sich den Fallback-Bucket des Rate Limits.
Siehe E-Mail-Anbieter, Stripe und Projektstruktur.