Deploy aplikasi ke server itu harusnya gak ribet. Tapi kenyataannya, tiap kali mau jalanin project baru di VPS, kamu harus setup Docker manual, nulis docker-compose.yml, konfigurasi reverse proxy, urus SSL certificate, dan repeat semua itu buat setiap aplikasi. Capek, kan? Makanya platform kayak Heroku, Vercel, atau Railway laku keras – mereka bikin proses deploy jadi tinggal klik. Masalahnya, layanan itu berbayar dan data kamu ada di server orang lain. Nah, gimana kalau ada cara dapetin pengalaman deploy semudah itu, tapi di VPS sendiri? Di sinilah Dokploy masuk. Di artikel ini saya bakal bahas cara install Dokploy di VPS dari nol sampai bisa deploy aplikasi pertama lewat HTTPS, lengkap dengan penjelasan detail di setiap langkahnya.
Apa Itu Dokploy Sebenarnya
Dokploy itu open-source PaaS (Platform as a Service) yang bisa kamu install di VPS sendiri. Buat yang belum familiar, PaaS itu platform yang nyediain lingkungan siap pakai buat deploy aplikasi tanpa harus ngurusin infrastruktur dari nol. Contoh PaaS yang populer itu Heroku, Vercel, atau Railway – bedanya, Dokploy kamu host sendiri di server kamu, jadi data dan kontrol sepenuhnya di tangan kamu.
Di balik layar, Dokploy jalan di atas dua teknologi utama: Docker Swarm dan Traefik. Docker Swarm itu fitur bawaan Docker buat orkestrasi container. Bedanya sama Docker Compose yang biasa kamu pakai, Swarm didesain buat manage container di skala yang lebih besar dan bisa handle multi-node (beberapa server sekaligus). Meskipun di setup awal kamu cuma pakai satu VPS, Dokploy tetep pakai Swarm karena fitur service management-nya lebih robust – misalnya auto-restart kalau container crash dan rolling update tanpa downtime.
Traefik di sisi lain adalah reverse proxy modern yang otomatis detect container baru dan langsung buatin routing-nya. Jadi tiap kali kamu deploy aplikasi baru lewat Dokploy, Traefik otomatis bikin route dari domain ke container yang bener, termasuk generate SSL certificate dari Let”s Encrypt. Kamu gak perlu edit config Nginx atau Certbot manual sama sekali.
Lewat dashboard web-nya, kamu bisa deploy berbagai jenis workload: aplikasi dari Git repository, Docker image, database (PostgreSQL, MySQL, MongoDB, Redis), sampai static site. Semuanya tinggal klik-klik dari browser, gak perlu SSH ke server tiap kali mau deploy sesuatu yang baru.

