ຂ້າມໄປຫາເນື້ອຫາ

ຊັ້ນເວັບຢູ່ Vercel

ແລ່ນຊັ້ນເວັບຂອງ Quire ຢູ່ Vercel ພ້ອມ worker ເພື່ອການ.

ເບິ່ງໃນຮູບແບບ Markdown

ດີຊາຍນແມ່ນ docs/architecture/23-ops.md ບົດທີ 5. Vercel ແລ່ນຊັ້ນ ເວັບແຕ່. ສິ່ງທີ່ເຫຼືອທັງໝົດແລ່ນຢູ່ເຊີບເວີເພື່ອການທີ່ທ່ານດຳເນີນ ແລະມັນບໍ່ແມ່ນທາງເລືອກ.

ສະຖານະໃນສະບັບນີ້

ການຕັ້ງຄ່າຢູ່ໃນລະບົບແລ້ວ (apps/web/vercel.json, preset vercel ຂອງ Nitro ແລະການກວດສອບການເລີ່ມ). Vercel ຕ້ອງການການເກັບ ໄຟລ໌ທີ່ແບ່ງປັນ (QUIRE_STORAGE_DRIVER=s3 ຫຼື azure), ແຂກຮັບຊົງ realtime ທີ່ເຮັດວຽກຂ້າມ function instances (QUIRE_REALTIME_DRIVER=sse ຫຼື centrifugo) ແລະ ຜູ້ໃຫ້ບໍລິການອີເມວ HTTP. ໂດຍບໍ່ມີພວກມັນ ຊັ້ນເວັບປະຕິເສດການເລີ່ມ ແລະບັນທຶກຂອງມັນລະບຸການຕັ້ງຄ່າ ແຕ່ລະອັນທີ່ຂາດ.

ອັນລວມຕ່າງໆ

ອັນລວມ ບ່ອນທີ່ມັນແລ່ນ
web Vercel Functions, Bun runtime: ໜ້າ, REST, MCP, LTI, webhooks ທີ່ໄດ້ຮັບ
worker, scheduler, collab, content ເຊີບເວີເພື່ອການ: Fly, Railway, ECS, ຫຼື Docker host ຂອງທ່ານເອງກັບ docker/compose.yaml
Postgres ພາຍນອກ, ຢູ່ເບື້ອງຫຼັງ transaction pooler: Neon, Supabase, ຫຼື RDS ກັບ PgBouncer
ໄຟລ໌ S3 ຫຼື R2. ບໍ່ມິດິດຖະຫນົນຖາວອນ
ງານພື້ນຫຼັງ ບັນທຶກເຂົ້າ queue ດ້ວຍ pg-boss ພາຍໃນ transaction ຂອງຄຳຮ້ອງຂໍ, ແລ່ນໂດຍ worker ເພື່ອການ. ດ້ວຍ QUIRE_QUEUE_DRIVER=vercel ໃນ worker ເພື່ອການ ງານເບົາໆ (ການແຈ້ງເຕືອນ ແລະການສົ່ງ webhook ທີ່ບໍ່ມີລຳດັບ) ໄປຜ່ານ Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) ດັ່ງນັ້ນ Postgres ທີ່ປົກຄຸມບໍ່ຖືກເອີ້ນສຳລັບພວກມັນ
ງານຊ້ຳເວລາ Scheduler ເພື່ອການ. ບໍ່ມີເສັ້ນທາງ Vercel Cron ເພາະ cron ທີ່ເຮັດງານພາຍໃນ function ຈະໝົດເວລາ
ການຕິດຕາມ 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 ຖືກປະຕິເສດ. Server-sent events ຖືກເກນໄວ້ທີ່ timeout ຂອງ function; clientເຊື່ອມຕໍ່ຄືນດ້ວຍ cursor ດັ່ງນັ້ນບໍ່ມີເຫດການໃດສູນ ແຕ່ການມີຕົວຢູ່ບໍ່ສາມາດໃຊ້ໄດ້.
  • ຖານຂໍ້ມູນ tenant ທີ່ຖືກ pin ຖືກຈຳກັດ ເທົ່າກັບປະມານແປດ ແຫ່ງ ເພາະແຕ່ລະແຫ່ງແມ່ນ connection pool ໜຶ່ງອີກໃນສະພາບ ແວດລ້ອມທີ່ບໍ່ສາມາດແບ່ງປັນ pools ໄດ້.

ການນຳສົ່ງ

  1. ສ້າງໂຄງການ Vercel ຈາກ repo ດ້ວຍ Root Directory apps/web. apps/web/vercel.json ຕັ້ງຄຳສັ່ງຕິດຕັ້ງ ແລະສ້າງ (NITRO_PRESET=vercel) ແລະບໍລິການ /sw.js ໂດຍບໍ່ມີ cache.
  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 (ທີ່ຢູ່ຂອງ pooler), 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 ລະບຸ. ສຳລັບຖານຂໍ້ມູນທີ່ລົງທະບຽນເພີ່ມເຕີມ ແຕ່ລະແຫ່ງ ເພີ່ມ URL ການເຊື່ອມຕໍ່ quire_report ຂອງມັນເອງ ເຂົ້າສະພາບແວດລ້ອມ web ແລະ worker ທັງສອງ ຈາກນັ້ນລົງທະບຽນ ຊື່ຕົວແປສະພາບແວດລ້ອມຂອງມັນເປັນ env:NAME ໃນ console ຂອງ ເພລຟອມ. ການວິເຄາະລົ້ມແຫຼວໂດຍປິດຖ້າ URL ລາຍງານຂອງຖານ ຂໍ້ມູນນັ້ນຂາດ.
  3. ຢູ່ເຊີບເວີເພື່ອການ ແລ່ນ docker/compose.yaml ໂດຍບໍ່ມີບໍລິການ web ກັບ docker/.env ດຽວກັນ:
    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” ແລະລາຍຊື່ການຕັ້ງຄ່າ ແຕ່ລະອັນທີ່ຈະປ່ຽນ.

ການອັບເດດ

ຍ້າຍຈາກເຊີບເວີເພື່ອການກ່ອນ, ຈາກນັ້ນຍົກການສົ່ງ Vercel ໃໝ່ ຂຶ້ນ, ຈາກນັ້ນແກວງ workers ຂອງເພື່ອການ: ລຳດັບຢູ່ໃນ upgrade.md. ການກັບຄືນທັນທີຂອງ Vercel ແມ່ນການກັບ ຄືນລະຫັດ ແລະປອດໄພສະເໝີພາຍໃນສະບັບໜຶ່ງ.

ການນຳທາງ

ພິມເພື່ອຄົ້ນຫາ…

↑↓ ນຳທາງ↵ ເລືອກEsc ປິດ