Distribuzione
Docker Compose (Consigliato)
Sezione intitolata “Docker Compose (Consigliato)”Il progetto generato include un Dockerfile e un docker-compose.yml. Questo è il modo più semplice per la distribuzione:
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 di Controllo per la Produzione
Sezione intitolata “Lista di Controllo per la Produzione”Prima di distribuire in produzione, assicurati:
| Elemento | Dettagli |
|---|---|
| JWT_SECRET | Usa una stringa casuale crittograficamente forte (≥ 32 caratteri). Non riutilizzare mai tra ambienti. |
| DATABASE_URL | Usa un’istanza Postgres gestita (Neon, Supabase, RDS) con TLS abilitato |
| CORS | Configura le origini consentite sul tuo backend se frontend e backend si trovano su domini diversi |
| Volumi di storage | Monta volumi persistenti per gli upload di file. Oppure passa a S3 per la produzione. |
| HTTPS | Termina TLS sul tuo reverse proxy (nginx, Cloudflare, load balancer) |
| Registrazione | Imposta ALLOW_REGISTRATION=false dopo aver creato il tuo account amministratore |
Servire il Frontend
Sezione intitolata “Servire il Frontend”In produzione, il backend può servire il frontend come una SPA statica:
import { serveSPA } from "@rebasepro/server-core";
// After initializeRebaseBackend()import path from "path";
// After initializeRebaseBackend()serveSPA(app, { frontendPath: path.resolve(process.cwd(), "../frontend/dist") });Costruisci prima il frontend:
cd frontend && pnpm buildIn questo modo devi distribuire un solo server che gestisce sia la SPA che l’API.
Piattaforme Cloud
Sezione intitolata “Piattaforme Cloud”Railway / Render / Fly.io
Sezione intitolata “Railway / Render / Fly.io”- Invia il tuo codice a un repository Git
- Collega il repository alla tua piattaforma cloud
- Imposta le variabili d’ambiente (
DATABASE_URL,JWT_SECRET, ecc.) - Il
Dockerfileincluso verrà rilevato automaticamente
Google Cloud Run
Sezione intitolata “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-unauthenticatedCambiare l’URL Base
Sezione intitolata “Cambiare l’URL Base”Se vuoi che Rebase venga eseguito su un sotto-percorso (es. /admin):
Frontend — Aggiorna il basename di BrowserRouter:
<BrowserRouter basename="/admin"> <App /></BrowserRouter>Backend — Aggiorna il percorso base:
await initializeRebaseBackend({ // ... basePath: "/admin/api"});Prossimi Passi
Sezione intitolata “Prossimi Passi”- Panoramica del Backend — Configurazione completa del backend
- Configurazione dello Storage — Configurazione S3 per la produzione