$ aoox

DocsInfrastruktur

Troubleshooting

Masalah yang paling sering muncul, dikelompokkan per area, dengan cara diagnosis cepat.

Mulai dari
Log API + docker ps
Sumber kebenaran
Log deployment di tab Deploy
Masih buntu?
Buka issue dengan info di bawah

Diagnosis cepat

Di server, dari folder aoox-api
# status tiga container inti
docker compose -f docker-compose.dist.yml --env-file .env.dist ps

# log API (deploy, backup, notifikasi, SSH) dan web
docker compose -f docker-compose.dist.yml --env-file .env.dist logs -f --tail 200 api
docker compose -f docker-compose.dist.yml --env-file .env.dist logs -f --tail 100 web

# semua container yang dikelola aoox
docker ps -a --filter label=com.docker.compose.project=aoox

# proxy & registry
docker logs -f --tail 100 aoox-proxy
docker logs -f --tail 100 aoox-registry

# API hidup?
curl -s http://localhost:3001/auth/setup-status
  • Masalah deploy: log deployment di tab Deploy adalah sumber paling lengkap — token dan password sudah disensor, aman untuk dibagikan.
  • Masalah runtime aplikasi: log container di tab yang sama, atau docker logs aoox-app-<slug>.
  • Siapa mengubah apa: Audit log (owner/admin).

Instalasi & akses

GejalaPenyebabSolusi
Web terbuka, tapi sign-in / API gagal (network error)PUBLIC_API_URL tidak bisa dijangkau browser (IP/port salah, firewall 3001).Samakan dengan alamat yang bisa dibuka dari browser; curl <PUBLIC_API_URL>/auth/setup-status dari laptop harus menjawab.
Terminal: origin not allowedWEB_ORIGIN ≠ URL di browser (skema/host/port).Samakan persis, lalu up -d ulang. Lihat Domain untuk panel.
Kartu Registry/Proxy: Docker tidak terjangkau / permission denied di socketDOCKER_GID salah atau socket tidak di-mount.stat -c %g /var/run/docker.sock → set DOCKER_GID → recreate API.
Semua pengguna logout mendadakJWT_SECRET berubah.Normal setelah rotasi; kembalikan nilai lama bila tidak disengaja.
Kredensial registry/Git/notifikasi/S3 tidak bisa dibacaENCRYPTION_KEY berubah.Kembalikan nilai lama; kalau hilang, masukkan ulang semua kredensial.
/setup tidak muncul / 404Sudah ada pengguna.Sign in biasa; owner bisa reset password anggota. Untuk mulai dari nol: down -v.

Build & deploy

GejalaPenyebabSolusi
Deploy gagal: No self-hosted registryRegistry lokal belum di-provision.Provision registry dulu.
Build: repository not found / 128Repo privat tanpa Kredensial Git, token kedaluwarsa, atau branch salah.Tambahkan kredensial di Settings dan pilih di aplikasi; cek nama branch.
Build: unknown flag --mount / heredoc errorSintaks BuildKit di Dockerfile; builder klasik.Ganti dengan langkah biasa — lihat Cara build.
Health check tidak pernah healthyPort container ≠ port yang di-listen, listen hanya di 127.0.0.1, path tidak 2xx, atau image tanpa wget/curl/node/python3.Listen di 0.0.0.0, samakan port, sediakan endpoint 200 cepat.
Env baru tidak terbaca aplikasiEnv diterapkan saat container dibuat.Deploy atau Rollback sekali lagi.
400: referensi ${{database.x.url}} tidak dikenalSlug salah atau database di project lain.Referensi hanya dalam project yang sama.
Webhook push tidak memicu deployBranch beda, event bukan push, deployment masih jalan (busy), atau 401 secret.Cek Recent Deliveries di provider — tabel respons.
Rollback gagal: image not foundTag dipangkas retensi atau dihapus manual.Deploy ulang commit itu; naikkan Riwayat deployment.
Nixpacks/statis: build pertama sangat lamaBase image ± 350 MB + helper dibangun sekali.Tunggu; untuk build cepat pakai Dockerfile.

Domain & HTTPS

GejalaPenyebabSolusi
Tab Domain: Proxy belum berjalanTraefik belum di-provision.Settings → Reverse proxy → provision (owner).
404 page not found dari TraefikContainer belum healthy, atau domain ditambah sebelum container dibuat ulang.Tunggu healthy; cek log deploy; pastikan health check lolos.
Sertifikat self-signed / TRAEFIK DEFAULT CERTACME gagal: DNS belum benar, port 80 tertutup, rate limit, atau email kosong saat provision.docker logs -f aoox-proxy; uji dengan PROXY_ACME_STAGING=true.
Redirect loopCloudflare mode Flexible atau proxy lain men-terminate TLS di depan.Full (strict), atau matikan HTTPS di aoox.
Cek DNS: ?IP publik server tidak terdeteksi (NAT/tanpa internet keluar).Set PUBLIC_IP di .env.dist.
Preview PR tidak resolveTanpa DNS wildcard, atau preview domain salah.*.preview.example.com A <ip>.

