U disignu hè in a sezzione 5 di docs/architecture/23-ops.md. Vercel esegue solu u
nivellu web. Tuttu u restu funziona nant’à un host cumpagnu chì amministrate voi, è ùn hè micca
facultativu.
Statu in sta versione
A cunfigurazione hè pronta (apps/web/vercel.json, u preset Nitro vercel
è i cuntrolli à l’avviu). Vercel hà bisognu d’un almacenamentu di schedarii spartutu
(QUIRE_STORAGE_DRIVER=s3 o azure), d’un driver in tempu reale chì funziona trà istanze
di funzione (QUIRE_REALTIME_DRIVER=sse o centrifugo) è d’un fornitore di posta HTTP. Senza elli, u nivellu web ricusa d’avvià è u so registru
nomina ogni paràmetru mancante.
I cumpunenti
Cumpunente
Induve funziona
web
Funzioni Vercel, runtime Node: pagine, REST, MCP, LTI, webhooks ricevuti
worker, scheduler, collab, content
Un host cumpagnu: Fly, Railway, ECS, o u vostru host Docker cù docker/compose.yaml
Postgres
Esternu, daretu à un gestore di transazzioni: Neon, Supabase o RDS cù PgBouncer
Schedarii
S3 o R2. Ùn ci hè micca discu persistente
Travaglii in sfondu
Inseriti cù pg-boss in a transazzione di a dumanda, eseguiti da u worker cumpagnu. Cù QUIRE_QUEUE_DRIVER=vercel nant’à u worker cumpagnu, i travaglii ligeri (cunsigne è cunsegne webhook senza ordine) passanu per Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), dunque Postgres cù pool ùn hè micca interrugatu per elli
Travaglii ricurrenti
U scheduler cumpagnu. Ùn ci hè micca una strada Vercel Cron, perchè un cron chì travaglia dentru una funzione scade
Tracciamentu
OpenTelemetry versu u vostru cullettore, OTEL_EXPORTER_OTLP_ENDPOINT
Ciò ch’ellu ùn pò fà stu target
U nivellu web verifica sti paràmetri à l’avviu è ricusa di parte, indicendu ogni prublema,
invece d’aspittà u primu email chì ùn ghjunghje mai:
Nisun SMTP. Vercel impedisce SMTP in uscita. Impustate QUIRE_EMAIL_PROVIDER_CONFIG
à un fornitore HTTP (Postmark, SES, Mailgun, SendGrid o Resend).
QUIRE_SMTP_URL hè ricusatu.
Nisun discu lucale.QUIRE_STORAGE_DRIVER=local hè ricusatu.
Nisuna memoria spartuta trà invucazioni.QUIRE_REALTIME_DRIVER=inprocess
hè ricusatu. L’avvenimenti mandati da u servitore sò limitati à u timeout di a funzione; u
cliente si ricunnessa cù un cursore, dunque nisun avvenimentu si perde, ma a presenza ùn hè
dispunibule.
E basi di dati di tenant fissate sò limitate à circa ottu, perchè ognuna hè
un altru pool di cunnessione in un ambiente induve i pool ùn ponu esse spartuti.
Distribuzione
Create un prughjettu Vercel da u repositoriu cù Directory radicaapps/web. apps/web/vercel.json stabilisce i cumandi d’installazione è di custruzzione
(NITRO_PRESET=vercel) è serve /sw.js senza cache.
Stabilite e variabili d’ambiente. Da docker/.env.example, almenu:
QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN,
QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY,
DATABASE_URL (l’indirizzu di u pooler), QUIRE_REPORT_DATABASE_URL,
QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID,
QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, i paràmetri di almacenamentu,
è QUIRE_COLLAB_URL è QUIRE_COLLAB_SIGNING_KEY chì puntanu à u serviziu collab
di u cumpagnu.
QUIRE_REPORT_DATABASE_URL appartene à a basa fisica indicata da
DATABASE_URL. Per ogni basa di dati registrata in più, aghjunghjite u so propiu
URL di cunnessione quire_report à l’ambienti web è worker, dopu
registrate u nome di a so variabile d’ambiente cum’è env:NAME in a cunsola
di a piattaforma. L’analitiche ricusanu d’apre s’ellu manca l’URL di rapportu di quella basa.
Nant’à l’host cumpagnu, eseguite docker/compose.yaml senza u serviziu web,
cù u listessu docker/.env:
E migrazioni si facenu quì, prima di prumove ogni distribuzione Vercel.
Distribuite. S’è a cunfigurazione hè ricusata, u registru di a funzione principia cù «The web
tier did not start on vercel» è elenca ogni paràmetru da cambià.
Aghjurnamentu
Migrà prima da l’host cumpagnu, dopu prumove a nova distribuzione Vercel, dopu aghjurnà i worker
cumpagni: l’ordine indicatu in upgrade.md. Un ritornu istantaneu Vercel à a versione precedente hè un ritornu di codice è hè
sempre sicuru in a stessa versione.