Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia

Oleh Ita Sugiharti
Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia

Halo, DomaiNesians! Bagi kalian para developer atau tim IT, proses deploy aplikasi web sering kali menjadi tahap yang penuh tantangan. Mulai dari menyiapkan server, mengkonfigurasi environment, hingga memastikan aplikasi berjalan tanpa downtime. Semuanya butuh waktu dan ketelitian ekstra.

Nah, untuk kalian yang ingin proses deploy jadi lebih lancar, efisien, dan minim risiko, kalian bisa coba menggunakan Kamal. Kamal adalah tools deployment open-source (dari Basecamp/37signals) yang dirancang untuk menyederhanakan seluruh proses deployment aplikasi berbasis kontainer (Docker), mulai dari staging hingga produksi.

Nah, buat kalian yang tertarik menggunakan Kamal dalam proses deployment, simak artikel ini sampai tuntas ya!

Apa Itu Kamal?

Kamal adalah sebuah alat deployment berbasis CLI yang untuk mempermudah proses deployment atau peluncuran aplikasi web kontainer, terutama untuk mereka yang ingin beralih dari sistem deployment klasik seperti Capistrano. 

Nama Kamal sendiri terinspirasi dari alat navigasi yaitu alat navigasi Arab kuno yang dulu digunakan oleh para pelaut Arab dan Asia Selatan untuk menentukan lintang di laut.

Berbeda dengan Kubernetes yang kompleks, atau Capistrano yang manual, Kamal adalah alat deployment yang menggabungkan kemudahan dan kontrol dengan skala rendah. Di sini, kamu bisa menggunakan berbagai fitur seperti:

  • Automasi deployment (build, push, deploy, restart, hingga rollback).
  • Pengelolaan container Docker secara terintegrasi.
  • Dukungan multi-server tanpa downtime.
  • Konfigurasi layanan tambahan seperti database, load balancer, dan proxy.

Kamal sendiri bekerja dengan cara mengatur seluruh proses deployment dari tahap build image Docker, meng-uploadnya ke container registry, hingga menjalankan aplikasi di server target. Selain itu, alat deployment yang satu ini juga bisa digunakan untuk berbagai kebutuhan seperti server fisik (bare metal), Virtual Machine (termasuk Cloud VPS DomaiNesia), dan lingkungan hybrid dengan banyak node.

Mengapa Memilih Kamal untuk Deployment?

Meskipun banyak tools deployment di luar sana, tapi Kamal punya beberapa keunggulan yang membuatnya cocok untuk developer di Indonesia. Berikut beberapa alasan mengapa kamu perlu mempertimbangkan untuk menggunakannya:

  • Praktis dan Sederhana

Proses deployment dapat dijalankan hanya dengan beberapa perintah CLI, sehingga tidak butuh setup yang terlalu rumit.

  • Automasi Menyeluruh

Mulai dari update kode, restart container, hingga migrasi database dapat dijalankan otomatis, sehingga mengurangi risiko human error.

  • Stabil dan Andal

Deployment dilakukan secara rolling (bergilir), sehingga aplikasi tetap online selama proses update.

  • Kompatibel dengan VPS Linux

Cloud VPS DomaiNesia mendukung berbagai distro Linux (Ubuntu, Debian, CentOS), yang sepenuhnya kompatibel dengan Kamal.

  • Tanpa Downtime
Baca Juga:  Cara Buat Website Profesional di aaPanel dan VPS DomaiNesia

Fitur rolling deployment dan health check memastikan aplikasi tetap tersedia untuk pengguna.

  • Integrasi Layanan Tambahan

Kamal adalah tools yang bisa mengatur layanan seperti Traefik (reverse proxy) atau Redis, langsung dalam workflow deployment.

Syarat Deployment Kamal di VPS DomaiNesia

