Zum Inhalt springen

Umgebung & Konfiguration

Die gesamte Konfiguration erfolgt über Umgebungsvariablen in Ihrer .env-Datei im Projekt-Stammverzeichnis.

Wichtig: Rebase verwendet Zod, um Umgebungsvariablen beim Start in src/env.ts zu validieren. Wenn erforderliche Variablen fehlen oder falsch formatiert sind (z. B. URLs oder Ports), schlägt der Serverstart fehl und liefert eine klare Fehlermeldung.

VariableBeschreibungBeispiel
DATABASE_URLPostgreSQL-Verbindungszeichenfolgepostgresql://user:pass@localhost:5432/mydb
JWT_SECRETGeheimer Schlüssel zum Signieren von JWT-Tokens. Verwenden Sie eine starke Zufallszeichenfolge (mind. 32 Zeichen).a1b2c3d4e5...
VariableBeschreibungStandard
VITE_API_URLBackend-API-URL. Wird vom Client-SDK verwendet.http://localhost:3001
VITE_GOOGLE_CLIENT_IDGoogle OAuth Client-ID. Ermöglicht “Mit Google anmelden”.
VariableBeschreibungStandard
PORTPort für den Backend-HTTP-Server3001
LOG_LEVELLogging-Ausführlichkeit: error, warn, info, debuginfo
NODE_ENVUmgebung: development oder productiondevelopment
VariableBeschreibungStandard
JWT_SECRETGeheimnis für JWT-Signierung (erforderlich, wenn Authentifizierung aktiviert ist)
JWT_ACCESS_EXPIRES_INLebensdauer des Zugriffstokens1h
JWT_REFRESH_EXPIRES_INLebensdauer des Refresh-Tokens30d
ALLOW_REGISTRATIONErmöglicht neuen Benutzern die Registrierung (true/false). Der erste Benutzer kann sich immer registrieren.true
GOOGLE_CLIENT_IDGoogle OAuth Client-ID (Backend-Validierung)
VariableBeschreibungStandard
STORAGE_TYPESpeicher-Backend: local oder s3local
STORAGE_PATHBasispfad für lokalen Speicher./uploads
S3_BUCKETS3-Bucket-Name (wenn STORAGE_TYPE=s3)
S3_REGIONAWS-Region
S3_ACCESS_KEY_IDAWS-Zugriffsschlüssel
S3_SECRET_ACCESS_KEYAWS-Geheimschlüssel
S3_ENDPOINTBenutzerdefinierter S3-Endpunkt (für MinIO, Cloudflare R2, etc.)
VariableBeschreibung
SMTP_HOSTSMTP-Server-Host
SMTP_PORTSMTP-Server-Port
SMTP_SECUREEnable secure connection (true/false)
SMTP_USERSMTP-Benutzername
SMTP_PASSSMTP-Passwort
EMAIL_FROMAbsenderadresse für System-E-Mails

Das an initializeRebaseBackend() übergebene RebaseBackendConfig-Objekt bietet programmatische Steuerung:

import { initializeRebaseBackend } from "@rebasepro/server-core";
import { createPostgresAdapter } from "@rebasepro/server-postgresql";
import { env } from "./env";
await initializeRebaseBackend({
app,
server,
collectionsDir: "./config/collections",
basePath: "/api", // Base path for all API routes (default: "/api")
database: createPostgresAdapter({
connection: db,
schema: { tables, enums, relations }
}),
auth: { // Authentication config
jwtSecret: env.JWT_SECRET,
accessExpiresIn: env.JWT_ACCESS_EXPIRES_IN,
refreshExpiresIn: env.JWT_REFRESH_EXPIRES_IN,
requireAuth: true, // Require auth for data API (default: true)
allowRegistration: env.ALLOW_REGISTRATION,
google: env.GOOGLE_CLIENT_ID
? {
clientId: env.GOOGLE_CLIENT_ID,
clientSecret: env.GOOGLE_CLIENT_SECRET
}
: undefined,
serviceKey: env.REBASE_SERVICE_KEY
},
storage: env.STORAGE_TYPE === "s3"
? {
type: "s3",
bucket: env.S3_BUCKET!,
region: env.S3_REGION,
accessKeyId: env.S3_ACCESS_KEY_ID,
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
endpoint: env.S3_ENDPOINT
}
: {
type: "local",
basePath: env.STORAGE_PATH || "./uploads"
},
history: true, // Enable entity change history
enableSwagger: true, // Enable OpenAPI docs at /api/data/docs
logging: {
level: "info"
}
});