Прескокни до содржината

Веб-слојот на Vercel

Извршете го веб-слојот на Quire на Vercel со придружен работник.

Прикажи како Markdown

Дизајнот е docs/architecture/23-ops.md оддел 5. Vercel го извршува само веб-слојот. Сето друго работи на придружен домаќин што го водите, и тоа не е изборно.

Состојба во ова издание

Конфигурацијата е поставена (apps/web/vercel.json, претходната поставка vercel на Nitro и проверките при стартување). Vercel бара споделено складирање датотеки (QUIRE_STORAGE_DRIVER=s3 или azure), драјвер во реално време што работи низ инстанци на функции (QUIRE_REALTIME_DRIVER=sse или centrifugo) и давател за е-пошта преку HTTP. Без нив веб-слојот одбива да стартува и неговиот дневник го наведува секоја поставка што недостасува.

Делови

Дел Каде работи
web Vercel Functions, Bun runtime: страници, REST, MCP, LTI, примени веб-куки
worker, scheduler, collab, content Придружен домаќин: Fly, Railway, ECS или вашиот сопствен Docker-домаќин со docker/compose.yaml
Postgres Надворешен, зад собирник за трансакции: Neon, Supabase или RDS со PgBouncer
Датотеки S3 или R2. Нема постојан диск
Позадински работи Наредени со pg-boss внатре во трансакцијата на барањето, извршени од придружениот работник. Со QUIRE_QUEUE_DRIVER=vercel на придружениот работник, лесните работи (неизредени известувања и испораки на веб-куки) минуваат низ Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), така што собраниот Postgres не се допирува постојано за нив
Повторувачки работи Придружениот распоредувач. Нема Vercel Cron-патека, бидејќи cron што врши работа внатре во функција истечува
Следење OpenTelemetry кон вашиот колектор, OTEL_EXPORTER_OTLP_ENDPOINT

Што оваа цел не може да прави

Веб-слојот ги проверува овие при стартување и одбива, наведувајќи секој проблем, наместо да не успее подоцна кај првата е-пошта што никогаш не се испраќа:

  • Нема SMTP. Vercel го блокира излезниот SMTP. Поставете QUIRE_EMAIL_PROVIDER_CONFIG на давател преку HTTP (Postmark, SES, Mailgun, SendGrid или Resend). QUIRE_SMTP_URL е одбиен.
  • Нема локален диск. QUIRE_STORAGE_DRIVER=local е одбиен.
  • Нема споделена меморија меѓу повиците. QUIRE_REALTIME_DRIVER=inprocess е одбиен. Настани испратени од серверот се ограничени на временскиот лимит на функцијата; клиентот се поврзува повторно со курсор, така што ниеден настан не се губи, но присуството не е достапно.
  • Врзаните бази на податоци на закупец се ограничени на околу осум, бидејќи секоја од нив е уште еден базен за поврзување во средина што не може да ги споделува базените.

Деплојување

  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 и во веб- и во работничката средина, па регистирајте го името на нејзината променлива на средината како env:NAME во конзолата на платформата. Аналитиката не успева ако URL-то за извештаи на таа база недостасува.
  3. На придружениот домаќин, извршете ја docker/compose.yaml без услугата web, со истиот docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Миграциите се извршуваат таму, пред секоја Vercel-дистрибуција да биде промовирана.
  4. Деплојувајте. Кај одбиена конфигурација, дневникот на функцијата започнува со „The web tier did not start on vercel“ и го наведува секоја поставка што треба да се промени.

Надградба

Прво мигрирајте од придружениот домаќин, потоа промовирајте ја новата Vercel-дистрибуција, па тркалајте ги работниците на придружениот домаќин: редоследот е во upgrade.md. Итното враќање назад на Vercel е враќање на кодот и секогаш е безбедно во рамките на изданието.

Навигација

Внесете текст за пребарување…

↑↓ навигација↵ избериEsc затвори