Bedanya Dokploy Sama Coolify yang Udah Pernah Saya Bahas
Saya sendiri udah pernah nulis cara install Coolify di blog ini. Sampai sekarang Coolify tetep jadi pilihan solid, apalagi buat yang butuh fitur lengkap kayak backup terjadwal, resource monitoring detail, dan multi-server management dari satu dashboard. Tapi Coolify juga lebih kompleks – setup awalnya lebih banyak langkah dan dashboard-nya bisa overwhelming buat yang baru pertama kali nyoba PaaS self-hosted.
Dokploy di sisi lain lebih minimalis dan fokus ke kesederhanaan. Instalasinya cuma satu command, dashboard-nya clean dan gak banyak menu yang bikin bingung, dan onboarding-nya didesain biar kamu bisa deploy aplikasi pertama dalam hitungan menit. Di balik layar, Dokploy pakai Docker Swarm secara default, sementara Coolify lebih fleksibel bisa jalan di Docker biasa maupun Swarm tergantung setup.
Kapan Saya Tetep Pilih Coolify Ketimbang Dokploy
Dari pengalaman megang beberapa server buat deploy container sehari-hari, saya pribadi masih balik ke Coolify kalau infrastrukturnya udah lumayan kompleks. Misalnya kalau butuh manage 3-4 server dari satu dashboard, atau butuh fitur backup database otomatis yang udah built-in. Coolify juga punya integrasi Git yang lebih mature – auto-deploy pas push ke branch tertentu udah jalan mulus.
Tapi kalau cuma punya satu VPS kecil dan mau cepet-cepet deploy satu dua aplikasi tanpa banyak konfigurasi, Dokploy kerasa lebih pas. Gak ada fitur yang overwhelming, langsung to the point. Intinya ini soal skala dan kebutuhan, bukan soal mana yang lebih bagus secara mutlak. Kalau masih ragu, coba aja dua-duanya di VPS terpisah dan rasain sendiri bedanya di pemakaian sehari-hari.
Prasyarat Sebelum Install Dokploy di VPS
Sebelum masuk ke instalasi, ada beberapa hal yang wajib disiapin dan dicek dulu. Jangan skip bagian ini, soalnya mayoritas masalah yang muncul setelah install itu sebenernya karena prasyarat yang belum terpenuhi.
1. VPS dengan Spesifikasi Minimum
Dokploy tergolong ringan dibanding PaaS self-hosted lain, tapi tetep butuh resource yang cukup. Minimal siapin VPS dengan spek berikut:
- RAM: Minimal 2GB. Ini buat Dokploy sendiri plus Traefik dan Docker Swarm yang jalan di background. Kalau mau deploy beberapa aplikasi sekaligus, rekomendasi 4GB
- Storage: Minimal 30GB disk kosong. Docker image dan container data bisa makan space lumayan cepet
- CPU: 1-2 vCPU udah cukup buat penggunaan ringan sampai menengah
- OS: Ubuntu 18.04 sampai 24.04, Debian 10-12, Fedora 40, atau CentOS 8-9. Rekomendasi pakai Ubuntu 22.04 atau 24.04 LTS buat pemula
Cara cek spek VPS kamu sekarang:
free -h # cek RAM
df -h # cek disk space
nproc # cek jumlah CPU
lsb_release -a # cek versi OS
2. Domain yang Sudah Diarahkan ke IP VPS
Kamu butuh domain atau subdomain yang A record-nya udah ngarah ke IP VPS kamu. Misalnya deploy.contoh.com atau dokploy.contoh.com. Ini penting buat akses dashboard lewat HTTPS nanti, bukan lewat IP:port yang gak aman. Setup A record-nya di DNS manager domain kamu (Cloudflare, Namecheap, atau provider lain). Pastiin propagasi DNS udah selesai sebelum mulai install – biasanya makan waktu beberapa menit sampai beberapa jam.
Cara cek apakah DNS udah propagate:
dig deploy.contoh.com +short
Kalau hasilnya nunjukin IP VPS kamu, berarti udah siap.
3. Port 80, 443, dan 3000 Harus Terbuka
Ini yang paling sering bikin masalah dan paling sering dilupain. Dokploy butuh tiga port ini terbuka:
- Port 80 – HTTP, dipakai Traefik buat redirect ke HTTPS dan verifikasi SSL certificate dari Let”s Encrypt
- Port 443 – HTTPS, buat akses dashboard dan semua aplikasi yang kamu deploy lewat domain
- Port 3000 – Dashboard Dokploy, dipakai buat akses pertama kali sebelum domain di-setup. Nanti port ini bakal ditutup lagi setelah domain beres
Penting: banyak provider VPS punya firewall tambahan di level panel (bukan di OS). Misalnya DigitalOcean, Vultr, atau Hetzner punya firewall rules di dashboard mereka. Kalau kamu udah buka port di UFW tapi dashboard tetep gak bisa diakses, cek juga firewall di panel provider VPS kamu.
4. Docker Belum Perlu Diinstall Manual
Ini yang bikin Dokploy beda dari kebanyakan tool self-hosted lain. Kamu gak perlu install Docker dulu sebelum install Dokploy. Script instalasi Dokploy bakal otomatis ngecek apakah Docker udah ada di VPS kamu. Kalau belum, dia bakal install Docker sendiri. Kalau udah ada, dia langsung pakai yang existing. Jadi kalau VPS kamu masih fresh dan belum ada apa-apa, gak masalah sama sekali.
Tapi kalau kamu udah pernah install Docker manual sebelumnya, pastiin Docker Swarm belum pernah di-init buat keperluan lain. Dokploy butuh Swarm node yang masih bersih. Cara ceknya:
docker info | grep Swarm
Kalau hasilnya Swarm: inactive, berarti aman. Kalau Swarm: active, kamu perlu leave dulu dengan docker swarm leave --force sebelum install Dokploy.
Cara Install Dokploy di VPS Step by Step
Sekarang masuk ke bagian inti. Ikutin langkah-langkah di bawah ini satu per satu dari awal sampai akhir.

