ডিজাইন docs/architecture/23-ops.mdৰ section 5-ত। Vercel-ত কেৱল web tier চলে। বাকী সকলো আপুনি চলোৱা সহায়ক host-ত চলে; ই ঐচ্ছিক নহয়।
এই release-ৰ অৱস্থা
Configuration সাজু (apps/web/vercel.json, vercel Nitro preset আৰু startup check)। Vercel-ৰ shared file storage (QUIRE_STORAGE_DRIVER=s3 বা azure), function instance-সমূহৰ মাজত কাম কৰা realtime driver (QUIRE_REALTIME_DRIVER=sse বা centrifugo) আৰু HTTP email provider লাগে। এইবোৰ নাথাকিলে web tier আৰম্ভ হ’বলৈ অস্বীকাৰ কৰে আৰু log-ত প্ৰতিটো অনুপস্থিত setting-ৰ নাম কয়।
অংশবোৰ
| অংশ | ক’ত চলে |
|---|---|
web |
Vercel Functions, Bun runtime: page, REST, MCP, LTI, পোৱা webhook |
worker, scheduler, collab, content |
সহায়ক host: Fly, Railway, ECS অথবা docker/compose.yaml-সহ আপোনাৰ Docker host |
| Postgres | বাহ্যিক, transaction pooler-ৰ পিছত: PgBouncer-সহ Neon, Supabase অথবা RDS |
| File | S3 বা R2। Persistent disk নাই |
| Background job | Request-ৰ transaction-ৰ ভিতৰত pg-boss-ৰে queue কৰি সহায়ক worker-এ চলায়। সহায়ক worker-ত QUIRE_QUEUE_DRIVER=vercel দিলে সৰু job (ক্ৰমবিহীন notification আৰু webhook delivery) Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN)-ৰে যায়; সেয়ে pooled Postgres ইয়াৰ বাবে poll নহয় |
| পুনৰাবৃত্ত job | সহায়ক scheduler। Vercel Cron route নাই, কাৰণ function-ৰ ভিতৰত কাম কৰা cron-ৰ timeout হয় |
| Tracing | আপোনাৰ collector-লৈ OpenTelemetry, OTEL_EXPORTER_OTLP_ENDPOINT |
এই target-এ কি কৰিব নোৱাৰে
পিছত প্ৰথম email নপঠিয়াওতে বিফল হোৱাৰ সলনি, web tier-এ আৰম্ভ হওঁতে এইবোৰ পৰীক্ষা কৰি প্ৰতিটো সমস্যা নামসহ নাকচ কৰে:
- SMTP নাই। Vercel-এ বাহিৰলৈ SMTP block কৰে।
QUIRE_EMAIL_PROVIDER_CONFIGHTTP provider (Postmark, SES, Mailgun, SendGrid বা Resend)-লৈ ছেট কৰক।QUIRE_SMTP_URLনাকচ হয়। - Local disk নাই।
QUIRE_STORAGE_DRIVER=localনাকচ হয়। - Invocation-ৰ মাজত shared memory নাই।
QUIRE_REALTIME_DRIVER=inprocessনাকচ হয়। Server-sent event-ৰ সীমা function timeout; client-এ cursor-সহ পুনৰ সংযোগ কৰে, সেয়ে event নেহেৰায়, কিন্তু presence উপলব্ধ নহয়। - Pinned tenant database সীমিত প্ৰায় আঠটালৈকে, কাৰণ pool ভাগ কৰিব নোৱাৰা environment-ত প্ৰতিটো আন এটা connection pool।
Deploy
- Repository-ৰ পৰা Vercel project সৃষ্টি কৰি Root Directory
apps/webদিয়ক।apps/web/vercel.json-এ install আৰু build command (NITRO_PRESET=vercel) ছেট কৰি/sw.jscache নকৰাকৈ দিয়ে। - Environment variable ছেট কৰক।
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, storage setting, আৰু সহায়ক collab service-লৈ যোৱাQUIRE_COLLAB_URLআৰুQUIRE_COLLAB_SIGNING_KEY।QUIRE_REPORT_DATABASE_URLDATABASE_URL-এ নাম দিয়া physical database-ৰ বাবে। প্ৰতিটো অতিৰিক্ত registered database-ৰ নিজাquire_reportconnection URL web আৰু worker environment-ত যোগ কৰি platform console-ত ইয়াৰ variable nameenv:NAMEৰূপে register কৰক। সেই database-ৰ report URL নাথাকিলে analytics fail closed হয়। - সহায়ক host-ত
docker/compose.yamlwebservice বাদ দি একেটাdocker/.envলৈ চলাওক: প্ৰতিটো Vercel deployment promote কৰাৰ আগতে তাত migration চলে।docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content - Deploy কৰক। Configuration নাকচ হ’লে function log “The web tier did not start on vercel”ৰে আৰম্ভ হৈ সলনি কৰিবলগীয়া প্ৰতিটো setting তালিকাভুক্ত কৰে।
Upgrade
প্ৰথমে সহায়ক host-ৰ পৰা migrate কৰি নতুন Vercel deployment promote কৰক, তাৰ পিছত সহায়ক worker-সমূহ roll কৰক: upgrade.mdত ক্ৰম বৰ্ণনা কৰা হৈছে। Vercel-ৰ তাৎক্ষণিক rollback code rollback আৰু release-ৰ ভিতৰত সদায় নিৰাপদ।