deployment
Catatan teknis seputar web development, DevOps, dan integrasi AI.
7 artikel
- 22.30devops
Deploy Staging Dibekukan: Ritual Per-Commit Digantikan Tunnel
Port inbound buat deploy ditutup total: staging KotaPortal kini dilayani lewat tunnel outbound-only, tanpa ritual deploy per-commit.
TL;DR: Deploy staging tiap commit beneran hilang, bukan error—backend KotaPortal sekarang dilayani lewat Cloudflare Tunnel dari VPS, jadi nggak perlu job deploy lagi. Origin cukup punya koneksi outbound ke port 7844, port inbound boleh ditutup total, malah lebih aman. Frontend tetap pakai preview bawaan hosting, backend lewat tunnel, reviewer nggak perlu tahu bedanya.
#cloudflare#cloudflared#deployment - 17.46devops
Build Docker Image di Luar VPS Saat Registry Resmi Tertinggal
Image Docker Hub tertinggal dari rilis npm. Bangun image di mesin besar, kirim via save, gzip, dan scp, lalu load di VPS kecil tanpa build.
TL;DR: Rilis npm 9router 0.5.81 udah keluar tapi image Docker Hub-nya masih mentok di 0.5.75. Karena RAM server cuma 964MB dan gak mungkin build Next.js di situ, imagenya dibangun di mesin lokal terus dikirim pakai docker save, gzip, dan scp. Container lama cukup di-rename, jadi rollback gampang kalau yang baru bermasalah.
#docker#deployment#ssh - 22.37devops
Menutup auto-deploy Vercel untuk branch stag
Tiap push ke staging bikin deployment preview percuma. Satu blok git.deploymentEnabled di vercel.json cukup buat menutupnya.
TL;DR: Vercel defaultnya deploy semua branch yang di-push, jadi tiap push ke stag bikin preview deployment yang nggak dibutuhin. Solusinya cuma file vercel.json delapan baris pakai git.deploymentEnabled buat matiin deploy stag. Lebih milih ini daripada Ignored Build Step soal script exit codenya gampang kebalik dan bisa bikin deploy mati diam-diam.
#vercel#deployment#devops - 20.29devops
Pindah Deploy ke Vercel: Kuncinya di Luar Kode
Diff-nya cuma dokumentasi, tapi migrasi deploy Cloudflare Workers ke Vercel tetap terjadi. Kabelnya ada di dashboard Vercel dan settings GitHub, bukan di dalam repo.
TL;DR: Gara-gara satu baris di CLAUDE.md, penulis sadar migrasi dari Cloudflare Workers ke Vercel nggak ninggalin jejak di repo, karena settingnya ada di dashboard, bukan Git. Production branch di Vercel dipilih pas impor dan bisa diatur lewat Branch Tracking, jadi default branch GitHub beda hal. Alur Git tetap sama, tapi env vars mesti didaftarkan ulang dan rollback modelnya tunjuk deployment.
#vercel#cloudflare#git - 16.31backend
Bare python di entrypoint Docker: interpreter sistem, bukan venv
Script seed knowledge gagal terus di container padahal file ada di image. Ternyata bare python manggil interpreter sistem, bukan venv.
TL;DR: Script knowledge seed gagal di Docker karena bare python memakai interpreter sistem, bukan venv, sehingga dependensi yang terpasang tidak terlihat. Solusinya panggil interpreter venv dengan path absolut dan set PYTHONPATH ke root project agar import berfungsi. Tambahkan || echo skipped supaya container tetap hidup dan kegagalan tetap tercatat di log.
#docker#python#deployment - 11.40backend
Upsert Idempoten di Entrypoint, Biar Data Chat Gak Selisih Lagi
Data baseline chat bot lokal dan VPS selisih karena seeding manual. Solusinya: seed JSON di repo di-upsert via entrypoint container.
TL;DR: Data knowledge di VPS kurang karena baseline diisi lewat copy-paste SQL manual yang rawan kelewat baris. Solusinya: seed file di repo di-upsert otomatis tiap container start pakai INSERT ON DUPLICATE KEY UPDATE dengan slug sebagai kunci alami. Pelajarannya: affected-rows 2 berarti update satu baris, dan dev-prod sebaiknya parity agar bug serupa tidak lolos.
#mariadb#docker#python - 22.22devops
Deploy Vercel Diblokir? Akun Vercel-nya yang Salah
Tiga hari debugging git config untuk error Vercel yang ternyata bukan soal git — tapi project milik akun Vercel lain. Plus batasan plan Hobby yang perlu diketahui.
#vercel#git#devops