Aller au contenu

Environnement et Configuration

Toute la configuration est effectuée via des variables d’environnement dans votre fichier .env à la racine du projet.

Important : Rebase utilise Zod pour valider les variables d’environnement au démarrage dans src/env.ts. Si des variables requises sont manquantes ou mal formatées (comme des URLs ou des ports), le serveur ne démarrera pas et fournira un message d’erreur clair.

VariableDescriptionExemple
DATABASE_URLChaîne de connexion PostgreSQLpostgresql://user:pass@localhost:5432/mydb
JWT_SECRETClé secrète pour la signature des tokens JWT. Utilisez une chaîne aléatoire forte (min 32 caractères).a1b2c3d4e5...
VariableDescriptionDéfaut
VITE_API_URLURL de l’API backend. Utilisée par le SDK client.http://localhost:3001
VITE_GOOGLE_CLIENT_IDID client Google OAuth. Active la fonction “Se connecter avec Google”.
VariableDescriptionDéfaut
PORTPort du serveur HTTP backend3001
LOG_LEVELNiveau de verbosité des logs : error, warn, info, debuginfo
NODE_ENVEnvironnement : development ou productiondevelopment
VariableDescriptionDéfaut
JWT_SECRETSecret pour la signature JWT (requis si l’authentification est activée)
JWT_ACCESS_EXPIRES_INDurée de vie du token d’accès1h
JWT_REFRESH_EXPIRES_INDurée de vie du token de rafraîchissement30d
ALLOW_REGISTRATIONPermettre aux nouveaux utilisateurs de s’inscrire (true/false). Le premier utilisateur peut toujours s’inscrire.true
GOOGLE_CLIENT_IDID client Google OAuth (validation backend)
VariableDescriptionDéfaut
STORAGE_TYPEBackend de stockage : local ou s3local
STORAGE_PATHChemin de base pour le stockage local./uploads
S3_BUCKETNom du bucket S3 (lorsque STORAGE_TYPE=s3)
S3_REGIONRégion AWS
S3_ACCESS_KEY_IDClé d’accès AWS
S3_SECRET_ACCESS_KEYClé secrète AWS
S3_ENDPOINTEndpoint S3 personnalisé (pour MinIO, Cloudflare R2, etc.)
VariableDescription
SMTP_HOSTHôte du serveur SMTP
SMTP_PORTPort du serveur SMTP
SMTP_SECUREEnable secure connection (true/false)
SMTP_USERNom d’utilisateur SMTP
SMTP_PASSMot de passe SMTP
EMAIL_FROMAdresse de l’expéditeur pour les e-mails système

L’objet RebaseBackendConfig passé à initializeRebaseBackend() offre un contrôle programmatique :

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"
}
});