Preskoči na sadržaj

Web-sloj na Vercelu

Pokrenite web-sloj Quirea na Vercelu uz prateći radnik.

Prikaži kao Markdown

Dizajn je opisan u odjeljku 5 dokumenta docs/architecture/23-ops.md. Vercel pokreće samo web-sloj. Sve ostalo radi na pratećem poslužitelju kojim vi upravljate; on nije neobavezan.

Stanje u ovom izdanju

Konfiguracija je spremna (apps/web/vercel.json, unaprijed postavljena vrijednost Nitro vercel i provjere pri pokretanju). Vercelu je potrebna zajednička pohrana datoteka (QUIRE_STORAGE_DRIVER=s3 ili azure), upravljački program za stvarno vrijeme koji radi na više primjeraka funkcija (QUIRE_REALTIME_DRIVER=sse ili centrifugo) i HTTP pružatelj e-pošte. Bez tih postavki web-sloj odbija pokretanje, a zapis navodi svaku koja nedostaje.

Sastavni dijelovi

Dio Mjesto izvođenja
web Vercel Functions, okruženje Node: stranice, REST, MCP, LTI, primljeni web-dojavnici
worker, scheduler, collab, content Prateći poslužitelj: Fly, Railway, ECS ili vlastiti Docker poslužitelj s docker/compose.yaml
Postgres Vanjska baza iza posrednika transakcija: Neon, Supabase ili RDS s PgBouncerom
Datoteke S3 ili R2. Trajni disk nije dostupan
Pozadinski poslovi Stavljaju se u red pg-boss unutar transakcije zahtjeva, a izvršava ih prateći radnik. Kad se na pratećem radniku postavi QUIRE_QUEUE_DRIVER=vercel, jednostavni poslovi (neporedana isporuka obavijesti i web-dojavnika) prolaze kroz Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), pa se Postgres sa združenom vezom ne provjerava radi njih
Ponavljajući poslovi Prateći planer. Nema Vercelove rute Cron jer bi cron koji izvršava posao u funkciji prekoračio vremensko ograničenje
Praćenje OpenTelemetry prema vašem sakupljaču na OTEL_EXPORTER_OTLP_ENDPOINT

Što ovo odredište ne može

Web-sloj provjerava sljedeće pri pokretanju i odbija rad uz navođenje svakog problema, umjesto da kasnije zakaže tek kad se prva poruka e-pošte ne pošalje:

  • Nema SMTP-a. Vercel blokira odlazni SMTP. Postavite QUIRE_EMAIL_PROVIDER_CONFIG na HTTP pružatelja (Postmark, SES, Mailgun, SendGrid ili Resend). QUIRE_SMTP_URL se odbija.
  • Nema lokalnog diska. QUIRE_STORAGE_DRIVER=local se odbija.
  • Nema zajedničke memorije između poziva. QUIRE_REALTIME_DRIVER=inprocess se odbija. Broj događaja putem poslužiteljskih poslanih događaja ograničen je vremenskim ograničenjem funkcije. Klijent se ponovno povezuje pomoću pokazivača, pa se nijedan događaj ne gubi, ali prisutnost nije dostupna.
  • Broj baza podataka prikvačenih klijenata ograničen je na približno osam, jer je svaka dodatni skup veza u okruženju koje ih ne može zajednički koristiti.

Uvođenje

  1. Izradite projekt Vercel iz spremišta s vrijednošću Root Directory apps/web. apps/web/vercel.json postavlja naredbe instalacije i izgradnje (NITRO_PRESET=vercel) te poslužuje /sw.js bez predmemoriranja.
  2. Postavite varijable okruženja. Iz datoteke docker/.env.example postavite najmanje: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (adresa posrednika), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, postavke pohrane te QUIRE_COLLAB_URL i QUIRE_COLLAB_SIGNING_KEY koji pokazuju na uslugu collab pratećeg poslužitelja. QUIRE_REPORT_DATABASE_URL pripada fizičkoj bazi navedenoj u DATABASE_URL. Za svaku dodatnu registriranu bazu dodajte vlastiti URL veze quire_report u okruženja web-sloja i radnika, a zatim u konzoli platforme registrirajte naziv varijable kao env:NAME. Analitika se isključuje uz pogrešku ako nedostaje URL izvješća te baze.
  3. Na pratećem poslužitelju pokrenite docker/compose.yaml bez usluge web i uz isti docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migracije se ondje pokreću prije aktivacije svakog uvođenja na Vercel.
  4. Uvedite aplikaciju. Ako se konfiguracija odbije, zapis funkcije počinje porukom „The web tier did not start on vercel” i navodi svaku postavku koju treba promijeniti.

Nadogradnja

Najprije migrirajte s pratećeg poslužitelja, zatim aktivirajte novo uvođenje na Vercelu, pa postupno uvedite radnike pratećeg poslužitelja: redoslijed je opisan u upgrade.md. Trenutno vraćanje na prethodnu verziju u Vercelu vraća samo kod i uvijek je sigurno unutar jednog izdanja.

Navigacija

Upišite za pretraživanje…

↑↓ kretanje↵ odabirEsc zatvaranje