Ir al contenido

Entorno y Configuración

Toda la configuración se realiza a través de variables de entorno en tu archivo .env en la raíz del proyecto.

Importante: Rebase utiliza Zod para validar las variables de entorno al inicio en src/env.ts. Si falta alguna variable requerida o está formateada incorrectamente (como URLs o puertos), el servidor no se iniciará y proporcionará un mensaje de error claro.

VariableDescripciónEjemplo
DATABASE_URLCadena de conexión de PostgreSQLpostgresql://user:pass@localhost:5432/mydb
JWT_SECRETClave secreta para firmar tokens JWT. Utiliza una cadena aleatoria fuerte (mín. 32 caracteres).a1b2c3d4e5...
VariableDescripciónValor por defecto
VITE_API_URLURL de la API del backend. Utilizada por el SDK del cliente.http://localhost:3001
VITE_GOOGLE_CLIENT_IDID de cliente de Google OAuth. Habilita “Iniciar sesión con Google”.
VariableDescripciónValor por defecto
PORTPuerto para el servidor HTTP del backend3001
LOG_LEVELNivel de verbosidad del registro: error, warn, info, debuginfo
NODE_ENVEntorno: development o productiondevelopment
VariableDescripciónValor por defecto
JWT_SECRETSecreto para la firma JWT (requerido si la autenticación está habilitada)
JWT_ACCESS_EXPIRES_INTiempo de vida del token de acceso1h
JWT_REFRESH_EXPIRES_INTiempo de vida del token de actualización30d
ALLOW_REGISTRATIONPermitir que nuevos usuarios se registren (true/false). El primer usuario siempre puede registrarse.true
GOOGLE_CLIENT_IDID de cliente de Google OAuth (validación del backend)
VariableDescripciónValor por defecto
STORAGE_TYPEBackend de almacenamiento: local o s3local
STORAGE_PATHRuta base para almacenamiento local./uploads
S3_BUCKETNombre del bucket de S3 (cuando STORAGE_TYPE=s3)
S3_REGIONRegión de AWS
S3_ACCESS_KEY_IDClave de acceso de AWS
S3_SECRET_ACCESS_KEYClave secreta de AWS
S3_ENDPOINTEndpoint S3 personalizado (para MinIO, Cloudflare R2, etc.)
VariableDescripción
SMTP_HOSTHost del servidor SMTP
SMTP_PORTPuerto del servidor SMTP
SMTP_SECUREEnable secure connection (true/false)
SMTP_USERNombre de usuario SMTP
SMTP_PASSContraseña SMTP
EMAIL_FROMDirección del remitente para correos electrónicos del sistema

El RebaseBackendConfig pasado a initializeRebaseBackend() proporciona control programático:

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