Entorno y Configuración
Variables de Entorno
Sección titulada «Variables de Entorno»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.
Obligatorias
Sección titulada «Obligatorias»| Variable | Descripción | Ejemplo |
|---|---|---|
DATABASE_URL | Cadena de conexión de PostgreSQL | postgresql://user:pass@localhost:5432/mydb |
JWT_SECRET | Clave secreta para firmar tokens JWT. Utiliza una cadena aleatoria fuerte (mín. 32 caracteres). | a1b2c3d4e5... |
Frontend
Sección titulada «Frontend»| Variable | Descripción | Valor por defecto |
|---|---|---|
VITE_API_URL | URL de la API del backend. Utilizada por el SDK del cliente. | http://localhost:3001 |
VITE_GOOGLE_CLIENT_ID | ID de cliente de Google OAuth. Habilita “Iniciar sesión con Google”. | — |
Backend
Sección titulada «Backend»| Variable | Descripción | Valor por defecto |
|---|---|---|
PORT | Puerto para el servidor HTTP del backend | 3001 |
LOG_LEVEL | Nivel de verbosidad del registro: error, warn, info, debug | info |
NODE_ENV | Entorno: development o production | development |
Autenticación
Sección titulada «Autenticación»| Variable | Descripción | Valor por defecto |
|---|---|---|
JWT_SECRET | Secreto para la firma JWT (requerido si la autenticación está habilitada) | — |
JWT_ACCESS_EXPIRES_IN | Tiempo de vida del token de acceso | 1h |
JWT_REFRESH_EXPIRES_IN | Tiempo de vida del token de actualización | 30d |
ALLOW_REGISTRATION | Permitir que nuevos usuarios se registren (true/false). El primer usuario siempre puede registrarse. | true |
GOOGLE_CLIENT_ID | ID de cliente de Google OAuth (validación del backend) | — |
Almacenamiento
Sección titulada «Almacenamiento»| Variable | Descripción | Valor por defecto |
|---|---|---|
STORAGE_TYPE | Backend de almacenamiento: local o s3 | local |
STORAGE_PATH | Ruta base para almacenamiento local | ./uploads |
S3_BUCKET | Nombre del bucket de S3 (cuando STORAGE_TYPE=s3) | — |
S3_REGION | Región de AWS | — |
S3_ACCESS_KEY_ID | Clave de acceso de AWS | — |
S3_SECRET_ACCESS_KEY | Clave secreta de AWS | — |
S3_ENDPOINT | Endpoint S3 personalizado (para MinIO, Cloudflare R2, etc.) | — |
Correo Electrónico (Opcional)
Sección titulada «Correo Electrónico (Opcional)»| Variable | Descripción |
|---|---|
SMTP_HOST | Host del servidor SMTP |
SMTP_PORT | Puerto del servidor SMTP |
SMTP_SECURE | Enable secure connection (true/false) |
SMTP_USER | Nombre de usuario SMTP |
SMTP_PASS | Contraseña SMTP |
EMAIL_FROM | Dirección del remitente para correos electrónicos del sistema |
Objeto de Configuración del Backend
Sección titulada «Objeto de Configuración del Backend»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" }});Próximos Pasos
Sección titulada «Próximos Pasos»- Despliegue — Guía de despliegue en producción
- Visión General del Backend — Referencia completa de la configuración del backend