Untuk melakukan deployment aplikasi web dengan tools deployment, berikut beberapa persyaratan yang perlu kamu siapkan:

  • VPS yang aktif dan bisa diakses via SSH. Pada tutorial kali ini, kita menggunakan Cloud VPS DomaiNesia dengan sistem operasi Ubuntu 22.04.
  • Domain yang mengarah ke server (opsional, tapi disarankan).
  • Akses root atau user dengan sudo privileges.
  • Docker sudah terinstal di server.
  • Kamal terinstal di sistem lokal atau langsung di server.
  • Kode aplikasi web yang sudah siap dideploy (misalnya aplikasi Ruby on Rails, Laravel, atau Node.js).

Persiapan Deployment Menggunakan Kamal

Sebelum kita masuk ke tutorial bagaimana cara teknis deployment aplikasi web, berikut beberapa persiapan yang perlu kita lakukan.

1. Akses VPS dan Update Sistem

Pertama, login ke server Cloud VPS DomaiNesia menggunakan SSH:

Ganti IP_SERVER dengan alamat IP Server VPS kamu. Lalu, update sistem dengan perintah berikut:

2. Instal Docker di Server

Karena Kamal adalah tools deployment yang bekerja dengan container, kamu tidak perlu menginstal Ruby, Node.js, Laravel, atau PHP langsung di server. Cukup pastikan Docker sudah tersedia:

Lalu cek versi Docker untuk memastikan instalasi berhasil:

Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia 1

Sebagai catatan, docker-compose tidak dibutuhkan untuk menjalankan Kamal, karena proses orkestrasi container sudah ditangani langsung oleh Kamal.

3. Instal Kamal

Dalam proses instalasi, kamu bisa memilih salah satu opsi berikut sesuai kebutuhan dan spesifikasi VPS kamu.

a. Opsi A – Install via Ruby

Jika Ruby sudah terpasang di VPS kamu, jalankan perintah berikut:

b. Opsi B – Jalankan via Docker (Tanpa Install Ruby)

Jika kamu tidak ingin menginstal Ruby, jalankan Kamal langsung lewat Docker. Selanjutnya, agar kamu tidak perlu mengetik perintah yang panjang setiap kali mengeksekusi perintah Kamal, buat alias dengan cara berikut:

c. Jalankan alias

d. Untuk membuat alias permanen (opsional)

Jika kamu tidak mau mengetik ulang setiap kali menjalankan perintah Kamal, simpan alias untuk membuatnya permanen.

4. Buat Proyek (Jika Belum Ada Proyek)

Untuk mendeploy aplikasi web menggunakan Kamal, kamu harus memiliki proyek yang ingin dideploy terlebih dahulu. Jika kamu belum punya proyek aplikasi web untuk dicoba, buat proyek Node.js sederhana sebagai dummy:

Baca Juga:  Cara Buat Website Profesional di aaPanel dan VPS DomaiNesia

a. Buat folder proyek

b. Buat file index.js

c. Buat Dockerfile

5. Build dan Jalankan Docker (Opsional sebelum deploy)

Setelah berhasil membuat aplikasi, tes lokal aplikasi tersebut dengan build & run Docker.

Selanjutnya, cek log & pastikan aplikasi berjalan:

Jika sudah berjalan, akses aplikasi dari browser kamu dengan URL berikut:

Ganti IP_SERVER dengan alamat IP VPS kalian masing-masing. Jika berhasil maka akan muncul output sebagai berikut:

Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia 2

Dengan output tersebut, artinya proyek kamu sudah siap untuk dideploy menggunakan Kamal. Jika terjadi error saat kamu mengakses URL tersebut, jalankan perintah berikut untuk cek port 3000 apakah port tersebut diblokir firewall:

6. Konfigurasi Kamal

Setelah Kamal terinstal, jalankan perintah berikut untuk menginisialisasi Kamal di folder proyek:

Kamal menggunakan file deploy.yml untuk mengatur proses deployment. Struktur sederhananya:

Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia 3

Dalam konfigurasi tersebut kamu bisa mengatur beberapa hal yaitu:

  • Nama service aplikasi
  • Image kontainer (nama yang ada di registry)
  • List server target deploy
  • Registri dan autentikasi
  • Environment variable rahasia