Step 1 – Buka Port yang Dibutuhin di UFW
Sebelum jalanin script instalasi, pastiin dulu port-port yang dibutuhin udah terbuka. Kalau kamu pakai UFW sebagai firewall (dan seharusnya memang pakai), jalanin command berikut satu per satu. Kalau belum familiar sama UFW, baca dulu panduan setup UFW yang udah saya tulis sebelumnya:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3000/tcp
Penjelasan setiap port:
- Port 80 – HTTP, dipakai Traefik buat verifikasi SSL certificate dan redirect ke HTTPS
- Port 443 – HTTPS, buat akses dashboard dan semua aplikasi yang di-deploy
- Port 3000 – Dashboard Dokploy, buat setup awal sebelum domain dipasang (nanti ditutup lagi)
Cek statusnya buat mastiin semua udah terbuka:
sudo ufw status
Penting: Kalau provider VPS kamu punya firewall tambahan di panel (kayak DigitalOcean, Vultr, Hetzner), jangan lupa buka juga port-port ini di sana. UFW cuma ngatur firewall di level OS, bukan di level network provider.
Step 2 – Jalankan Script Instalasi Dokploy
Ini bagian paling gampangnya. Dokploy nyediain install script resmi yang tinggal dijalanin satu command lewat SSH:
curl -sSL https://dokploy.com/install.sh | sh
Penjelasan command ini:
- curl -sSL – download script dari URL. Flag
-sbuat silent mode (gak nunjukin progress bar),-Sbuat tetep nunjukin error kalau ada,-Lbuat follow redirect - | sh – pipe hasil download langsung ke shell buat dieksekusi
Yang dilakuin script ini secara otomatis:
- Ngecek dan install Docker kalau belum ada di VPS kamu
- Initialize Docker Swarm mode
- Pull image Dokploy dari Docker Hub
- Jalanin Dokploy sebagai Docker Swarm service (bukan container biasa)
- Setup Traefik sebagai reverse proxy
Proses ini makan waktu sekitar 2-5 menit tergantung kecepatan internet VPS kamu. Tunggu sampai muncul pesan sukses yang nunjukin URL akses dashboard.
Step 3 – Bikin Akun Admin di Dashboard
Begitu instalasi selesai, buka browser dan akses dashboard Dokploy lewat alamat berikut:
http://ip-vps-kamu:3000
Ganti ip-vps-kamu dengan IP address VPS kamu yang sebenarnya. Halaman pertama yang muncul bakal minta kamu bikin akun admin. Isi form-nya dengan:
- Email: Alamat email kamu yang aktif (buat login ke dashboard)
- Password: Bikin password yang kuat, minimal 12 karakter campuran huruf besar, kecil, angka, dan simbol
Penting: Simpen baik-baik kredensial ini di password manager atau catatan yang aman. Akun admin ini punya akses penuh ke semua container dan konfigurasi server yang kamu jalanin lewat Dokploy. Kalau sampai lupa, proses recovery-nya lumayan ribet.
Kalau halaman gak mau kebuka, jangan panik dulu. Cek lagi apakah port 3000 udah terbuka di UFW dan di firewall panel provider VPS kamu. Ini penyebab nomor satu dashboard gak bisa diakses padahal instalasi sukses.
Step 4 – Pasang Domain dan Aktifkan HTTPS
Akses lewat IP dan port 3000 itu cuma buat setup awal. Buat pemakaian jangka panjang, kamu wajib pasang domain biar dashboard bisa diakses lewat HTTPS yang aman. Caranya:
- Pastiin A record domain udah ngarah ke IP VPS. Misalnya
deploy.contoh.comdi-pointing ke123.456.789.0(IP VPS kamu) - Buka menu Settings di dashboard Dokploy
- Masuk ke bagian Domains
- Tambahin domain kamu (misalnya
deploy.contoh.com) - Tunggu beberapa detik – Traefik bakal otomatis generate SSL certificate dari Let”s Encrypt
Setelah proses selesai, coba akses https://deploy.contoh.com dari browser. Kalau muncul halaman login Dokploy dengan gembok hijau di address bar, berarti HTTPS udah aktif dan berjalan dengan bener.
Kalau SSL gagal di-generate, kemungkinan besar DNS belum selesai propagate. Tunggu 15-30 menit, lalu coba lagi. Pastiin juga port 80 terbuka, soalnya Let”s Encrypt butuh port ini buat verifikasi domain.
Step 5 – Tutup Akses Port 3000 ke Publik
Ini langkah yang paling sering kelewat dan paling penting dari sisi keamanan. Selama port 3000 masih kebuka ke publik, siapa aja yang tau IP VPS kamu bisa nyoba akses dashboard langsung tanpa lewat domain. Ini resiko keamanan yang gak perlu.
Begitu domain dan HTTPS udah jalan normal, tutup akses port 3000 dengan command berikut:
docker service update --publish-rm "published=3000,target=3000,mode=host" dokploy
Penjelasan command ini:
- docker service update – update konfigurasi service yang jalan di Docker Swarm (bukan
docker updatebiasa, soalnya Dokploy jalan sebagai Swarm service) - –publish-rm – hapus port mapping yang sebelumnya di-publish ke publik
- “published=3000,target=3000,mode=host” – spesifikasi port yang mau dihapus, yaitu port 3000
- dokploy – nama service Dokploy di Swarm
Setelah command ini dijalanin, dashboard cuma bisa diakses lewat domain HTTPS yang udah kamu setup. Akses lewat http://ip:3000 bakal ditolak. Ini bikin permukaan serangan jadi jauh lebih kecil.
Jangan lupa juga hapus rule UFW buat port 3000 yang tadi dibuka:
sudo ufw delete allow 3000/tcp

