---
title: "Verkon palvelutaso Vercelissä"
description: "Suorita Quiren verkkopalvelutaso Vercelissä rinnakkaistyöntekijäpalvelimen kanssa."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Verkon palvelutaso Vercelissä

<span id="the-web-tier-on-vercel"></span>

Rakenne kuvataan tiedoston `docs/architecture/23-ops.md` kohdassa 5. Vercel suorittaa vain verkkopalvelutason. Kaikki muu suoritetaan ylläpitämälläsi rinnakkaispalvelimella, joka on välttämätön.

## Tämän julkaisun tila <!--quire:status-in-this-release-->

Asetukset ovat valmiina (`apps/web/vercel.json`, Nitro-esiasetus `vercel` ja käynnistystarkistukset). Vercel edellyttää jaettua tiedostotallennusta (`QUIRE_STORAGE_DRIVER=s3` tai `azure`), funktiokopioiden välillä toimivaa reaaliaikaisuusajuria (`QUIRE_REALTIME_DRIVER=sse` tai `centrifugo`) ja HTTP-sähköpostipalvelua. Jos jokin puuttuu, verkkopalvelutaso kieltäytyy käynnistymästä ja lokissa nimetään puuttuvat asetukset.

## Osat <!--quire:the-pieces-->

| Osa | Suorituspaikka |
| --- | --- |
| `web` | Vercel Functions, Node-ympäristö: sivut, REST, MCP, LTI ja vastaanotetut webhookit |
| `worker`, `scheduler`, `collab`, `content` | Rinnakkaispalvelin: Fly, Railway, ECS tai oma Docker-isäntä tiedostolla `docker/compose.yaml` |
| Postgres | Ulkoinen, tapahtumapoolerin takana: Neon, Supabase tai RDS ja PgBouncer |
| Tiedostot | S3 tai R2. Pysyvää levyä ei ole. |
| Taustatyöt | Lisätään pg-boss-jonoon pyynnön kirjoitustapahtuman yhteydessä ja suoritetaan rinnakkaistyöntekijällä. Kun rinnakkaistyöntekijän `QUIRE_QUEUE_DRIVER=vercel`, kevyet työt (järjestämättömät ilmoitukset ja webhook-toimitukset) kulkevat Vercel Queuesin kautta (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`), jolloin yhteysvälittäjän Postgres-tietokantaa ei haeta niiden vuoksi. |
| Toistuvat työt | Rinnakkaispalvelimen ajastin. Vercel Cron -reittiä ei ole, koska funktion sisällä tehtävä työ aikakatkaistaan. |
| Jäljitys | OpenTelemetry omalle kerääjälle, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## Mitä tässä kohteessa ei voi tehdä <!--quire:what-this-target-cannot-do-->

Verkkopalvelutaso tarkistaa nämä käynnistyessään ja kieltäytyy käynnistymästä. Näin se ilmoittaa puuttuvista asetuksista etukäteen eikä vasta silloin, kun sähköposti jää lähettämättä:

- **SMTP ei ole käytettävissä.** Vercel estää lähtevän SMTP-liikenteen. Aseta `QUIRE_EMAIL_PROVIDER_CONFIG` HTTP-palveluntarjoajalle (Postmark, SES, Mailgun, SendGrid tai Resend). `QUIRE_SMTP_URL` hylätään.
- **Paikallinen levy ei ole käytettävissä.** `QUIRE_STORAGE_DRIVER=local` hylätään.
- **Kutsut eivät jaa muistia.** `QUIRE_REALTIME_DRIVER=inprocess` hylätään. Palvelimelta lähetettävien tapahtumien virta rajoittuu funktion aikakatkaisuaikaan. Asiakas yhdistää uudelleen kursorin avulla, joten tapahtumia ei katoa mutta läsnäolotietoja ei voi käyttää.
- **Kiinnitettyjen vuokraajatietokantojen määrä** on rajoitettu noin kahdeksaan, koska kutakin kohti tarvitaan lisäyhteyspooli eikä ympäristö salli poolien jakamista.

## Käyttöönotto <!--quire:deploying-->

1. Luo Vercel-projekti arkistosta ja aseta **Root Directory** arvoon `apps/web`. `apps/web/vercel.json` määrittää asennus- ja koontikomennot (`NITRO_PRESET=vercel`) ja palvelee `/sw.js`-tiedostoa ilman välimuistia.
2. Määritä ympäristömuuttujat. Syötä vähintään `docker/.env.example`-tiedostosta: `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`, `DATABASE_URL` (yhteysvälittäjän osoite), `QUIRE_REPORT_DATABASE_URL`, `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`, `QUIRE_EMAIL_PROVIDER_CONFIG`, `QUIRE_MAIL_FROM`, tallennusasetukset sekä rinnakkaispalvelimen collab-palveluun osoittavat `QUIRE_COLLAB_URL` ja `QUIRE_COLLAB_SIGNING_KEY`. `QUIRE_REPORT_DATABASE_URL` koskee fyysistä tietokantaa, johon `DATABASE_URL` osoittaa. Lisää jokaiselle rekisteröidylle lisätietokannalle oma `quire_report`-yhteysosoite verkkopalvelun ja työntekijän ympäristöihin. Rekisteröi sitten sen ympäristömuuttujan nimi alustan hallintapaneelissa muodossa `env:NAME`. Analytiikkapyyntö hylätään, jos kyseisen tietokannan raporttiyhteysosoite puuttuu.
3. Käynnistä rinnakkaispalvelimella tiedoston `docker/compose.yaml` palvelut ilman `web`-palvelua ja käytä samaa `docker/.env`-tiedostoa:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   Migraatiot suoritetaan siellä ennen kunkin Vercel-julkaisun käyttöönottoa.
4. Julkaise. Jos asetukset hylätään, funktion loki alkaa tekstillä "The web tier did not start on vercel" ja luettelee muutettavat asetukset.

## Päivittäminen <!--quire:upgrading-->

Suorita migraatiot ensin rinnakkaispalvelimella, ota sitten uusi Vercel-julkaisu käyttöön ja päivitä lopuksi palvelimen työntekijät [päivitysoppaan](/fi/ops/upgrade/) järjestyksessä. Vercelin välitön palautus aiempaan versioon palauttaa koodin ja on aina turvallista saman julkaisun sisällä.

Source: https://docs.quirelms.com/fi/ops/vercel/index.mdx
