DocsAplikasi
Membuat aplikasi
Menghubungkan repo Git atau image siap pakai ke sebuah project dan mengatur bagaimana container-nya dijalankan.
- Waktu
- ± 3 menit + durasi build
- Butuh
- Registry lokal (sumber Git) atau image
- Hasil
- Container berjalan dari branch pilihanmu
Prasyarat
- Untuk aplikasi dari repo Git: registry lokal sudah di-provision — image hasil build di-push ke sana. Tanpa ini deploy pertama gagal.
- Sudah ada project tempat aplikasi ini akan tinggal.
- Untuk repo privat: kredensial Git sudah ditambahkan di Settings.
- Aplikasi listen di port yang tetap dan menerima koneksi dari
0.0.0.0, bukan hanyalocalhost.
Dua sumber aplikasi
| Sumber | Yang diisi | Alur deploy |
|---|---|---|
| Git repository | URL repo, branch, kredensial (bila privat), cara build | Clone → build (Dockerfile / Nixpacks / statis) → push ke registry → jalankan. |
| Image siap pakai (di-pull) | Referensi image (ghcr.io/acme/api:1.4) dan, bila privat, registry eksternal yang menyimpan kredensialnya | Tanpa build: image ditarik lalu dijalankan. Bisa update otomatis saat digest tag berubah. |
Registry lokal hanya wajib untuk sumber Git (tempat image hasil build disimpan). Aplikasi dari image tidak memerlukannya.
Langkah
Di halaman project, klik Aplikasi baru
Isi form. Sebagian besar bisa diubah lagi nanti di tab Pengaturan.
Field Keterangan Nama Jadi slug unik (app_name); nama container = aoox-app-<slug>. Git repository URL https repo. Tanpa user:token di URL — pakai select Kredensial Git untuk repo privat. Branch Branch yang di-build. Webhook hanya bereaksi pada push ke branch ini. Kredensial Git Tidak ada (repo publik) atau salah satu kredensial tersimpan. Cara build Dockerfile atau Nixpacks — lihat Cara build. Port container Port yang di-listen aplikasi di dalam container (mis. 3000). Port host Opsional. Isi kalau mau akses lewat IP:port tanpa domain. Kosongkan bila memakai domain — blue/green butuh port host kosong. Health check path Opsional tapi disarankan, mis. /health. Menentukan sukses/gagal deploy dan mengaktifkan blue/green.Server Host aoox (default) atau server remote. Hanya tampil bila ada server terdaftar. Mode deploy container (default) atau service dengan replika bila Swarm aktif — beserta penempatan node dan setelan rolling update. Update otomatis Hanya untuk sumber image: cek digest tag secara berkala dan deploy saat berubah. Batas CPU / memori Opsional. Lihat Monitoring. Contoh pengisian — aplikasi Next.js di repo publik- Nama
- shop
- Git repository
- https://github.com/acme/shop
- Branch
- main
- Kredensial Git
- Tidak ada (repo publik)
- Cara build
- Nixpacks
- Port container
- 3000
- Port host
- (kosong — pakai domain)
- Health check path
- /health
Simpan, lalu isi Environment variables (bila perlu)
Tab Pengaturan → editor env, satu
KEY=VALUEper baris. Nilai diterapkan saat container dibuat, bukan saat build — lihat Environment variables.Buka tab Deploy dan klik Deploy
Yang terjadi, dan terlihat di log realtime:
queued deployment dibuat building daemon Docker clone repo → build image pushing image → registry lokal (dilewati di server remote) starting container baru dibuat, tunggu healthy success container lama diganti · status aplikasi RunningDeploy berikutnya menolak (409) selama masih ada deployment aktif. Gagal build/push tidak menyentuh container yang sedang berjalan. Detail di Deploy & rollback.
Verifikasi
- Deployment pertama berakhir
successdan badge status aplikasi Running. - Log container (tab Deploy) menampilkan output aplikasi, mis.
Listening on :3000. - Bila memakai port host:
curl http://<ip-server>:<port-host>/menjawab. Bila memakai domain: lanjut ke Proxy & domain.
Tab di halaman aplikasi
| Tab | Isi |
|---|---|
| Deploy | Tombol Deploy/Stop/Start, daftar deployment, log deployment & log container streaming, metrik, Rollback. |
| Pengaturan | Form yang sama dengan saat membuat, plus Environment variables dan Build args. |
| Domain | Hostname untuk aplikasi + toggle HTTPS + cek DNS. |
| Mount | Volume, bind, file — dan backup volume. |
| Jobs | Perintah terjadwal. |
| Webhook | URL webhook, secret, dan preview pull request. |
Jebakan umum
| Gejala | Penyebab & solusi |
|---|---|
| Deploy gagal di tahap pushing | Registry lokal belum di-provision, atau REGISTRY_PUBLIC_HOST bukan localhost tanpa TLS. |
| Build gagal: repository not found | Repo privat tanpa Kredensial Git, atau token tidak punya akses baca. |
| Pull gagal: unauthorized (sumber image) | Image privat tanpa registry eksternal terpilih, atau token registry kedaluwarsa. |
| Health check tidak pernah healthy | Port container tidak cocok dengan port yang di-listen, aplikasi hanya listen di 127.0.0.1, path tidak menjawab 2xx, atau image tidak punya wget/curl/node/python3. |
| Running tapi domain 404 | Container belum healthy, atau DNS belum mengarah — pakai tombol cek DNS di tab Domain. |
| Env baru tidak berlaku | Env diterapkan saat container dibuat — deploy (atau rollback) sekali lagi. |
Server remote punya batasan
Aplikasi di server remote di-build di daemon server itu, tanpa push ke registry dan tanpa domain/Traefik — akses lewat port host. Detail di Server remote.
Langkah berikutnya
Ada yang keliru? Edit halaman ini di GitLab ↗