შიგთავსზე გადასვლა

ვებ-დონე Vercel-ზე

Quire-ის ვებ-დონის გაშვება Vercel-ზე თანმხლები worker-ით.

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 ფუნქციები, Node გაშვება: გვერდები, REST, MCP, LTI, მიღებული ვებჰუკები
worker, scheduler, collab, content თანმხლები ჰოსტი: Fly, Railway, ECS ან თქვენი საკუთარი Docker ჰოსტი docker/compose.yaml-ით
Postgres გარე, ტრანზაქციის პულერის უკან: Neon, Supabase ან RDS PgBouncer-ით
ფაილები S3 ან R2. მუდმივი დისკი არ არის
ფონური სამუშაოები რიგში მოთხოვნის ტრანზაქციის შიგნით pg-boss-ით, გაშვებული თანმხლები worker-ით. QUIRE_QUEUE_DRIVER=vercel-ით თანმხლებ worker-ზე მსუბუქი სამუშაოები (ურიგო შეტყობინებებისა და ვებჰუკის მიწოდებები) Vercel რიგებით მიდის (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), ასე რომ გაერთიანებული Postgres მათთვის არ იკითხება
განმეორებადი სამუშაოები თანმხლები განრიგი. Vercel 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 პროექტი რეპოზიტორიიდან საკუთარი დირექტორიით 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 შეერთების URL ვების და worker-ის გარემოებში, შემდეგ დაარეგისტრირეთ მისი გარემოს ცვლადის სახელი, როგორც 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. გაუშვით. უარყოფილ კონფიგურაციაზე ფუნქციის ჟურნალი იწყება „ვებ-დონე vercel-ზე არ გაშვებულა“-თი და ჩამოთვლის თითოეულ შესაცვლელ პარამეტრს.

განახლება

მიგრაცია ჯერ თანმხლები ჰოსტიდან, შემდეგ ახალი Vercel გაშვების დაწინაურება, შემდეგ თანმხლების worker-ების გადახვევა: თანმიმდევრობა upgrade.md-ში. Vercel-ის მყისიერი უკან დაბრუნება კოდის უკან დაბრუნებაა და ყოველთვის უსაფრთხოა რელიზის ფარგლებში.

ნავიგაცია

ძიებისთვის აკრიფეთ…

↑↓ ნავიგაცია↵ არჩევაEsc დახურვა