Mandehana any amin'ny votoaty fototra

Ny sehatra ve-dalana ao amin'ny Cloudflare Workers

Mandeha amin'ny Cloudflare Workers ny sehatra ve-dalana fohy an'i Quire.

Ny drafitra dia ao amin’ny docs/architecture/23-ops.md singa 6. Ny sehatra ve-dalana fohy no asan’ny Workers. Tsy ao anatin’ny tetibola ny fahafahan’ny Workers mitovy amin’ny hafa (PRD singa 12): ny tsy afakany io sehatra io dia acomina rehefa manomboka, amin’ny anarana.

Toe-javatra amin’ity fametrahana ity

Efa misy ny fanitsakitsahana (apps/web/wrangler.jsonc, ny modely Nitro cloudflare-module, ny fifandraisan’ny Hyperdrive ary ny fanamarinana fiaingana). Mila tahirin-rakitra mifanaraka amin’ny S3 ho an’ny R2 ny Worker (QUIRE_STORAGE_DRIVER=s3), mpitondra mivantana eo amin’ny fangatahana tsirairay (QUIRE_REALTIME_DRIVER=durable_objects na centrifugo), cache zaraina (QUIRE_CACHE_DRIVER=postgres na valkey) ary mpanome mailaka HTTP. Tsy misy izany dia tsy manomboka ny Worker ary milaza ao amin’ny log ny filàlana tsirairay. Ny mpitondra Durable Objects dia client an’ny Worker mivantana ao amin’apps/realtime-worker (Durable Object iray isaky ny kanala ho an’ny fanzarana, fisian’ny olona sy ny tantara, iray isaky ny olona ho an’ny fijanonana); fampandrafina amin’ny anaraka, araka ny ambany, na ampiasao ny Centrifugo.

Ny ampahany

Ampahany Amin’ny Cloudflare
web Worker misy nodejs_compat
Postgres Ivelany, atrapany amin’ny alàlan’ny Hyperdrive: HYPERDRIVE ho an’ny andraikin’ny fampiharana, REPORT_HYPERDRIVE ho an’ny andraikin’ny tatitra ao amin’io data-by ara-batana io. Ny sehatra ve-dalana maka ny fehezan’ny fifandraisana tsirairay ho DATABASE_URL ary QUIRE_REPORT_DATABASE_URL rehefa manomboka
Rakitra R2, amin’ny alàlan’ny API S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); ny fifandraisana FILES no mampifandray ny bucket
Asa anaty pg-boss amin’ny alàlan’ny Hyperdrive raha tsy maintsy alaina amin’ny fanoratana ny asa. Amin’ny QUIRE_QUEUE_DRIVER=cloudflare eo amin’ny mpandray anjara asa, ny asa maivana (fandefasana fanambarana sy webhook tsy voafaritra) dia mandeha amin’ny Cloudflare Queues fa tsy izany, ka tsy misy fanadihadiana Postgres ho any. Asan’ny mpandray anjara asa ny roa.
Mivantana Ny Worker mivantana, apps/realtime-worker, amin’ny Durable Objects
worker, scheduler, collab, content, ClamAV, Gotenberg, ffmpeg Mpandray anjara container. Tsy afaka miasa amin’ny Worker izy.
Fanaraha-maso Fijerena ny Worker, apetraka ao amin’ny wrangler.jsonc

Ny REPORT_HYPERDRIVE no manome ny andraikin’ny tatitra ho an’ny data-by ara-batana nosoratan’ny HYPERDRIVE. Tsy mampiasa mpanjifa voafaritra amin’ny data-by ara-batana fanampiny io sehatra io, araka ny lazaina ambany.

Inona no tsy afakany io sehatra io