Deploy Aplikasi Pertama di Dokploy
Setelah dashboard aman diakses lewat HTTPS, sekarang waktunya test deploy aplikasi pertama buat mastiin semuanya berfungsi dengan bener.
Step 6 – Deploy Aplikasi Test dari Docker Image
Cara paling gampang buat test adalah deploy aplikasi sederhana dari Docker image. Di dashboard Dokploy:
- Klik “Create Project” – bikin project baru, kasih nama misalnya “test-app”
- Di dalam project, klik “Add Service”
- Pilih “Docker” sebagai tipe service
- Di field Docker Image, masukin
nginx:latest(web server ringan buat testing) - Klik “Deploy”
Tunggu beberapa detik sampai status berubah jadi Running. Kalau udah running, berarti Dokploy berhasil pull image dan jalanin container lewat Docker Swarm.
Step 7 – Pasang Domain untuk Aplikasi
Aplikasi yang udah di-deploy belum bisa diakses dari luar sampai kamu pasang domain. Di halaman service yang baru di-deploy:
- Masuk ke tab “Domains”
- Tambahin domain atau subdomain, misalnya
test.contoh.com - Pastiin A record domain ini udah ngarah ke IP VPS kamu
- Aktifkan opsi HTTPS biar Traefik otomatis generate SSL certificate
- Klik Save
Tunggu beberapa detik, lalu buka https://test.contoh.com di browser. Kalau muncul halaman default Nginx dengan tulisan “Welcome to nginx!”, selamat – deploy pertama kamu berhasil.
Step 8 – Verifikasi Semua Komponen Berjalan
Sebelum mulai deploy aplikasi production, cek dulu semua komponen Dokploy berjalan dengan bener. SSH ke VPS kamu dan jalanin command berikut:
docker service ls
Command ini nunjukin semua service yang jalan di Docker Swarm. Kamu harusnya liat minimal:
- dokploy – service utama Dokploy dengan replicas 1/1
- dokploy-traefik – reverse proxy Traefik dengan replicas 1/1
- Service aplikasi yang baru kamu deploy (kalau udah deploy di Step 6)
Kalau semua service nunjukin replicas 1/1, berarti semuanya jalan normal. Kalau ada yang 0/1, berarti service itu gagal start – cek log-nya dengan:
docker service logs dokploy --tail 50
Yang Perlu Diperhatiin Setelah Install Dokploy
Ada beberapa masalah yang sering muncul setelah install Dokploy. Baca bagian ini biar kamu gak perlu debugging berjam-jam buat masalah yang sebenernya umum dan solusinya gampang.
Dashboard Gak Bisa Diakses Padahal Instalasi Sukses
Ini masalah nomor satu yang paling sering dilaporin. Command instalasi jalan tanpa error, tapi pas buka http://ip:3000 di browser, halaman gak mau load atau timeout. Penyebabnya 99% ada di firewall. Cek tiga hal ini secara berurutan:
- UFW di VPS: Jalanin
sudo ufw statusdan pastiin port 3000 ada di daftar ALLOW. Kalau belum, tambahin dengansudo ufw allow 3000/tcp - Firewall panel provider VPS: Login ke dashboard DigitalOcean, Vultr, Hetzner, atau provider lain yang kamu pakai. Cek apakah ada firewall rules yang nge-block port 3000. Ini sering kelewat soalnya orang cuma fokus ke UFW
- Service Dokploy jalan atau belum: Cek dengan
docker service ls. Kalau replicas nunjukin 0/1, berarti service gagal start. Cek log-nya dengandocker service logs dokploy --tail 100
Error Docker Swarm Saat Instalasi
Kalau muncul error yang nyebut “Swarm” atau “node” pas jalanin script instalasi, kemungkinan besar VPS kamu sebelumnya udah pernah di-init Docker Swarm buat keperluan lain. Dokploy butuh Swarm node yang bersih. Solusinya:
docker swarm leave --force
Command ini bakal force leave dari Swarm cluster yang existing. Setelah itu, jalanin ulang script instalasi Dokploy dari awal. Perlu diinget, kalau kamu sebelumnya punya service lain yang jalan di Swarm, service itu bakal berhenti. Jadi pastiin gak ada workload penting yang masih jalan di Swarm sebelum leave.
SSL Certificate Gagal Di-generate
Kalau udah pasang domain di dashboard tapi HTTPS gak mau jalan dan browser masih kasih warning “Not Secure”, cek beberapa hal ini:
- DNS belum propagate: Cek dengan
dig domain-kamu.com +short. Kalau hasilnya belum nunjukin IP VPS kamu, tunggu 15-30 menit lalu coba lagi - Port 80 tertutup: Let”s Encrypt butuh port 80 buat verifikasi domain lewat HTTP challenge. Pastiin port 80 terbuka di UFW dan firewall panel provider
- Rate limit Let”s Encrypt: Kalau kamu udah terlalu sering request certificate buat domain yang sama dalam waktu singkat, Let”s Encrypt bisa nge-rate limit. Tunggu 1 jam sebelum coba lagi
Aplikasi yang Di-deploy Gak Bisa Diakses
Kalau aplikasi udah status Running di dashboard tapi gak bisa diakses lewat domain, cek hal-hal berikut:
- A record domain aplikasi: Pastiin domain atau subdomain yang kamu pakai buat aplikasi udah ngarah ke IP VPS yang sama
- Port mapping: Pastiin port yang di-expose di konfigurasi service sesuai sama port yang dipakai aplikasi di dalam container. Misalnya kalau aplikasi jalan di port 8080 di dalam container, pastiin itu yang di-set di Dokploy
- Traefik logs: Cek log Traefik buat liat apakah ada error routing:
docker service logs dokploy-traefik --tail 50
Dokploy Masih Aktif Dikembangin
Satu hal yang perlu kamu tau: Dokploy masih tergolong project yang relatif muda dibanding Coolify yang udah lebih mature. Artinya, fitur-fitur baru masih sering ditambahin dan kadang ada breaking changes di update tertentu. Sisi positifnya, development-nya cukup aktif di GitHub dan maintainer-nya responsif terhadap issue dan feature request. Sebelum update ke versi baru, biasain baca changelog dulu biar gak kaget kalau ada perubahan yang nge-break setup kamu.
Buat referensi dan troubleshooting lebih lanjut, cek dokumentasi resmi Dokploy atau langsung ke GitHub repository mereka.
Kesimpulan
Buat yang pengen pengalaman deploy aplikasi semudah Heroku atau Vercel tapi di server sendiri, Dokploy layak banget buat dicoba. Apalagi kalau kamu cuma punya satu VPS dan gak butuh fitur kompleks kayak multi-server management. Instalasinya cuma satu command, setup domain dan HTTPS otomatis lewat Traefik, dan dashboard-nya clean tanpa bikin overwhelmed.
Tapi kalau infrastruktur kamu udah mulai kompleks dengan beberapa server dan butuh fitur kayak backup terjadwal atau monitoring detail, Coolify mungkin lebih cocok. Dua-duanya punya kelebihan masing-masing, dan cara terbaik buat tau mana yang pas itu ya dicoba langsung dengan workload asli.
Yang paling penting, jangan lupa tutup port 3000 setelah domain di-setup, dan selalu cek firewall di dua tempat: UFW di VPS dan firewall panel provider. Dua hal sederhana ini bisa ngejaga server kamu dari banyak masalah keamanan yang gak perlu.


























