Déploiement
Docker Compose (Recommandé)
Section intitulée « Docker Compose (Recommandé) »Le projet généré inclut un Dockerfile et un docker-compose.yml. C’est le moyen le plus simple de déployer :
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 -dListe de contrôle pour la production
Section intitulée « Liste de contrôle pour la production »Avant de déployer en production, assurez-vous :
| Élément | Détails |
|---|---|
| JWT_SECRET | Utilisez une chaîne aléatoire cryptographiquement forte (≥ 32 caractères). Ne jamais réutiliser entre les environnements. |
| DATABASE_URL | Utilisez une instance Postgres gérée (Neon, Supabase, RDS) avec TLS activé |
| CORS | Configurez les origines autorisées sur votre backend si le frontend et le backend sont sur des domaines différents |
| Volumes de stockage | Montez des volumes persistants pour les téléchargements de fichiers. Ou passez à S3 pour la production. |
| HTTPS | Terminez le TLS au niveau de votre proxy inverse (nginx, Cloudflare, équilibreur de charge) |
| Inscription | Définissez ALLOW_REGISTRATION=false après avoir créé votre compte administrateur |
Servir le Frontend
Section intitulée « Servir le Frontend »En production, le backend peut servir le frontend comme une SPA statique :
import { serveSPA } from "@rebasepro/server-core";
// Après initializeRebaseBackend()import path from "path";
// After initializeRebaseBackend()serveSPA(app, { frontendPath: path.resolve(process.cwd(), "../frontend/dist") });Construisez le frontend en premier :
cd frontend && pnpm buildDe cette façon, vous n’avez besoin de déployer qu’un seul serveur qui gère à la fois le SPA et l’API.
Plateformes Cloud
Section intitulée « Plateformes Cloud »Railway / Render / Fly.io
Section intitulée « Railway / Render / Fly.io »- Poussez votre code vers un dépôt Git
- Connectez le dépôt à votre plateforme cloud
- Définissez les variables d’environnement (
DATABASE_URL,JWT_SECRET, etc.) - Le
Dockerfileinclus sera auto-détecté
Google Cloud Run
Section intitulée « 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-unauthenticatedModifier l’URL de base
Section intitulée « Modifier l’URL de base »Si vous souhaitez que Rebase s’exécute à un sous-chemin (par exemple, /admin) :
Frontend — Mettez à jour le basename de BrowserRouter :
<BrowserRouter basename="/admin"> <App /></BrowserRouter>Backend — Mettez à jour le chemin de base :
await initializeRebaseBackend({ // ... basePath: "/admin/api"});Prochaines étapes
Section intitulée « Prochaines étapes »- Vue d’ensemble du Backend — Configuration complète du backend
- Configuration du Stockage — Configuration S3 pour la production