Portal SPMB dijalankan sebagai satu stack Docker Compose bernama spmb-portal-ypii yang berisi dua layanan: spmb-portal-web (aplikasi web yang diakses orang tua/wali) dan spmb-portal-backend (layanan backend yang hanya dapat dihubungi dari dalam jaringan stack). Seluruh perintah operasional dijalankan melalui Makefile di direktori stack tersebut.
Stack ini tidak menyimpan data apa pun. Tidak ada layanan basis data, tidak ada volume penyimpanan, dan tidak ada prosedur cadangan maupun pemulihan data pada stack ini — seluruh data pendaftaran hidup di Odoo YPII. Konsekuensinya, menghentikan atau membentuk ulang container Portal SPMB tidak menghilangkan data pendaftaran calon siswa mana pun.
Instruksi Kerja Menjalankan, Memantau, dan Menaikkan Versi Stack Portal SPMB bertujuan memastikan administrator sistem dapat menjalankan dan menghentikan Portal SPMB, membaca status serta log kedua layanannya, menerapkan perubahan konfigurasi dengan benar, dan menaikkan versi aplikasi ke rilis yang lebih baru tanpa menebak perintah.
Sebelum menjalankan Instruksi Kerja Menjalankan, Memantau, dan Menaikkan Versi Stack Portal SPMB, berkas .env deployment sudah tersedia dan terisi sesuai Mengonfigurasi Deployment Portal SPMB: Domain, Koneksi Odoo, Sesi Login, dan Identitas Merek. Stack Traefik dan stack Odoo YPII pada server yang sama juga sudah berjalan, karena keduanya menyediakan jaringan Docker eksternal yang dipakai stack ini.
spmb-portal-ypii, termasuk berkas .env.Seluruh perintah pada instruksi kerja ini dijalankan dari dalam direktori stack spmb-portal-ypii.
make help. Perintah ini menampilkan seluruh target Makefile beserta keterangan singkatnya.make pull untuk menarik image sesuai tag yang ditetapkan variabel SPMB_BACKEND_VERSION dan SPMB_WEB_VERSION di berkas .env.make up untuk menjalankan kedua layanan di latar belakang.make ps dan tunggu sampai kedua layanan berstatus sehat (healthy).Layanan spmb-portal-web baru dijalankan setelah layanan spmb-portal-backend dinyatakan sehat. Karena itu, pada penjalanan pertama, spmb-portal-web wajar terlihat menunggu selama beberapa puluh detik pertama.
make ps untuk melihat status kedua layanan.| Layanan | Cara pemeriksaan kesehatan | Jeda awal | Selang periksa | Batas gagal |
|---|---|---|---|---|
spmb-portal-backend |
Memanggil GET /api/v1/health pada port internal 8000 |
10 detik | 30 detik | 3 kali |
spmb-portal-web |
Memanggil halaman akar pada port internal 3000 | 20 detik | 30 detik | 3 kali |
Status sehat pada
make pshanya membuktikan bahwa layanan hidup dan menjawab permintaan. Status itu tidak membuktikan Portal SPMB terhubung ke Odoo YPII: pemeriksaan kesehatan backend memakaiGET /api/v1/health, sedangkan keterhubungan ke Odoo YPII diperiksaGET /api/v1/ready. Bila portal tidak dapat memuat data pendaftaran, periksa kesiapan denganGET /api/v1/readysesuai Mengonfigurasi Deployment Portal SPMB, bukan hanya melihatmake ps.
make logs untuk mengikuti log kedua layanan secara langsung.make logs-web bila hanya log aplikasi web yang diperlukan, misalnya saat menelusuri halaman yang gagal tampil.make logs-backend bila hanya log layanan backend yang diperlukan, misalnya saat menelusuri kegagalan pengiriman kode OTP atau kegagalan pemanggilan Odoo YPII.Ctrl+C untuk berhenti mengikuti log. Menghentikan tampilan log tidak menghentikan layanan..env.env sesuai kebutuhan.make up. Docker Compose membentuk ulang container yang konfigurasinya berubah, sehingga nilai variabel lingkungan yang baru benar-benar diterapkan.make ps dan tunggu kedua layanan kembali berstatus sehat.GET /api/v1/ready setelah mengubah variabel koneksi Odoo YPII.Jangan memakai
make restartuntuk menerapkan perubahan.env. Perintah tersebut menjalankan ulang container yang sudah ada tanpa membentuknya ulang, sehingga variabel lingkungan yang baru tidak terbaca dan nilai lama tetap berlaku. Gejalanya menyesatkan: perintah berhasil, container kembali sehat, tetapi perubahan konfigurasi tampak tidak berpengaruh sama sekali.
make restart tetap berguna untuk keperluan lain, yaitu menjalankan ulang layanan tanpa mengubah konfigurasi apa pun — misalnya saat sebuah layanan tersangkut dan perlu disegarkan.
v0.17.0 untuk backend dan v0.21.0 untuk aplikasi web. Tag versi diterbitkan dari repositori kode masing-masing komponen, bukan dari repositori stack ini..env, agar dapat dikembalikan bila versi baru bermasalah..env: isi SPMB_BACKEND_VERSION dan/atau SPMB_WEB_VERSION dengan tag versi tujuan.make pull untuk menarik image versi tersebut.make up untuk membentuk ulang container dengan image yang baru.make ps dan tunggu kedua layanan kembali berstatus sehat.SPMB_BACKEND_VERSION/SPMB_WEB_VERSION ke tag versi yang dicatat pada butir 2, lalu ulangi make pull dan make up.Menyematkan tag versi (
vX.Y.Z) membuat pengembalian ke versi sebelumnya menjadi mungkin. Bila kedua variabel dibiarkan bernilailatest, versi yang berjalan berubah diam-diam setiap kalimake pulldijalankan, dan tidak ada versi pasti yang dapat dituju saat pengembalian.
make down untuk menghentikan dan menghapus kedua container.make ps untuk memastikan tidak ada layanan yang tersisa berjalan.Menghentikan stack membuat Portal SPMB tidak dapat diakses orang tua/wali, tetapi tidak menghilangkan data pendaftaran mana pun karena seluruh data berada di Odoo YPII. Menjalankan kembali cukup dengan make up.
spmb-portal-backend dan spmb-portal-web berstatus sehat pada keluaran make ps..env benar-benar diterapkan setelah make up, dapat dibuktikan dari perilaku yang berubah, bukan hanya dari perintah yang berhasil..env, dan dapat dikembalikan ke versi sebelumnya bila diperlukan.| Masalah | Penyebab | Penanganan |
|---|---|---|
Perubahan pada .env tidak berpengaruh walau perintah berhasil dan container sehat |
Perubahan diterapkan dengan make restart, yang tidak membaca ulang variabel lingkungan |
Terapkan ulang dengan make up sesuai Langkah 5 |
make up gagal dengan pesan jaringan traefik-public tidak ditemukan |
Stack Traefik belum dijalankan | Jalankan stack Traefik lebih dulu, lalu ulangi make up |
make up gagal dengan pesan jaringan odoo14-cantum-ypii_default tidak ditemukan |
Stack Odoo YPII belum dijalankan | Jalankan stack Odoo YPII lebih dulu, lalu ulangi make up |
make pull gagal dengan pesan penolakan akses ke ghcr.io |
Image berada di registry privat dan server belum masuk ke registry | Jalankan docker login ghcr.io pada server, lalu ulangi make pull |
make pull gagal dengan pesan tag tidak ditemukan |
Tag versi yang diisi di .env belum pernah dirilis untuk komponen tersebut |
Periksa daftar tag yang benar-benar tersedia pada repositori kode komponen, perbaiki nilai SPMB_BACKEND_VERSION/SPMB_WEB_VERSION, lalu ulangi |
spmb-portal-web tidak pernah dijalankan dan terus menunggu |
spmb-portal-backend belum berstatus sehat, sehingga syarat penjalanan spmb-portal-web belum terpenuhi |
Baca make logs-backend untuk mengetahui penyebab backend gagal sehat, perbaiki, lalu ulangi make up |
| Kedua layanan sehat tetapi portal tidak dapat memuat data pendaftaran | Keterhubungan ke Odoo YPII bermasalah; hal ini tidak tertangkap pemeriksaan kesehatan | Periksa GET /api/v1/ready dan variabel koneksi Odoo YPII sesuai Mengonfigurasi Deployment Portal SPMB |
| Portal tidak dapat dibuka dari internet walau kedua layanan sehat | Router Traefik tidak terbentuk karena SPMB_WEB_HOST berubah, atau stack Traefik sedang bermasalah |
Periksa nilai SPMB_WEB_HOST di .env dan status stack Traefik, lalu jalankan make up |