Deployment¶
Purpose¶
One runbook per environment - deliberately separate pages, not toggles on one page, so staging and production never look like interchangeable variants of the same command.
Pages in this section¶
- Local - your own machine's k3d cluster.
- Staging (VPS) - current, canonical. The real, live staging environment
at
stg.vayzomart.com, deployed viascripts/deploy-staging-vps.shon a shared VPS running Docker Compose. - Staging (legacy — Kubernetes/Helm) - a separate, planned future architecture, on hold behind its own domain-registration prerequisites. Not currently used for real traffic; kept for historical/future-architecture reference. Do not follow this page to deploy today's real staging.
- Production - current, canonical. The separately authorized Production
V1 application path uses
docker-compose.production.ymlandscripts/deploy-production-vps.shon the shared VPS. It never performs public cutover. - Production Host Nginx cutover - candidate rendering, validation, explicit cutover authorization, external verification, and routing rollback for the shared-VPS production ports. Documentation and tests never perform the cutover.
- Release Checklist - the full precondition list before cutting a release tag.
Shared shape¶
Every runbook in this section follows: Preconditions → Backup/checkpoint → Build → Deploy → Database migration → Verification → Smoke testing → Monitoring → Rollback - so the steps are predictable even though the targets (and their risk level) are completely different.
Which environment am I looking at?¶
| Local | Staging (VPS — current) | Staging (K8s — legacy) | Production | |
|---|---|---|---|---|
| Runtime | your own k3d | shared VPS, Docker Compose | real, shared K3s node | shared VPS, isolated Docker Compose project |
| Hostname | localhost | stg.vayzomart.com |
staging.akshayabazaar.example.invalid (placeholder - never resolves) |
vayzomart.com / www.vayzomart.com after separate cutover authorization |
| Deployed by | you, manually | scripts/deploy-staging-vps.sh, operator-run |
Jenkins, automatically, on a release tag - not yet reachable | scripts/deploy-production-vps.sh, operator-run after explicit deployment authorization; Host Nginx cutover is separate |
| Data | disposable, local-only | real test data | n/a - not deployed | real customer data |
| This portal executes deploys here? | Only what you explicitly run yourself | No | No - and it can't reach a real target yet | Never |