Consilium est docs/architecture/23-ops.md sectio 6. Workers stratum textorium
diminutum currunt. Paritas munerum in Workers extra scopum est (PRD sectio 12):
quod haec meta facere non potest cum incipit refuitur, nomine.
Status in hac editione
Dispositio in loco est (apps/web/wrangler.jsonc, praescriptum Nitro
cloudflare-module, pons Hyperdrive et censurae incursionis). Worker
repositionem S3 compatibilem pro R2 desiderat
(QUIRE_STORAGE_DRIVER=s3), ducem temporis realis per petitiones
(QUIRE_REALTIME_DRIVER=durable_objects aut centrifugo), thesaurum communem
(QUIRE_CACHE_DRIVER=postgres aut valkey) et praebitorem epistularum HTTP.
Sine iis Worker recusat incipere et liber eius quamque constitutionem nominat.
Dux Durable Objects est client of Worker temporis realis in
apps/realtime-worker (unum Durable Object per canalem pro dispersione,
praesentia et historia, unum per hominem pro disconnectionibus); eum una, ut
infra, deploye aut Centrifugo utere.
Partes
Pars
In Cloudflare
web
Worker cum nodejs_compat
Postgres
Externus, per Hyperdrive attingitur: HYPERDRIVE pro rola applicationis, REPORT_HYPERDRIVE pro rola commentariorum in iisdem basibus physicalibus. Stratum textorium quamque stringem connectionis in DATABASE_URL et QUIRE_REPORT_DATABASE_URL copiat cum incipit
Filetuli
R2, per suum API S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); vinculum FILES bucket adiungit
Officia post tergum
pg-boss per Hyperdrive cum opus est scribendo in ordinem poni. Cum QUIRE_QUEUE_DRIVER=cloudflare in operario comite, levia officia (traditiones nuntiorum et retextorum non ordinatae) per Cloudflare Queues eunt potius, ita ut Postgres pro iis non interrogetur. Operarius comes utrumque currit
Tempus reale
Worker temporis realis, apps/realtime-worker, cum Durable Objects
Hospes container comitis. Worker ea curere non potest
Vestigatio
Observabilitas Workers, in wrangler.jsonc activata
REPORT_HYPERDRIVE rolam commentariorum pro basibus physicalis a HYPERDRIVE
nominatis praebet. Haec meta inquilinos in basibus physicalis additionalibus
definitos non servit, ut infra describitur.
Quod haec meta facere non potest
Refuitur cum incipit, cum omni problema simul enumerato:
Nullum SMTP. Praebitorem HTTP in QUIRE_EMAIL_PROVIDER_CONFIG utere.
Nullum temporis reale aut thesaurus in processu. Workers nullam memoriam
inter petitiones communicant, ideo QUIRE_REALTIME_DRIVER=inprocess et
QUIRE_CACHE_DRIVER=memory refuuntur.
Nullus ClamAV, Gotenberg aut ffmpeg in Worker.CLAMAV_URL,
GOTENBERG_URL et FFMPEG_PATH in Worker posita refuuntur; ea in operario
comite pone potius.
Nulla collegia basium dedicatarum. Vincula Hyperdrive Worker tempore
deployis fixa sunt, ideo collegium proprias bases datae habens paginam manifestam
“unavailable here” accipit. Ex Compose aut Vercel id serve.
Et una res quae non refuitur sed cognosci debet: praerenderisatio et
regeneratio statica incrementalis in Workers non operantur, quavis documentatione
frameworks dicat. Quaqua via per petitionem redditur.
In hoc meta transactiones breves serva et numquam unam per vocationem retis
contine: Hyperdrive statum sessionis restituit cum connexio in collectorem
reditur, ideo contextus inquilini per transactionem ponitur.
Deploys
Res crea:
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
Duos identificatores Hyperdrive in apps/web/wrangler.jsonc pone.
Arcana pone, unum per tempus cum bun run --bun wrangler secret put <NAME> ex
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. Constitutiones
nuda (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS,
QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) in
vars eunt.
Ex apps/web aedifica et deploye:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Worker temporis realis deploye, cum QUIRE_REALTIME_WORKER_SECRET strati
textorii et eius signo arcano ut QUIRE_REALTIME_TOKEN_SECRET (stratum
textorium signa temporis realis suo proprio QUIRE_REALTIME_TOKEN_SECRET
signat, aut QUIRE_SECRET_KEY cum id non positum est, ideo quod ipse
usurpat utere), et QUIRE_REALTIME_WORKER_URL in strato textorio in eius
addressam pone:
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
Pro levibus officiis in Cloudflare Queues, unum ordinem per levem ordinem
crea et haec in operario comite pone (signum API cum Queues lectione et
scriptura):
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, et QUIRE_QUEUE_PREFIX si non quire-.
Hospitem comitem ut in praecepto Vercel, gradu 3, curre.
Migrationes ibi curriunt, ante quamque deploy Worker.
Dispositio refusa in bun run --bun wrangler tail ut “The web tier did not
start on cloudflare” monstratur, cum singulis constitutionibus mutandis.