ವಿನ್ಯಾಸವು docs/architecture/23-ops.md ವಿಭಾಗ 5. Vercel ಕೇವಲ ವೆಬ್ ಹಂತವನ್ನು ಮಾತ್ರ
ಚಲಾಯಿಸುತ್ತದೆ. ಉಳಿದ ಎಲ್ಲವೂ ನೀವು ನಡೆಸುವ ಒಂದು ಸಹಚರ ಹೋಸ್ಟ್ನಲ್ಲಿ ನಡೆಯುತ್ತದೆ, ಮತ್ತು
ಅದು ಐಚ್ಛಿಕವಲ್ಲ.
ಈ ಆವೃತ್ತಿಯಲ್ಲಿನ ಸ್ಥಿತಿ
ಸಂರಚನೆ ಸ್ಥಳದಲ್ಲಿದೆ (apps/web/vercel.json, vercel Nitro preset ಮತ್ತು ಆರಂಭಿಕ
ಪರಿಶೀಲನೆಗಳು). Vercel ಗೆ ಹಂಚಿಕೆ ಫೈಲ್ ಸಂಗ್ರಹಣೆ (QUIRE_STORAGE_DRIVER=s3 ಅಥವಾ
azure), ಫಂಕ್ಶನ್ ಇನ್ಸ್ಟೆನ್ಸ್ಗಳ ನಡುವೆ ಕೆಲಸ ಮಾಡುವ ರಿಯಲ್ಟೈಮ್ ಚಾಲಕ
(QUIRE_REALTIME_DRIVER=sse ಅಥವಾ centrifugo) ಮತ್ತು ಒಂದು HTTP ಇಮೇಲ್
ಪ್ರೊವೈಡರ್ ಬೇಕು. ಅವು ಇಲ್ಲದಿದ್ದರೆ ವೆಬ್ ಹಂತವು ಆರಂಭವಾಗಲು ನಿರಾಕರಿಸುತ್ತದೆ ಮತ್ತು ಅದರ
ಲಾಗ್ ಪ್ರತಿ ಕೊರತೆಯಿರುವ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ.
ಭಾಗಗಳು
ಭಾಗ
ಅದು ಎಲ್ಲಿ ನಡೆಯುತ್ತದೆ
web
Vercel Functions, Bun runtime: ಪುಟಗಳು, REST, MCP, LTI, ಸ್ವೀಕರಿಸಲ್ಪಟ್ಟ webhooks
worker, scheduler, collab, content
ಒಂದು ಸಹಚರ ಹೋಸ್ಟ್: Fly, Railway, ECS, ಅಥವಾ docker/compose.yaml ಸಹಿತ ನಿಮ್ಮದೇ Docker ಹೋಸ್ಟ್
Postgres
ಬಾಹ್ಯ, ಒಂದು ವ್ಯವಹಾರ ಪೂಲರ್ ಹಿಂದೆ: Neon, Supabase, ಅಥವಾ PgBouncer ಸಹಿತ RDS
ಫೈಲ್ಗಳು
S3 ಅಥವಾ R2. ಶಾಶ್ವತ ಡಿಸ್ಕ್ ಇಲ್ಲ
ಹಿನ್ನೆಲೆ ಕೆಲಸಗಳು
ವಿನಂತಿಯ ವ್ಯವಹಾರದೊಳಗೇ pg-boss ನೊಂದಿಗೆ ಸರಿಸಲ್ಪಡುತ್ತವೆ, ಸಹಚರ ವರ್ಕರ್ ಚಲಾಯಿಸುತ್ತದೆ. ಸಹಚರ ವರ್ಕರ್ನಲ್ಲಿ QUIRE_QUEUE_DRIVER=vercel ಇದ್ದಾಗ, ಹಗುರ ಕೆಲಸಗಳು (ಕ್ರಮರಹಿತ ಅಧಿಸೂಚನೆ ಮತ್ತು webhook ಡೆಲಿವರಿಗಳು) Vercel Queues ಮೂಲಕ ಹೋಗುತ್ತವೆ (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), ಆದ್ದರಿಂದ ಪೂಲ್ ಆದ Postgres ಅವುಗಳಿಗಾಗಿ ಪೋಲ್ ಆಗುವುದಿಲ್ಲ
ಪುನರಾವರ್ತಿತ ಕೆಲಸಗಳು
ಸಹಚರ ಶೆಡ್ಯೂಲರ್. ಒಂದು Vercel Cron ಮಾರ್ಗ ಇಲ್ಲ, ಏಕೆಂದರೆ ಫಂಕ್ಶನ್ನೊಳಗೆ ಕೆಲಸ ಮಾಡುವ 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
ನಿರಾಕರಿಸಲ್ಪಡುತ್ತದೆ. ಸರ್ವರ್-ಕಳುಹಿಸಿದ ಈವೆಂಟ್ಗಳು ಫಂಕ್ಶನ್ ಟೈಮ್ಔಟ್ನವರೆಗೆ ಮಿತಿಗೊಂಡಿವೆ;
ಕ್ಲೈಂಟ್ cursor ನೊಂದಿಗೆ ಮರುಸಂಪರ್ಕಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಯಾವುದೇ ಈವೆಂಟ್ ಕಳೆದುಹೋಗುವುದಿಲ್ಲ,
ಆದರೆ ಉಪಸ್ಥಿತಿ ಲಭ್ಯವಿಲ್ಲ.
ಬಂಧಿತ ಟೆನಂಟ್ ಡೇಟಾಬೇಸ್ಗಳು ಸುಮಾರು ಎಂಟರವರೆಗೆ ಮಿತಿಗೊಂಡಿವೆ, ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದೂ
ಪೂಲ್ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗದ ಪರಿಸರದಲ್ಲಿ ಇನ್ನೊಂದು ಸಂಪರ್ಕ ಪೂಲ್ ಆಗಿದೆ.
ಡಿಪ್ಲಾಯ್ ಮಾಡುವುದು
Root Directoryapps/web ಸಹಿತ ರೆಪೊಸಿಟರಿಯಿಂದ ಒಂದು Vercel ಪ್ರಾಜೆಕ್ಟ್ ರಚಿಸಿ.
apps/web/vercel.json ಸ್ಥಾಪನಾ ಮತ್ತು ಬಿಲ್ಡ್ ಆದೇಶಗಳನ್ನು (NITRO_PRESET=vercel)
ಹೊಂದಿಸುತ್ತದೆ ಮತ್ತು /sw.js ಕ್ಯಾಶ್ ಇಲ್ಲದೆ ಒದಗಿಸುತ್ತದೆ.
ಪರಿಸರ ಚರಗಳನ್ನು ಹೊಂದಿಸಿ. 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, ಸಂಗ್ರಹಣಾ
ಸೆಟ್ಟಿಂಗ್ಗಳು, ಮತ್ತು ಸಹಚರದ collab ಸೇವೆಯನ್ನು ಸೂಚಿಸುವ QUIRE_COLLAB_URL ಮತ್ತು
QUIRE_COLLAB_SIGNING_KEY.
QUIRE_REPORT_DATABASE_URLDATABASE_URL ಹೆಸರಿಸಿದ ಭೌತಿಕ
ಡೇಟಾಬೇಸ್ಗೆ ಸೇರಿದೆ. ಪ್ರತಿ ಹೆಚ್ಚುವರಿ ನೋಂದಾಯಿತ ಡೇಟಾಬೇಸ್ಗಾಗಿ, ಅದರದೇ ಆದ
quire_report ಸಂಪರ್ಕ URL ಅನ್ನು web ಮತ್ತು worker ಎರಡೂ ಪರಿಸರಕ್ಕೆ ಸೇರಿಸಿ, ನಂತರ ಅದರ
ಪರಿಸರ ಚರದ ಹೆಸರನ್ನು ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಕನ್ಸೋಲ್ನಲ್ಲಿ env:NAME ಆಗಿ ನೋಂದಾಯಿಸಿ. ಆ
ಡೇಟಾಬೇಸ್ನ ವರದಿ URL ಕೊರತೆಯಿದ್ದರೆ ವಿಶ್ಲೇಷಣೆ ಬಂದ್ಆಗಿ ವಿಫಲವಾಗುತ್ತದೆ.
ಸಹಚರ ಹೋಸ್ಟ್ನಲ್ಲಿ, docker/compose.yaml ಅನ್ನು web ಸೇವೆ ಇಲ್ಲದೆ, ಅದೇ
docker/.env ನೊಂದಿಗೆ ಚಲಾಯಿಸಿ:
ಪ್ರತಿ Vercel ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಉನ್ನತೀಕರಿಸಲ್ಪಡುವ ಮೊದಲು, ವಲಸೆಗಳು ಅಲ್ಲಿ ನಡೆಯುತ್ತವೆ.
ಡಿಪ್ಲಾಯ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲ್ಪಟ್ಟ ಸಂರಚನೆಯಲ್ಲಿ ಫಂಕ್ಶನ್ ಲಾಗ್ “The web tier did not
start on vercel” ನೊಂದಿಗೆ ಆರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಬದಲಾಯಿಸಬೇಕಾದ ಪ್ರತಿ ಸೆಟ್ಟಿಂಗ್ ಪಟ್ಟಿ
ಮಾಡುತ್ತದೆ.
ಅಪ್ಗ್ರೇಡ್ ಮಾಡುವುದು
ಮೊದಲು ಸಹಚರ ಹೋಸ್ಟ್ನಿಂದ ವಲಸೆ ಮಾಡಿ, ನಂತರ ಹೊಸ Vercel ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಉನ್ನತೀಕರಿಸಿ,
ನಂತರ ಸಹಚರದ ವರ್ಕರ್ಗಳನ್ನು ರೋಲ್ ಮಾಡಿ: ಕ್ರಮವು upgrade.md ನಲ್ಲಿ. ಒಂದು
Vercel ತಕ್ಷಣದ ಹಿಂತಿರುಗಿಸುವಿಕೆಯು ಕೋಡ್ ಹಿಂತಿರುಗಿಸುವಿಕೆ ಮತ್ತು ಒಂದೇ ಆವೃತ್ತಿಯೊಳಗೆ ಯಾವಾಗಲೂ
ಸುರಕ್ಷಿತ.