Database & backup

GejalaPenyebabSolusi
Aplikasi: ECONNREFUSED / ENOTFOUND ke databaseMemakai URL eksternal/localhost dari dalam container, atau app di server remote memakai host internal.Pakai referensi (host internal) untuk app lokal; koneksi eksternal + port host untuk server remote.
Database status error saat dibuatTag image tidak ada, atau port host sudah dipakai.Hapus, buat ulang dengan tag/port lain.
Backup 20 byte / gagalKredensial/DB belum siap, atau disk penuh.Baca pesan error di baris backup; cek Disk Docker.
Tes tujuan S3: NoSuchBucket / gagal ke MinIO lokalBucket belum ada, region salah, atau endpoint memakai localhost dari container.Buat bucket; pakai nama container MinIO + :9000 sebagai endpoint.
Data browser: 400 hanya satu statement; di akhir atau beberapa statement.Jalankan satu per satu, atau pakai Impor SQL.
Member: 403 saat menjalankan queryStatement tulis.Hanya owner/admin; sesi member read-only di engine.

Terminal & server remote

GejalaPenyebabSolusi
Terminal: auth failed + perintah otorisasiKey platform belum di authorized_keys user itu.Jalankan perintah yang ditampilkan di host sebagai user itu.
Terminal: TERMINAL_SSH_USER is not setEnv kosong.Isi di .env.dist, restart stack.
Terminal: ECONNREFUSED ke host.docker.internalsshd mati/port salah, atau Linux tanpa extra_hosts.Pakai IP gateway docker0 (mis. 172.17.0.1) sebagai TERMINAL_SSH_HOST.
Direktori key tidak writable (uid 1000)./secrets milik root.sudo chown -R 1000:1000 ./secrets.
Server remote: docker: command not found / permission deniedDocker belum ada di PATH user, atau user tidak di grup docker.curl -fsSL https://get.docker.com | sh, usermod -aG docker <user>.
Deploy remote sukses tapi tidak bisa diaksesPort host kosong atau firewall server menutup port.Isi Port host; buka port di ufw/security group. Domain tidak berlaku di server remote.

Notifikasi, jobs, disk

GejalaPenyebabSolusi
Tes notifikasi sukses, event tidak pernah masukToggle event belum aktif, atau event tidak terjadi (mis. container mati di server remote tidak terdeteksi).Nyalakan toggle; picu event sungguhan.
Project tidak terlihat oleh rekanIa belum ditambahkan sebagai anggota project; member instance hanya melihat project yang ditugaskan.Tambahkan di tab Anggota project — lihat Project.
Viewer: tombol ada tapi aksi gagal 403Peran project viewer bersifat baca-saja dan ditegakkan di API.Naikkan ke developer bila memang perlu mengubah.
Swarm: task pending / image pull failed di node lainConstraint tidak cocok, atau REGISTRY_PUBLIC_HOST masih localhost sehingga node lain tak bisa menarik image.Lihat Docker Swarm.
Job jalan pada jam yang salahZona waktu API = UTC.Geser jam di cron (WIB = UTC+7).
Job: container not runningTarget Di container tapi aplikasi stopped.Pakai Container terpisah atau start aplikasi.
Disk penuh (atau notifikasi disk hampir penuh)Image deployment lama, dangling image, build cache, backup lokal.Settings → Disk Docker → Bersihkan sekarang; turunkan Riwayat deployment & jumlah simpan backup; GC registry.
Stack compose: service tidak melihat envEnv stack hanya untuk interpolasi.Tambahkan environment: di service.

Mulai dari nol (uji coba)

Menghapus semua data aoox — bukan container aplikasi/database yang sudah dibuat dari dashboard:

docker compose -f docker-compose.dist.yml --env-file .env.dist down -v
docker compose -f docker-compose.dist.yml --env-file .env.dist up -d
Container app/db/registry/proxy tetap ada dan akan yatim setelah reset. Hapus dulu dari dashboard, atau: docker ps -aq --filter label=com.docker.compose.project=aoox | xargs docker rm -f (dan volume-nya bila memang ingin bersih total).

Referensi port & env

PortUntukEnv
3000Web (dashboard)WEB_PORT
3001APIAPI_PORT
5000Registry lokalREGISTRY_PORT
80 / 443Reverse proxy (ACME butuh 80)PROXY_HTTP_PORT / PROXY_HTTPS_PORT
22SSH ke host (terminal)TERMINAL_SSH_PORT
9000 / 9001MinIO dari template (API / Console)—

Melapor issue

Bila belum teratasi, buka issue di GitLab aoox-api ↗ dengan:

  • Versi image API/web (kartu Host di Dashboard, atau tag di .env.dist) dan versi Docker.
  • Langkah yang dilakukan dan yang diharapkan.
  • Potongan log API di sekitar waktu kejadian (rahasia sudah disensor; tetap periksa).
  • Untuk deploy: log deployment dari tab Deploy dan cara build yang dipakai.

Langkah berikutnya

Ada yang keliru? Edit halaman ini di GitLab ↗