Proses Deployment Aplikasi Web Menggunakan Kamal

Setelah konfigurasi siap, jalankan proses deployment aplikasi web menggunakan Kamal.

1. Setup Awal

Jalankan perintah berikut untuk setup awal Kamal:

Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia 4

Kamal akan menyiapkan direktori, izin akses, dan service yang dibutuhkan di server.

2. Deploy Aplikasi

Setelah setup, jalankan perintah berikut untuk deploy aplikasi:

Baca Juga:  Cara Buat Website Profesional di aaPanel dan VPS DomaiNesia

Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia 5

Perintah ini akan menjalankan beberapa proses yaitu:

  • Build image Docker.
  • Push image ke registry.
  • Pull image ke server target
  • Menjalankan container baru di server.
  • Mengalihkan traffic via kamal-proxy setelah health check sukses
  • Menghentikan container lama setelah container baru berjalan stabil.
  • Menghapus image dan kontainer lama.

3. Mengelola Environment Variables

Tambahkan atau ubah variabel environment:

Gunakan perintah ini setiap ada perubahan file .env.

4. Menjalankan Perintah di Server

Berikut contoh perintah yang bisa kamu jalankan:

Atau membuka bash shell dalam container:

Fitur Tambahan: Monitoring, Rollback, dan Management

Kamal juga punya beberapa perintah lain yang bisa kamu gunakan yaitu:

1. Monitoring dan Maintenance

Kamal menyediakan perintah untuk memantau status server:

Cara Deploy Aplikasi Web dengan Kamal di VPS DomaiNesia 6

Atau khusus aplikasi:

2. Rollback Jika Terjadi Masalah

Jika deployment terbaru gagal, jalankan perintah berikut untuk melakukan rollback:

Kamal akan mengembalikan container ke versi sebelumnya.

3. Membersihkan Server

Jalankan perintah berikut jika ingin menghapus aplikasi sepenuhnya:

Sebagai catatan, sebelum menjalankan perintah kamal remove, pastikan kamu sudah melakukan backup server.

4. Mengelola Traefik

Berikut perintah untuk restart Traefik:

Rolling restart untuk menghindari downtime:

5. Cek Versi Aplikasi

Untuk cek versi aplikasi yang sedang berjalan menggunakan Kamal, gunakan perintah berikut:

6. Menghentikan atau Memulai Kontainer

Jika kamu ingin menghentikan atau memulai ulang kontainer di Kamal, jalankan perintah berikut:

  • Stop kontainer:

  • Mulai ulang kontainer:

Kesimpulan

Kamal adalah solusi praktis yang bisa digunakan untuk melakukan deployment aplikasi web dengan mudah dan cepat. Jika kamu ingin mendapatkan pengalaman deployment aplikasi dengan Kamal yang lancar tanpa kendala, kamu bisa mengkombinasikan Kamal dengan Cloud VPS DomaiNesia.

Dengan kombinasi tersebut kamu bisa melakukan deployment dengan cepat tanpa downtime, mengelola environment dengan aman, melakukan rollback dengan mudah jika ada masalah, serta menjaga server tetap optimal dan rapi.

Jadi, jika kamu ingin mencoba, mulailah dengan Cloud VPS DomaiNesia yang sudah dilengkapi akses root penuh, pilihan OS yang fleksibel, performa tinggi, dan backup otomatis.

Ita Sugiharti

If this post has reached you, then I hope it helps. If you have any questions or feedback, just leave a comment.

Berlangganan Artikel

Dapatkan artikel, free ebook dan video
terbaru dari DomaiNesia

{{ errors.name }} {{ errors.email }}
Migrasi ke DomaiNesia

Migrasi Hosting ke DomaiNesia Gratis 1 Bulan

Ingin memiliki hosting dengan performa terbaik? Migrasikan hosting Anda ke DomaiNesia. Gratis jasa migrasi dan gratis 1 bulan masa aktif!

Ya, Migrasikan Hosting Saya

Hosting Murah

This will close in 0 seconds