Files
sistem-desa-mandiri/.claude/DEPLOYMENT.md

1.9 KiB

Deployment

Docker images are built via .github/workflows/publish.yml and pushed to GHCR (ghcr.io). Portainer redeploys via .github/workflows/re-pull.yml. Supports dev, stg, and prod stacks.

The Dockerfile uses a two-stage build: Bun builder → Bun runner (non-root user, port 3000).

Git Remote Structure

Remote URL Purpose
origin wibugit.wibudev.com/wibu/sistem-desa-mandiri Repo kerja tim
build github.com/bipprojectbali/desa-plus Repo deployment (trigger CI/CD)

Branch mapping:

  • origin/staging — branch integrasi tim (bukan deployment target)
  • build/stg — branch deployment stg (trigger publish image + Portainer repull)
  • build/prod — branch deployment prod
  • build/dev — branch deployment dev

Deploy to STG Flow

Cukup jalankan MCP deploy-stg — handles otomatis: cek migrasi → bump version → commit → push ke build/stg → trigger publish workflow (ref: stg) → tunggu selesai → trigger repull Portainer → verify version via BASE_URL${VERSION_PATH}.

origin tidak punya branch stg (hanya staging). "stg" selalu merujuk ke build/stg.

MCP deploy-stg

Lokasi: .mcp/deploy-stg/server.ts. Berkomunikasi langsung dengan GitHub REST API (tidak butuh gh CLI), hanya perlu git & prisma lokal.

Env vars (di .mcp.json atau .env):

  • GH_TOKEN — PAT dengan scope repo + workflow untuk trigger Actions
  • GH_URL — repo build target, format owner/repo atau full URL
  • BASE_URL — base URL stg untuk verifikasi versi
  • VERSION_PATH — endpoint cek versi (default /api/version-app)
  • STACK_NAME — nama stack Portainer

Tools: deploy, publish, repull, run_status, check_version.

Penting: workflow publish.yml & re-pull.yml di-trigger dengan ref: stg agar actions/checkout@v4 checkout dari branch stg, bukan default branch (main).