Dizayn docs/architecture/23-ops.md sənədinin 6-cı bölməsindədir. Workers ixtisar edilmiş web qatını işlədir. Workers-də xüsusiyyətlərin tam uyğunluğu əhatə dairəsinə daxil deyil (PRD bölmə 12): bu hədəfin edə bilmədiyi xüsusiyyətlər başlarkən adları ilə rədd edilir.
Bu buraxılışın vəziyyəti
Konfiqurasiya hazırdır (apps/web/wrangler.jsonc, cloudflare-module Nitro preset-i, Hyperdrive körpüsü və başlanğıc yoxlamaları). Worker üçün R2 üçün S3 ilə uyğun saxlama (QUIRE_STORAGE_DRIVER=s3), sorğular arasında real vaxt sürücüsü (QUIRE_REALTIME_DRIVER=durable_objects və ya centrifugo), paylaşılan keş (QUIRE_CACHE_DRIVER=postgres və ya valkey) və HTTP e-poçt provayderi lazımdır. Bunlar olmasa, Worker başlamır və jurnalında çatışmayan parametrlərin adını bildirir. Durable Objects sürücüsü apps/realtime-worker real vaxt Worker-in client-idir (yayım, iştirak və tarixçə üçün kanal başına bir Durable Object, əlaqə kəsilməsi üçün şəxs başına bir); aşağıda göstərildiyi kimi yanaşı yerləşdirin və ya Centrifugo işlədin.
Hissələr
Hissə
Cloudflare-də
web
nodejs_compat olan Worker
Postgres
Hyperdrive vasitəsilə xarici: tətbiq rolu üçün HYPERDRIVE, eyni fiziki bazadakı hesabat rolu üçün REPORT_HYPERDRIVE. Başlayanda web qatı hər bağlantı sətrini DATABASE_URL və QUIRE_REPORT_DATABASE_URL-ə köçürür
Fayllar
S3 API-si vasitəsilə R2 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); FILES bağlaması bucket-i qoşur
Fon tapşırıqları
Yazma ilə eyni vaxtda növbəyə qoyulmalı tapşırıqlar üçün Hyperdrive üzərindən pg-boss. Əlavə worker-də QUIRE_QUEUE_DRIVER=cloudflare olduqda yüngül işlər (sıralanmamış bildiriş və vebhuk çatdırılması) Cloudflare Queues ilə ötürülür, beləliklə, Postgres bu işlər üçün sorğulanmır. Əlavə worker hər ikisini icra edir
Real vaxt
Durable Objects olan apps/realtime-worker real vaxt Worker-i
Əlavə konteyner hostu. Worker bunları işlədə bilməz
İzləmə
wrangler.jsonc-də aktiv edilmiş Workers observability
REPORT_HYPERDRIVE, HYPERDRIVE ilə adlandırılmış fiziki bazanın hesabat rolunu təmin edir. Aşağıda izah edildiyi kimi, bu hədəf əlavə fiziki bazalara bağlanmış tenant-lara xidmət etmir.
Bu hədəfin edə bilmədikləri
Başlanğıcda rədd edilir və bütün problemlər birlikdə sadalanır:
SMTP yoxdur.QUIRE_EMAIL_PROVIDER_CONFIG daxilində HTTP provayderi istifadə edin.
Lokal disk yoxdur.QUIRE_STORAGE_DRIVER obyekt saxlamanı göstərməlidir.
Prosesdaxili real vaxt və ya keş yoxdur. Workers sorğular arasında yaddaş paylaşmır, buna görə QUIRE_REALTIME_DRIVER=inprocess və QUIRE_CACHE_DRIVER=memory rədd edilir.
Worker daxilində ClamAV, Gotenberg və ya ffmpeg yoxdur. Worker-də təyin olunan CLAMAV_URL, GOTENBERG_URL və FFMPEG_PATH rədd edilir; bunları əlavə worker-də təyin edin.
Ayrılmış verilənlər bazalı təşkilat yoxdur. Worker-in Hyperdrive bağlamaları yerləşdirmə zamanı sabitdir, ona görə öz verilənlər bazası olan təşkilata “burada əlçatan deyil” səhifəsi göstərilir. Compose və ya Vercel-dən xidmət edin.
Rədd edilməyən, lakin bilinməli olan bir məqam: Workers-də prerender və artımlı statik yeniləmə işləmir, framework sənədləri nə desə də. Hər marşrut hər sorğuya görə render edilir.
Bu hədəfdə tranzaksiyaları qısa saxlayın və şəbəkə çağırışı ərzində açıq saxlamayın: bağlantı pool-a qayıdanda Hyperdrive sessiya vəziyyətini sıfırlayır, buna görə tenant konteksti hər tranzaksiyada təyin edilir.
Yerləşdirmə
Resursları yaradın:
bun run --bun wrangler hyperdrive create quire-app --connection-string="postgres://quire_app:...@db.example.com:5432/quire"bun run --bun wrangler hyperdrive create quire-report --connection-string="postgres://quire_report:...@db.example.com:5432/quire"bun run --bun wrangler r2 bucket create quire-filesbun run --bun wrangler queues create quire-jobs
İki Hyperdrive ID-sini apps/web/wrangler.jsonc faylına yerləşdirin.
Secret-ləri bir-bir bun run --bun wrangler secret put <NAME> ilə apps/web qovluğundan təyin edin: QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, QUIRE_EMAIL_PROVIDER_CONFIG, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, QUIRE_COLLAB_SIGNING_KEY, QUIRE_REALTIME_WORKER_SECRET. Adi parametrləri (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) vars-a daxil edin.
apps/web qovluğundan yığın və yerləşdirin:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Real vaxt Worker-i web qatının QUIRE_REALTIME_WORKER_SECRET və onun token secret-i QUIRE_REALTIME_TOKEN_SECRET ilə yerləşdirin (web qatı real vaxt tokenlərini öz QUIRE_REALTIME_TOKEN_SECRET ilə, bu yoxdursa QUIRE_SECRET_KEY ilə imzalayır; istifadə etdiyi dəyəri götürün). Web qatında QUIRE_REALTIME_WORKER_URL-i onun ünvanına təyin edin:
cd apps/realtime-workerbun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRETbun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRETbun run --bun wrangler deploy
Cloudflare Queues üzərində yüngül tapşırıqlar üçün hər yüngül növbəyə bir queue yaradın və bunları əlavə worker-də təyin edin (Queues oxuma və yazma icazəli API tokeni):
bun run --bun wrangler queues create quire-events-notificationsbun run --bun wrangler queues create quire-events-notifications-deadbun run --bun wrangler queues create quire-events-webhooksbun run --bun wrangler queues create quire-events-webhooks-dead
QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN və QUIRE_QUEUE_PREFIX parametrini (quire- olmadıqda) təyin edin.
Əlavə hostu Vercel təlimatının 3-cü addımında göstərildiyi kimi başladın. Hər Worker yerləşdirilməsindən əvvəl miqrasiyalar orada işləyir.
Rədd edilmiş konfiqurasiya bun run --bun wrangler tail daxilində “The web tier did not start on cloudflare” və dəyişdirilməli parametrlərin siyahısı ilə görünür.