Despliegue
Docker Compose (Recomendado)
Sección titulada «Docker Compose (Recomendado)»El proyecto generado incluye un Dockerfile y un docker-compose.yml. Esta es la forma más sencilla de desplegar:
services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: rebase POSTGRES_PASSWORD: rebase POSTGRES_DB: rebase volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432"
app: build: ./backend ports: - "3001:3001" environment: DATABASE_URL: postgresql://rebase:rebase@postgres:5432/rebase JWT_SECRET: ${JWT_SECRET} NODE_ENV: production depends_on: - postgres volumes: - uploads:/app/uploads
volumes: pgdata: uploads:docker compose up -dLista de verificación para producción
Sección titulada «Lista de verificación para producción»Antes de desplegar a producción, asegúrate de:
| Elemento | Detalles |
|---|---|
| JWT_SECRET | Usa una cadena aleatoria criptográficamente fuerte (≥ 32 caracteres). Nunca la reutilices en diferentes entornos. |
| DATABASE_URL | Usa una instancia de Postgres gestionada (Neon, Supabase, RDS) con TLS habilitado |
| CORS | Configura los orígenes permitidos en tu backend si el frontend y el backend están en dominios diferentes |
| Volúmenes de almacenamiento | Monta volúmenes persistentes para la carga de archivos. O cambia a S3 para producción. |
| HTTPS | Termina TLS en tu proxy inverso (nginx, Cloudflare, balanceador de carga) |
| Registro | Establece ALLOW_REGISTRATION=false después de crear tu cuenta de administrador |
Sirviendo el Frontend
Sección titulada «Sirviendo el Frontend»En producción, el backend puede servir el frontend como una SPA estática:
import { serveSPA } from "@rebasepro/server-core";
// After initializeRebaseBackend()import path from "path";
// After initializeRebaseBackend()serveSPA(app, { frontendPath: path.resolve(process.cwd(), "../frontend/dist") });Primero, construye el frontend:
cd frontend && pnpm buildDe esta manera, solo necesitas desplegar un servidor que maneje tanto la SPA como la API.
Plataformas en la Nube
Sección titulada «Plataformas en la Nube»Railway / Render / Fly.io
Sección titulada «Railway / Render / Fly.io»- Sube tu código a un repositorio Git
- Conecta el repositorio a tu plataforma en la nube
- Configura las variables de entorno (
DATABASE_URL,JWT_SECRET, etc.) - El
Dockerfileincluido será detectado automáticamente
Google Cloud Run
Sección titulada «Google Cloud Run»# Build the containerdocker build -t gcr.io/YOUR_PROJECT/rebase-backend ./backend
# Push to Container Registrydocker push gcr.io/YOUR_PROJECT/rebase-backend
# Deploygcloud run deploy rebase-backend \ --image gcr.io/YOUR_PROJECT/rebase-backend \ --set-env-vars DATABASE_URL=...,JWT_SECRET=... \ --allow-unauthenticatedCambiar la URL Base
Sección titulada «Cambiar la URL Base»Si quieres que Rebase se ejecute en una subruta (por ejemplo, /admin):
Frontend — Actualiza el basename de BrowserRouter:
<BrowserRouter basename="/admin"> <App /></BrowserRouter>Backend — Actualiza la ruta base:
await initializeRebaseBackend({ // ... basePath: "/admin/api"});Próximos Pasos
Sección titulada «Próximos Pasos»- Descripción general del Backend — Configuración completa del backend
- Configuración de Almacenamiento — Configuración de S3 para producción