Pemecahan Masalah
Masalah umum, penyebabnya, dan cara memperbaikinya. Sebagian besar jawaban dimulai dari tempat yang sama: Logs layanan, yang berisi output build dan output aplikasi itu sendiri (Log).
Server
Penyiapan gagal terhubung
- Koneksi timeout atau ditolak: port SSH tertutup di firewall atau security group penyedia cloud, atau alamat atau port-nya salah. Izinkan port SSH dari mana saja selama penyiapan berjalan; setelahnya Anda bisa menutupnya (Persyaratan).
- Autentikasi gagal: periksa pengguna SSH. Image cloud sering menonaktifkan login root; gunakan
ubuntu,debian, atauec2-user. Kunci harus kunci privat, bukan file.pub, dan tanpa passphrase (Menambahkan Server). - sudo meminta kata sandi: pengguna perlu
sudotanpa kata sandi, atau hubungkan sebagairoot. - Kunci host berubah: Zenavo menolak terhubung bila fingerprint server berbeda dari penyiapan pertama. Jika Anda memang memasang ulang mesinnya, hapus server lalu tambahkan lagi; jika tidak, cari tahu penyebabnya sebelum melanjutkan.
Penyiapan gagal saat instalasi
Baca beberapa baris terakhir log penyiapan di tab Status server. Penyebab umum:
- Port 80 atau 443 sudah dipakai oleh Docker, Nginx, Apache, atau web server lain. Server sebaiknya khusus untuk Zenavo; hentikan dan nonaktifkan layanan tersebut, lalu klik Retry setup.
- Memori atau disk tidak cukup: minimal memori 2 GB dan disk kosong 20 GB (Persyaratan).
- Unduhan timeout di Tiongkok daratan: log menunjukkan sumber mana yang dipilih penyiapan (Server di Tiongkok daratan).
- Agen tidak pernah terhubung: server memerlukan HTTPS keluar (port 443) ke konsol Zenavo.
Saat diulang, langkah yang sudah selesai dilewati.
Server tampil Offline
Zenavo tidak menerima kabar dari agen server selama beberapa menit. Proyek di dalamnya tetap berjalan; hanya deployment dan data langsung yang terhenti sementara. Periksa apakah mesin menyala, punya HTTPS keluar, dan tidak kehabisan memori atau disk. Saat agen kembali, statusnya kembali ke Running dengan sendirinya. Jika tidak, Settings → Run setup memasang ulang agen tanpa menyentuh apa yang berjalan (Mengelola Server).
Build
Zenavo salah mendeteksi bahasa atau tidak menemukan rencana build
zbpack melihat file di direktori root. Di monorepo, atur Root directory ke folder aplikasi. Tambahkan Dockerfile untuk mengendalikan build sepenuhnya, atau atur zbpack options seperti ZBPACK_BUILD_COMMAND dan ZBPACK_START_COMMAND (Rencana Build).
Build gagal
Buka Logs → Build Logs. Error terakhir biasanya penyebabnya: dependensi yang hilang, skrip build yang gagal, atau nilai yang dibutuhkan build. Variabel di tab Variables tidak otomatis diteruskan ke build: rujuk yang dibutuhkan sebagai argumen build. Coba build yang sama secara lokal dengan docker build . untuk membedakan masalah aplikasi dari masalah platform.
Build menunggu atau berhenti
- Menunggu mesin build: jumlah build bersamaan di paket Anda sudah terpakai, atau mesin build bersama sedang sibuk (Antrean build).
- Timeout: build berhenti setelah melewati durasi build terlama paket Anda (Penggunaan & Tagihan).
- Ditolak: workspace sudah menghabiskan menit build bulan ini. Men-deploy image yang sudah jadi tetap bisa.
Deployment
Deployment tidak pernah sehat
Instance baru sudah berjalan tetapi tidak pernah lolos health check; instance lama tetap melayani. Biasanya:
- Aplikasi mendengarkan di
localhostatau port tetap. Dengarkan di0.0.0.0dan di variabelPORT(Framework). - Port-nya salah. Port layanan di Networking harus sama dengan port yang didengarkan aplikasi.
- Path health check mengembalikan 404, atau aplikasi butuh waktu lebih lama untuk mulai. Perbaiki path-nya atau naikkan periode mulai.
Deployment yang gagal menampilkan alasan dari pemeriksaan terakhir dan log terbaru instance.
Layanan terus crash atau ditangguhkan
Kontainer keluar tepat setelah mulai. Baca Logs untuk mencari error-nya: variabel yang hilang, database yang tidak terjangkau, atau crash saat mulai. Layanan yang dihentikan karena memakai terlalu banyak memori juga di-restart: naikkan batas memorinya (Pengaturan Layanan). Setelah restart sebanyak batas crash-nya, Zenavo menangguhkan layanan; perbaiki penyebabnya, lalu lanjutkan atau deploy lagi.
Deployment ditolak karena transfer image
Workspace sudah mencapai batas pengeluarannya, atau menghabiskan transfer image yang termasuk dalam paket Free. Layanan yang sedang berjalan tetap berjalan. Naikkan batas atau tingkatkan paket (Transfer Image & Batas Pengeluaran).
Layanan tidak bisa menjangkau layanan lain
Gunakan hostname privat layanan lain, <hostname>.zenavo.internal, dan port yang didengarkannya, bukan domain publik atau localhost. Kedua layanan harus berada di proyek yang sama. Tab Networking layanan lain menampilkan alamatnya di bagian Private (Jaringan Privat).
Domain dan HTTPS
Sertifikat tetap Pending
Let's Encrypt belum bisa memverifikasi domain. Arahkan kursor ke Pending di Overview layanan untuk melihat alasannya. Biasanya:
- Record DNS belum mengarah ke server. Periksa dengan
dig +short app.example.com; hasilnya harus alamat IP server. Record baru bisa butuh waktu untuk menyebar. - Port 80 tertutup. Let's Encrypt memverifikasi domain lewat HTTP.
- Proxy Cloudflare aktif dengan SSL disetel ke Flexible. Ubah ke Full (strict), atau matikan proxy sampai sertifikat diterbitkan.
Status diperbarui sekitar sekali semenit (Domain & HTTPS).
Domain menampilkan 404 atau halaman error
- 404 page not found: domain sampai ke server, tetapi tidak ada layanan yang memakainya. Pasang di tab Networking layanan.
- Bad gateway atau Service unavailable: domain sudah terpasang, tetapi layanan tidak berjalan, atau mendengarkan di port lain dari port yang dituju domain.
Akun dan akses
Saya tidak bisa menambahkan server atau men-deploy
Verifikasi email Anda terlebih dahulu: buka tautan yang dikirim Zenavo, atau kirim ulang dari Account settings (Akun Anda). Viewer tidak bisa men-deploy atau mengubah apa pun; minta admin tim memberi Anda peran Member (Tim & Peran).
Perangkat autentikasi dua faktor saya hilang
Masuk dengan kode pemulihan (Autentikasi Dua Faktor). Jika tidak punya, hubungi info@zenavo.app dari alamat email akun tersebut.
Masih belum teratasi?
Kirim email ke info@zenavo.app dengan ID proyek atau server (salin dari Settings), waktu kejadian, dan isi log. Jangan pernah mengirim kata sandi, kunci, atau nilai variabel.