Acomina amin’ny fiaingana, misy ny olana tsirairay aseho amin’ny fotoana iray:

  • Tsy misy SMTP. Ampiasao mpanome HTTP ao amin’ny QUIRE_EMAIL_PROVIDER_CONFIG.
  • Tsy misy karatra anaty. Tsy maintsy manambara tahirin-entana ny QUIRE_STORAGE_DRIVER.
  • Tsy misy mivantana na cache ao anaty. Tsy mizara fizotra ny Workers eo amin’ny fangatahana, ka acomina ny QUIRE_REALTIME_DRIVER=inprocess ary ny QUIRE_CACHE_DRIVER=memory.
  • Tsy misy ClamAV, Gotenberg na ffmpeg ao amin’ny Worker. Acomina ny CLAMAV_URL, GOTENBERG_URL ary FFMPEG_PATH apetraka eo amin’ny Worker; metrahao eo amin’ny mpandray anjara asa.
  • Tsy misy organisasa data-by manokana. Voafaritra amin’ny fotoana fampandrafana ny fifandraisana Hyperdrive an’ny Worker, ka misy pejy tsy misy azo ampiasaina eto ho an’ny organisasa misy data-by manokana. Ampiasao amin’ny Compose na Vercel azy.

Irery koa tsy acomina fa tsy maintsy fantatra: tsy miasa amin’ny Workers ny fametrahana aloha sy ny famoronana static mihintsana, na inona na inona no lazain’ny torolalana rindrina. Isaky ny fangatahana no manao ny lalan-dalana tsirairay.

Amin’io sehatra io, fohy ao ny transaction ary aza mijanona azy mandritra ny antso an-tserasera: manakorontany ny toe-javan’ny session ny Hyperdrive rehefa miverina ao amin’ny pool ny fifandraisana, ka metrahina isaky ny transaction ny toe-javan’ny mpanjifa.

Fampandrafiana

  1. Mamorona ny zavatra:
    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-files
    bun run --bun wrangler queues create quire-jobs
    Apetraho ny ID Hyperdrive roa ao amin’ny apps/web/wrangler.jsonc.
  2. Metrahana ny teny miafina, iray iray amin’ny bun run --bun wrangler secret put <NAME> avy amin’ny apps/web: 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. Ny filàlana tsotra (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) dia ao amin’ny vars.
  3. Fampandrafina avy amin’ny apps/web:
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. Fampandrafina ny Worker mivantana, amin’ny QUIRE_REALTIME_WORKER_SECRET an’ny sehatra ve-dalana ary ny teny miafina tokeniny ho QUIRE_REALTIME_TOKEN_SECRET (ny sehatra ve-dalana dia manamarina ny token mivantana amin’ny QUIRE_REALTIME_TOKEN_SECRET manokany, na amin’ny QUIRE_SECRET_KEY raha tsy misy, ka ampiasao izay ampiasany), ary metrahana QUIRE_REALTIME_WORKER_URL eo amin’ny sehatra ve-dalana amin’ny adresy any:
    cd apps/realtime-worker
    bun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRET
    bun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRET
    bun run --bun wrangler deploy
  5. Ho an’ny asa maivana amin’ny Cloudflare Queues, mamorona queue iray isaky ny queue maivana ary metrahana ireto eo amin’ny mpandray anjara asa (token API misy fahafahana mamaky sy manoratra Queues):
    bun run --bun wrangler queues create quire-events-notifications
    bun run --bun wrangler queues create quire-events-notifications-dead
    bun run --bun wrangler queues create quire-events-webhooks
    bun run --bun wrangler queues create quire-events-webhooks-dead
    QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, ary QUIRE_QUEUE_PREFIX raha tsy quire-.
  6. Mandeha amin’ny mpandray anjara toy ny amin’ny torolalana Vercel, dingana 3. Asany ny fiovana ambadika ao indray, alohan’ny fampandrafiana Worker tsirairay.

Miseho ao amin’ny bun run --bun wrangler tail ny fanitsakitsahana acomina toy ny “The web tier did not start on cloudflare”, arahin’ny filàlana tsirairay tokony hovanafina.

Fifandehanana

Soraty hanadihana…

↑↓ mandeha↵ safidioEsc akano