Die ontwerp staan in afdeling 5 van docs/architecture/23-ops.md. Vercel bedryf net die webvlak. Alles anders loop op ’n meegaande gasheer wat jy bedryf; dit is noodsaaklik.
Status in hierdie vrystelling
Die konfigurasie is in plek (apps/web/vercel.json, die vercel Nitro-voorinstelling en opstartkontroles). Vercel benodig gedeelde lêerberging (QUIRE_STORAGE_DRIVER=s3 of azure), ’n intydse aandrywer wat oor funksie-instansies werk (QUIRE_REALTIME_DRIVER=sse of centrifugo) en ’n HTTP-e-posverskaffer. Sonder hulle weier die webvlak om te begin en noem sy log elke ontbrekende instelling.
’n Meegaande gasheer: Fly, Railway, ECS of jou eie Docker-gasheer met docker/compose.yaml
Postgres
Ekstern, agter ’n transaksiepoeler: Neon, Supabase of RDS met PgBouncer
Lêers
S3 of R2. Daar is geen aanhoudende skyf nie
Agtergrondtake
Word met pg-boss binne die versoek se transaksie in die tou geplaas en deur die meegaande werker uitgevoer. Met QUIRE_QUEUE_DRIVER=vercel op die meegaande werker gaan die ligte take (ongeordende kennisgewings en webhook-aflewerings) deur Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), sodat gepoelde Postgres nie daarvoor gepols word nie
Herhalende take
Die meegaande skeduleerder. Daar is geen Vercel Cron-roete nie, want ’n cron wat werk binne ’n funksie doen, loop uit op ’n tydsbeperking
Nasporing
OpenTelemetry na jou versamelaar, OTEL_EXPORTER_OTLP_ENDPOINT
Wat hierdie teiken nie kan doen nie
Die webvlak kontroleer dit wanneer dit begin en weier met elke probleem benoem, eerder as om later te misluk wanneer die eerste e-pos nie gestuur word nie:
Geen SMTP nie. Vercel blokkeer uitgaande SMTP. Stel QUIRE_EMAIL_PROVIDER_CONFIG op ’n HTTP-verskaffer (Postmark, SES, Mailgun, SendGrid of Resend). QUIRE_SMTP_URL word geweier.
Geen plaaslike skyf nie.QUIRE_STORAGE_DRIVER=local word geweier.
Geen gedeelde geheue tussen aanroepe nie.QUIRE_REALTIME_DRIVER=inprocess word geweier. Gebeurtenisse wat deur die bediener gestuur word, word deur die funksietydsbeperking begrens; die kliënt koppel weer met ’n wyser, dus gaan geen gebeurtenis verlore nie, maar teenwoordigheid is onbeskikbaar.
Gepinde tenant-databasisse is beperk tot ongeveer agt, want elkeen is nog ’n verbindingspoel in ’n omgewing wat poele nie kan deel nie.
Ontplooi
Skep ’n Vercel-projek vanaf die bewaarplek met Root Directoryapps/web. apps/web/vercel.json stel die installasie- en bouopdragte (NITRO_PRESET=vercel) in en bedien /sw.js sonder kasberging.
Stel die omgewingsveranderlikes in. Ten minste die volgende uit docker/.env.example: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (die poeler se adres), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, berginginstellings en QUIRE_COLLAB_URL plus QUIRE_COLLAB_SIGNING_KEY wat na die meegaande collab-diens wys. QUIRE_REPORT_DATABASE_URL behoort aan die fisiese databasis wat deur DATABASE_URL benoem word. Vir elke bykomende geregistreerde databasis, voeg sy eie quire_report-verbinding-URL by die web- en werkeromgewings, en registreer dan sy omgewingsveranderlikenaam as env:NAME in die platformkonsole. Analise faal gesluit as daardie databasis se verslag-URL ontbreek.
Begin docker/compose.yaml op die meegaande gasheer sonder die web-diens, met dieselfde docker/.env:
Migrasies loop daar voordat elke Vercel-ontplooiing bevorder word.
Ontplooi. By ’n geweierde konfigurasie begin die funksielog met “The web tier did not start on vercel” en lys elke instelling om te verander.
Opgradeer
Migreer eers vanaf die meegaande gasheer, bevorder dan die nuwe Vercel-ontplooiing en rol daarna die meegaande werkers oor: die volgorde staan in upgrade.md. ’n Onmiddellike Vercel-terugdraai is ’n kode-terugdraai en is altyd veilig binne ’n vrystelling.