Deploy su Vercel

Il Carrubo è ottimizzato per essere eseguito su Vercel come applicazione Serverless. Questo permette costi bassissimi (o nulli per traffico contenuto) e scalabilità infinita.

Il file vercel.json

La configurazione risiede nel file vercel.json alla radice del progetto:

vercel.json
{
  "version": 2,
  "cleanUrls": false,
  "ignoreCommand": "bash ignore-build.sh",
  "rewrites": [
    { "source": "/api/(.*)", "destination": "/api/index" },
    { "source": "/home", "destination": "/home.html" },
    { "source": "/lista", "destination": "/lista.html" }
    /* ...altri 20+ rewrites... */
  ]
}

Serverless Functions

Il progetto usa il file api/index.js (un file molto grande, ~74KB) come handler globale per tutte le route API su Vercel. Il vercel.json fa in modo che ogni richiesta /api/* venga indirizzata a quella singola Serverless Function, riducendo drasticamente i tempi di Cold Start.

Clean URLs

Vercel ha un sistema di “clean URLs” nativo, ma Il Carrubo lo imposta a false nel vercel.json. Il motivo è che la gestione dei clean URL e dei redirect viene fatta manualmente dal file middleware.js (Vercel Edge Middleware) e dai Rewrites per permettere la logica condizionale del “Feature Gating”.

Setup in Vercel

  1. Importa il repository: Dalla dashboard di Vercel, clicca “Add New” → “Project” e importa il repository GitHub de Il Carrubo.
  2. Framework Preset: Lascia “Other”.
  3. Build Command: Non c’è alcun comando di build necessario per il Node backend. Vercel capirà che è un progetto Node dalle cartelle.
  4. Variabili d’ambiente: Nella sezione “Environment Variables”, incolla tutte le variabili del tuo .env (eccetto PORT o configurazioni strettamente locali).
  5. Deploy: Clicca “Deploy”.

Custom Domain

Una volta effettuato il deploy, puoi associare un dominio personalizzato:

  1. Vai su “Settings” → “Domains” nel tuo progetto Vercel.
  2. Aggiungi carrubo.tuodominio.it.
  3. Vercel ti fornirà i record CNAME (es. cname.vercel-dns.com) o A-Record da inserire nel pannello di controllo del tuo provider di domini.
  4. Vercel gestirà automaticamente e gratuitamente la generazione e il rinnovo del certificato SSL (Let’s Encrypt).