Skip to main content

Deployment Notes

This page is a short map of production hosting for Nova Print. The full runbook (DNS, RDS, EC2, Nginx, R2, Cloudflare Pages/Workers, GitHub secrets, first-deploy order, health checks) lives in:

docs/DEPLOYMENT.md

This docs site on Cloudflare Pages (push to main): Docs → Cloudflare Pages.

Admin / POS / Checkout Pages apps: repo docs/CLOUDFLARE_PAGES.md.

Do not treat this page as a substitute for those documents.

What runs where​

AppFolderHostPublic URL (current prod)
Storefrontend-ecommerceCloudflare Workers (OpenNext)https://novaprint.co.in
Adminfrontend-admin-dashboardCloudflare Pages nova-print-adminhttps://admin.novaorder.in
POSfrontend-posCloudflare Pages nova-print-poshttps://pos.novaorder.in
Checkoutprintbazar-checkoutCloudflare Pages nova-print-checkouthttps://store.novaorder.in
DocsdocumentationCloudflare Pages nova-print-docshttps://docs.novaorder.in
APIbackend-mainEC2 + Gunicorn + Nginxhttps://api.novaorder.in
Archive schedulerbackend-mainSame EC2, systemd nova-print-schedulernot public
DatabasePostgreSQLAmazon RDS (private)not public
MediaDjango uploadsCloudflare R2https://media.novaorder.in

Local stays on SQLite + disk uploads. Production is where DATABASE_URL and R2_BUCKET_NAME are set (docs/DEPLOYMENT.md).

CI / CD​

GitHub Actions on push to main (path-filtered) or workflow_dispatch:

WorkflowEffect
deploy-backend.ymlrsync API to EC2, migrate, collectstatic, restart nova-print-api, install/restart nova-print-scheduler
deploy-ecommerce.ymlOpenNext build + Worker deploy
deploy-admin.yml / deploy-pos.yml / deploy-checkout.ymlVite build → Wrangler Pages publish
deploy-documentation.ymlDocusaurus build → Wrangler Pages publish (nova-print-docs)

Docs site deploy guide: Docs → Cloudflare Pages. Other Pages apps: docs/CLOUDFLARE_PAGES.md.

Frontend VITE_* / NEXT_PUBLIC_* are build-time; changing a GitHub secret requires re-running the matching workflow. Env catalog: Environment variables.

Payments (Razorpay)​

Ecommerce storefront only. Keys on the API host; enable in Admin → Ecommerce → Payment Options.

→ docs/RAZORPAY_SETUP.md

Archive scheduler​

Daily 02:00 Asia/Kolkata job on the same EC2 as the API (manage.py runapscheduler, unit nova-print-scheduler). No Celery/Redis/OS cron.

→ docs/ARCHIVE_SCHEDULER_DEPLOY.md
Local: run python manage.py runapscheduler beside runserver (Local development).

Admin SQL editor​

Hidden Admin route /sql-editor (superuser only). Production example: https://admin.novaorder.in/sql-editor. API: POST /api/sql-editor/execute/.

→ docs/SQL_EDITOR.md

Quick verify after deploy​

From docs/DEPLOYMENT.md § Confirm it works:

curl -sI https://api.novaorder.in/api/
curl -sI https://novaprint.co.in
curl -sI https://admin.novaorder.in
curl -sI https://pos.novaorder.in
curl -sI https://store.novaorder.in
curl -sI https://media.novaorder.in

Also confirm Admin/POS call https://api.novaorder.in/api/..., media URLs use media.novaorder.in, and POS checkout links use store.novaorder.in.