Deployment

Owner: DevOps
Reviewers: Backend, QA, Operations
Status: Draft
Version: 0.1
Last Updated: 2026-09-16
Review Cycle: Per deployment change

Backend VM Deployment

The current production infrastructure runs on VM/Docker Compose. Kubernetes/GKE remains available in the repository as an optional/reference path, not the primary production deployment path.

High-level flow:

  1. Prepare VM deploy directory with docker-compose.yml and .env.
  2. Build and push the backend Docker image for linux/amd64.
  3. SSH to the VM or use CI/CD SSH deployment.
  4. Pull the approved image tag on the VM.
  5. Restart the API service with Docker Compose.
  6. Verify container status, logs and /api/health.

Optional Kubernetes Deployment

Kubernetes manifests remain under ../../k8s/ and can be used if the project re-adopts GKE/Kubernetes later.

High-level optional flow:

  1. Prepare environment secret file from .env.example.
  2. Install or upgrade PostgreSQL and Redis Helm charts.
  3. Build and push the backend Docker image for linux/amd64.
  4. Apply Kustomize overlay: k8s/services-dev or k8s/services-prod.
  5. Verify pods, services, ingress, endpoints and /api/health.

Local Deployment

Use docker compose up for the integrated local stack.

Open Items

  • Web production deployment process.
  • Mobile release build/distribution process.
  • IoT production deployment process on VM or managed services.
  • Production VM deploy workflow/service name/image tag convention.