Prompt file imported from RantAI-dev/jakarta-restaurant-data (
.claude/commands/deploy-v2.md). Copyright stays with the author.
Deploy platform-v2/ ke produksi. Gunakan agen deploy-portainer.
Runbook manusia yang setara: docs/DEPLOY-RUNBOOK.md.
Jalankan berurutan, berhenti dan lapor kalau ada langkah yang gagal:
-
Preflight — jalankan ini DULU, selalu
bash scripts/preflight-portainer.shKeluar bukan-0 → berhenti dan tunjukkan pesannya apa adanya ke pengguna. Pesan itu sudah memuat cara memperbaikinya (biasanya env belum di-set atau token dicabut; keduanya butuh Claude Code dijalankan ulang). Jangan menebak, jangan mencoba jalur lain.
-
Pastikan kode sudah aman
cd platform-v2 && npx tsc --noEmitharus lulus.- Semua perubahan sudah di-commit dan di-push ke branch
mainDAN ke repo lama (git push origin main && git push lama main) — stack 6 masih menarik dari repo lama, dan dari git, bukan dari mesin lokal.
-
Rekam keadaan sekarang (untuk rollback)
StackInspectstack 6 → simpan.Envlengkap dan catatGitConfig.ConfigHashyang sedang jalan.
-
Paksa rebuild image
- Hapus container
dispar-v2, laluDELETE /images/dispar-v2:latestlewatdocker_proxy. Tanpa ini image lama dipakai ulang dan deploy jadi no-op.
- Hapus container
-
Redeploy stack 6
StackGitRedeployid6, endpoint3, sertakanEnvlengkap dari langkah 2. KalauEnvtidak dikirim, ClickHouse + katalog akan mati.- Pastikan
PORT: 3032ada di environment servicedispar-v2.
-
Verifikasi sungguhan
curl -s -o /dev/null -w "%{http_code}\n" http://192.168.18.187:13032/ curl -s -o /dev/null -w "%{http_code}\n" https://dispar.rantai.dev/Keduanya harus
200. Status container "running" saja tidak cukup. -
Lapor — commit apa yang ter-deploy, dan hasil kedua curl di atas.
Kalau produksi rusak: redeploy ulang dari commit sebelumnya (langkah 2 mencatat
ConfigHash-nya), lalu laporkan apa yang terjadi.
JANGAN menghapus stack. StackDelete sengaja di-deny di
.claude/settings.json: sesi Claude tidak bisa MEMBUAT stack kembali, jadi
menghapus = layanan mati sampai ada manusia membuatnya ulang lewat Portainer UI.
Ini pernah terjadi. Redeploy tidak pernah butuh delete.