Deploy & Rilis¶
Halaman ini menjelaskan prosedur rilis modul ke produksi. Nama host, nama container, path,
nama basis data, dan port sengaja tidak ditulis di sini — situs ini terbuka. Nilai konkretnya ada
di RUNBOOK_DEPLOY.md pada repo modul, yang tidak ikut diterbitkan.
Urutan rilis¶
Setelah MR masuk main:
# 1. Backup basis data — selalu, tanpa kecuali
pg_dump -Fc <db> > <folder-backup>/<db>_pre_<perubahan>_$(date +%Y%m%d_%H%M%S).dump
# 2. Tarik kode di direktori addons
git pull --ff-only origin main
# 3. Upgrade modul
odoo -c <odoo.conf> -d <db> -u edig_strategy_core \
--stop-after-init --workers=0 --max-cron-threads=0
# 4. HANYA bila ada berkas .py yang berubah
# restart layanan Odoo
Restart wajib bila .py berubah
odoo -u berjalan di proses terpisah dan hanya memperbarui basis data (view, field, data,
terjemahan). Worker yang sudah hidup tetap memegang kode Python lama.
Ini pernah terjadi: rilis F14 tanpa restart membuat peramban memuat JS baru yang mengirim
parameter owner_id, sementara server menjalankan get_dashboard lama yang menolaknya —
dashboard produksi mati ±25 menit dengan pesan "could not load".
Perubahan yang hanya menyentuh XML/JS/SCSS/CSV/PO cukup dengan langkah 3.
Verifikasi setelah rilis¶
Dua hal yang dicek, keduanya dari dalam server:
- Probe kesehatan
/web/healthmengembalikan 200. - Hitungan restart container tetap 0 — kalau naik, artinya proses gagal hidup dan mengulang sendiri.
Instance multi-database butuh header Host
Bila odoo.conf memakai dbfilter = ^%h$, basis data dipilih dari nama host permintaan.
Probe tanpa header Host yang benar tidak akan tahu database mana yang dimaksud dan gagal
meski layanan sehat.
Permintaan dari luar bisa diblok WAF (403). Itu bukan indikator pemadaman — selalu uji dari dalam server.
Deploy key GitLab¶
Deploy key berlaku per proyek. Mengaktifkannya di satu repo tidak berlaku ke repo lain —
harus di-Enable di Settings → Repository → Deploy keys pada proyek yang bersangkutan. Gejalanya
saat lupa: git clone/pull ditolak dengan permission denied meski kunci yang sama bekerja di
repo tetangga.
Dokumentasi¶
Sumber situs ini ada di folder docs-site/ repo modul dan disalin ke portal dokumentasi bersama
saat rilis. Menyimpan sumber MkDocs di repo membuat isinya ikut terlacak bersama kodenya —
dokumentasi berubah dalam MR yang sama dengan fiturnya.
Situs ini terbuka
Jangan menulis nama host, path server, nama basis data, port internal, nama container, atau
detail jalur akses di halaman mana pun di docs-site/. Semua itu masuk RUNBOOK_DEPLOY.md
di repo.