---
title: "שכבת האינטרנט ב-Vercel"
description: "הפעילו את שכבת האינטרנט של Quire ב-Vercel עם worker נלווה."
image: "https://docs.quirelms.com/og.png"
---

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

# שכבת האינטרנט ב-Vercel

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

התכנון נמצא בסעיף 5 של `docs/architecture/23-ops.md`. Vercel מפעיל רק את שכבת
האינטרנט. כל השאר פועל במארח נלווה שאתם מנהלים, והוא הכרחי.

## מצב בגרסה זו <!--quire:status-in-this-release-->

התצורה מוכנה (`apps/web/vercel.json`, קביעת Nitro בשם `vercel` ובדיקות ההפעלה).
Vercel זקוק לאחסון קבצים משותף (`QUIRE_STORAGE_DRIVER=s3` או `azure`), ל-driver
של realtime שעובד בין מופעי function (`QUIRE_REALTIME_DRIVER=sse` או `centrifugo`)
ולספק דוא״ל דרך HTTP. בלי אלה שכבת האינטרנט מסרבת לעלות והיומן שלה מציין כל הגדרה
חסרה.

## הרכיבים <!--quire:the-pieces-->

| רכיב | היכן פועל |
| --- | --- |
| `web` | Vercel Functions, סביבת Node: עמודים, REST, MCP, LTI ו-webhooks נכנסים |
| `worker`, `scheduler`, `collab`, `content` | מארח נלווה: Fly,‏ Railway,‏ ECS או מארח Docker משלכם עם `docker/compose.yaml` |
| Postgres | חיצוני, מאחורי מאגר חיבורים לטרנזקציות: Neon,‏ Supabase או RDS עם PgBouncer |
| קבצים | S3 או R2. אין דיסק קבוע |
| עבודות רקע | נכנסות ל-pg-boss בתוך הטרנזקציה של הבקשה ומופעלות בידי העובד הנלווה. כאשר `QUIRE_QUEUE_DRIVER=vercel` מוגדר בעובד הנלווה, העבודות הקלות (שליחות notification ו-webhook שאינן לפי סדר) עוברות דרך Vercel Queues (`VERCEL_QUEUE_REGION`,‏ `VERCEL_QUEUE_TOKEN`), ולכן Postgres שבמאגר החיבורים אינו נשאל עליהן שוב ושוב |
| עבודות מחזוריות | המתזמן הנלווה. אין נתיב Vercel Cron, כי cron שמבצע עבודה בתוך function פג זמנו |
| מעקב | OpenTelemetry אל ה-collector שלכם, דרך `OTEL_EXPORTER_OTLP_ENDPOINT` |

## מה יעד זה אינו יכול לעשות <!--quire:what-this-target-cannot-do-->

שכבת האינטרנט בודקת זאת בעת ההפעלה ומסרבת, תוך ציון כל הבעיות, במקום להיכשל מאוחר
יותר כשדוא״ל אינו נשלח:

- **אין SMTP.** Vercel חוסם SMTP יוצא. הגדירו את `QUIRE_EMAIL_PROVIDER_CONFIG`
  לספק HTTP (Postmark,‏ SES,‏ Mailgun,‏ SendGrid או Resend).‏ `QUIRE_SMTP_URL` נדחה.
- **אין דיסק מקומי.** `QUIRE_STORAGE_DRIVER=local` נדחה.
- **אין זיכרון משותף בין הפעלות.** `QUIRE_REALTIME_DRIVER=inprocess` נדחה. אירועים
  שנשלחים בזרם מוגבלים לזמן של ה-function; הלקוח מתחבר מחדש עם סמן, כך שאירוע לא
  הולך לאיבוד, אך נוכחות אינה זמינה.
- **מסדי נתונים מוצמדים של tenants מוגבלים** לכשמונה, מפני שכל אחד מוסיף מאגר
  חיבורים נוסף בסביבה שאינה יכולה לשתף מאגרים.

## פריסה <!--quire:deploying-->

1. צרו פרויקט Vercel מהמאגר עם **Root Directory** בשם `apps/web`. הקובץ
   `apps/web/vercel.json` מגדיר פקודות התקנה ובנייה (`NITRO_PRESET=vercel`) ומגיש
   את `/sw.js` ללא מטמון.
2. הגדירו משתני סביבה. מתוך `docker/.env.example`, לפחות:
   `QUIRE_DEPLOY_TARGET=vercel`,‏ `QUIRE_APP_ORIGIN`,‏ `QUIRE_CONTENT_ORIGIN`,‏
   `QUIRE_PLATFORM_DOMAINS`,‏ `QUIRE_SECRET_KEY`,‏ `QUIRE_MASTER_KEY`,‏
   `DATABASE_URL` (כתובת מאגר החיבורים),‏ `QUIRE_REPORT_DATABASE_URL`,‏
   `QUIRE_AUDIT_DATABASE_URL`,‏ `QUIRE_DATABASE_ID`,‏
   `QUIRE_EMAIL_PROVIDER_CONFIG`,‏ `QUIRE_MAIL_FROM`, הגדרות האחסון, וכן
   `QUIRE_COLLAB_URL` ו-`QUIRE_COLLAB_SIGNING_KEY` שמצביעים לשירות collab במארח הנלווה.
   `QUIRE_REPORT_DATABASE_URL` שייך למסד הפיזי שמצוין ב-`DATABASE_URL`. לכל מסד
   נוסף שרשום, הוסיפו כתובת חיבור `quire_report` משלו לסביבות web ו-worker, ואז
   רשמו את שם משתנה הסביבה שלו כ-`env:NAME` במסוף הפלטפורמה. אם חסרה כתובת report
   לאותו מסד, Analytics מפסיק לפעול במקום להציג תוצאות לא אמינות.
3. במארח הנלווה הפעילו את `docker/compose.yaml` ללא שירות `web`, עם אותו `docker/.env`:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   המיגרציות מתבצעות שם לפני קידום כל פריסת Vercel.
4. פרסו. בתצורה שנדחתה יומן ה-function מתחיל ב-"The web tier did not start on vercel"
   ומפרט כל הגדרה שיש לשנות.

## שדרוג <!--quire:upgrading-->

תחילה בצעו migrate במארח הנלווה, אחר כך קדמו את פריסת Vercel החדשה, ולבסוף העבירו
את עובדי המארח הנלווה, לפי הסדר שב-[מדריך השדרוג](/he/ops/upgrade/). חזרה מיידית לאחור
ב-Vercel היא חזרה לאחור של הקוד ותמיד בטוחה בתוך אותה גרסה.

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