Helipod vs Dokploy: Managed PaaS atau Self-Hosted VPS

Foto oleh Esquilo via Wikimedia Commons (CC BY-SA 3.0)
Dokploy lebih murah di tagihan, Helipod lebih murah dalam jam kerja. VPS Jakarta 2 vCPU dan 2 GB berada di sekitar Rp 60.000 per bulan, sementara paket Micro Helipod yang setara berharga normal Rp 250.500 dan ditampilkan Rp 125.250 selama diskon bundle satu bulan. Selisihnya membeli patch window dan rota on-call milik orang lain, dan itu nilai yang bagus untuk tim yang tidak punya orang untuk menjaga server.
Keduanya, tergantung direktorinya. Bagian utama repository-nya Apache-2.0, tetapi semua yang ada di dalam direktori /proprietary tunduk pada Dokploy Source Available License 1.0, yang mengizinkan pemakaian di production hanya dengan perjanjian komersial yang sah dari Dokploy. Direktori itu benar-benar ada dan berisi fitur governance enterprise: SSO, SCIM, custom role, audit log, whitelabeling, dan license key. Deploy aplikasi biasa tidak terpengaruh.
Bisa. Helipod menagih dalam rupiah dan menerima QRIS serta transfer bank, dengan biaya pay-as-you-go yang dihitung harian dan saldo yang Anda top up lebih dulu. Itu menghilangkan satu kelas kegagalan yang nyata, karena kartu yang ditolak saat renewal bisa membuat aplikasi mati sama efektifnya dengan deploy yang salah.
Dokumentasinya meminta minimal 2 GB RAM dan 30 GB disk, karena yang membuat mesin kecil membeku adalah proses Docker build, bukan melayani traffic. Port 80, 443, dan 3000 juga harus kosong, dan instalasinya langsung gagal kalau tidak. Di VPS yang pernah dipakai untuk hal lain, sisa web server yang masih memegang port 80 adalah kegagalan pertama yang paling sering terjadi.
Pindahlah pada hari Anda butuh mesin, bukan pod. Helipod membatasi satu pod pada 4 vCPU, 8 GB RAM, dan 30 GB storage termasuk ukuran container image, jadi background worker dengan heap besar atau database yang ingin Anda tuning akhirnya akan melewati batas itu. Pindah ke arah sebaliknya pada saat pertama upgrade operating system memakan satu malam yang sudah Anda janjikan untuk hal lain.

Foto oleh Esquilo via Wikimedia Commons (CC BY-SA 3.0)
Ringkasan Utama
Helipod adalah managed PaaS Indonesia: server di Jakarta, tagihan rupiah lewat QRIS atau transfer bank, dan build engine bernama Helipack. Dokploy adalah PaaS open source yang Anda pasang di VPS milik sendiri. Pilihannya soal tanggung jawab, bukan fitur. Managed hosting membeli patch window dan pager milik orang lain, self-hosting membeli kendali dan tagihan yang lebih kecil.
VPS Jakarta saya berbiaya sekitar enam puluh ribu rupiah per bulan dan memikul Docker stack yang saya susun sendiri: uptime monitor, bot Telegram, dan satu coding agent otonom. Ketika saya menghitung apa yang dibutuhkan untuk menaruh aplikasi milik klien di sebelahnya, pertanyaannya berhenti menjadi soal teknis. Pertanyaannya berubah menjadi apakah saya mau terus jadi orang yang pertama tahu ketika mesin itu berhenti menjawab.
Tulisan ini membandingkan Helipod, managed PaaS Indonesia, dengan Dokploy, PaaS open source yang sudah saya jalankan di server sendiri. Semua harga, flag, dan klausul lisensi di bawah berasal dari halaman resmi masing-masing vendor, diperiksa awal September 2026, dan sumbernya saya sebutkan. Yang saya bawa dari pengalaman langsung adalah sisi self-hosted: sudah berbulan-bulan saya menjadi satu-satunya on-call rota untuk sebuah VPS Jakarta.
Keduanya mengambil satu Git repository, membangunnya menjadi container, lalu menyajikannya di balik TLS pada domain pilihan Anda, dalam hitungan menit. Perbandingan seperti ini biasanya berakhir di daftar fitur, dan itu justru sumbu yang paling tidak berguna, karena setelah sepekan dipakai serius daftar fitur keduanya saling mendekat. Yang tidak pernah mendekat adalah siapa yang bertanggung jawab ketika mesin di bawahnya bertingkah.
Jadi bacalah semua di bawah sebagai pertanyaan soal tanggung jawab, bukan soal kemampuan. Managed PaaS menjual sepotong tim operations milik orang lain: patch window mereka, kegagalan node mereka, rota pager mereka. Self-hosting menjual kendali dan tagihan bulanan yang jauh lebih kecil, dengan syarat Anda yang menjadi tim itu. Tidak ada yang benar secara umum. Jawabannya bergantung pada berapa orang tim Anda, dan pada apakah ada satu saja di antaranya yang benar-benar menikmati operations.
Helipod adalah PaaS Indonesia yang dijalankan PT Samudra Inovasi Terpadu, menjadwalkan container Anda sebagai pod di Kubernetes dengan server di Jakarta. Dua detail yang paling penting bagi tim lokal sebetulnya bukan fitur. Tagihannya dalam rupiah, pay-as-you-go, dihitung harian — mulai Rp 150 per hari per 0,125 vCPU, Rp 200 per hari per 128 MB RAM, dan Rp 75 per hari per GB storage — dan pembayarannya menerima QRIS serta transfer bank, jadi tidak ada kartu kredit internasional yang ikut terlibat. Siapa pun yang pernah melihat kartunya ditolak saat waktu renewal tahu apa yang hilang di sini.
Sisi build ditangani engine buatan sendiri bernama Helipack. Ia membaca composer.json, package.json, atau requirements.txt, menyimpulkan framework yang dipakai, lalu menghasilkan Dockerfile multi-stage dengan BuildKit build secrets, user non-root, dan tini sebagai init process. FAQ mereka sendiri menyebut daftar dukungannya dengan tegas: Node.js, PHP, Python, dan Go. Rust, Ruby, dan Java harus membawa Dockerfile sendiri. Kalimat semacam itu sebaiknya Anda temukan sebelum migrasi, bukan di tengah migrasi.
# Helipack decides your Dockerfile for you. This is how you read that
# decision instead of trusting it — documented on the Helipack feature page.
export HELIPACK_KEEP_DOCKERFILE=1
# a local build now writes .helipack.Dockerfile instead of discarding it
# What comes out is an ordinary multi-stage Dockerfile. Helipod's Laravel
# example on that page starts from FrankenPHP and mounts build secrets, so
# environment variables never land in an image layer:
#
# FROM dunglas/frankenphp:latest-php8.3-alpine AS base
# RUN --mount=type=secret,id=build_env php artisan config:cache
#
# Read it once at signup. It is a code review of your platform AND your exit
# plan: that file builds on any host with Docker on it.
# The line to find BEFORE a migration, not during one. From the same FAQ:
# Helipack detects Node.js, PHP, Python and Go. Rust, Ruby and Java are
# "bring your own Dockerfile" — supported, but no longer automatic.Managed tidak harus berarti tertutup. Flag HELIPACK_KEEP_DOCKERFILE yang didokumentasikan Helipack menuliskan Dockerfile hasil generate ke disk saat build lokal, dan file itu bisa dibangun di host mana pun yang punya Docker. Baca sekali saja ketika Anda mendaftar: file itu sekaligus menjadi code review terhadap platform Anda dan jalan keluar Anda dari platform itu.
Scaling-nya memakai Horizontal Pod Autoscaler Kubernetes dengan target default 70% CPU, dievaluasi tiap 15 detik, antara satu sampai sepuluh replica. Baca juga huruf kecil di halaman pricing-nya. Satu pod dibatasi 4 vCPU, 8 GB RAM, dan 30 GB storage dengan ukuran container image sudah ikut dihitung di dalamnya, dan FAQ Helipod mencatat bahwa HPA butuh minimal dua replica sebelum benar-benar bekerja. Itulah plafonnya, dan plafon itu dipublikasikan, sesuatu yang tidak dilakukan banyak platform lain.
Dokploy dipasang dengan satu baris perintah, dan baris itu memang bagian termudah dari hari Anda. Dokumentasinya lugas soal batas bawah: minimal 2 GB RAM dan 30 GB disk, karena yang membuat mesin kecil membeku adalah proses Docker build, bukan melayani traffic. Port 80, 443, dan 3000 harus kosong atau instalasinya langsung gagal, dan di VPS yang sudah punya riwayat pemakaian itulah kegagalan pertama yang paling sering muncul — ada sesuatu yang sudah menempati port 80.
# Dokploy's own installer. One line, and it is the easy part of the day.
curl -sSL https://dokploy.com/install.sh | sh
# The floor the docs state: at least 2 GB of RAM and 30 GB of disk, because
# Docker builds are what freeze small boxes — not serving traffic.
# Ports 80, 443 and 3000 must be FREE. The install fails outright if they
# are not, and on any VPS with a history something already holds 80:
ss -lntp | grep -E ':(80|443|3000) '
# Everything past this line is yours for as long as you run the box.
# Nobody schedules it for you, and nobody notices when you skip it.
apt-get update && apt-get upgrade -y # kernel, Docker, OpenSSL, the rebootImbalannya adalah platform yang serius: Nixpacks, Heroku buildpacks, atau Dockerfile Anda sendiri; dukungan Docker Compose native; PostgreSQL, MySQL, MariaDB, MongoDB, dan Redis lengkap dengan backup ke S3 destination milik Anda; Traefik dengan file editor; serta remote server, sehingga satu control plane bisa deploy ke beberapa mesin. Yang juga Anda terima adalah arus release-nya. Dokploy menandai 36 release antara 2 Januari dan 1 September 2026 — v0.29.4 pada Mei sudah menjadi v0.30.4 di hari saya menulis ini. Setiap satu di antaranya kini menjadi keputusan Anda, termasuk keputusan untuk melewatinya.
Dokploy disebut open source di mana-mana, dan bagian utama repository-nya memang Apache-2.0. File lisensinya menambahkan satu klausul yang mengubah jawabannya bagi sebagian tim: semua yang berada di dalam direktori /proprietary justru diatur oleh Dokploy Source Available License 1.0, yang mengizinkan penggunaan di production hanya jika Anda sudah menyetujui, dan mematuhi, perjanjian komersial yang sah dari Dokploy. Menyalin dan memodifikasinya untuk development serta testing tidak butuh subscription. Production butuh.
# The claim is "Dokploy is Apache-2.0". Half of that is true. Check it:
curl -s https://raw.githubusercontent.com/Dokploy/dokploy/canary/LICENSE.MD
# "All content that resides under a /proprietary directory of this
# repository, if that directory exists, is licensed under the license
# defined in LICENSE_PROPRIETARY."
#
# "if that directory exists" is carrying a lot of weight in that sentence,
# so find out whether it does instead of assuming either way:
curl -s "https://api.github.com/repos/Dokploy/dokploy/git/trees/canary?recursive=1" -o tree.json
grep -o '"path":"[^"]*proprietary[^"]*"' tree.json | wc -l
# 38 — three /proprietary directories holding 29 files, and they hold exactly
# the features an enterprise buys a platform for:
#
# apps/dokploy/components/proprietary/audit-logs/show-audit-logs.tsx
# apps/dokploy/components/proprietary/sso/register-saml-dialog.tsx
# apps/dokploy/components/proprietary/roles/manage-custom-roles.tsx
# packages/server/src/services/proprietary/license-key.tsKlausul itu bukan hipotesis, karena direktorinya benar-benar ada. Di branch canary pada awal September 2026 saya menghitung tiga direktori seperti itu berisi 29 file, dan isinya persis fitur governance yang membuat perusahaan besar membeli sebuah platform: audit log, SSO lewat SAML dan OIDC, SCIM provisioning, custom role, forward-auth di depan aplikasi yang Anda deploy, whitelabeling, dan pengelolaan license key. Dokumentasinya sejalan dengan kodenya. Secara default sebuah instance berjalan di standard edition, dan fitur enterprise memerlukan key yang diterbitkan tim Dokploy. Semua ini tidak membuat Dokploy pilihan yang buruk, hanya membuat tier gratisnya lebih kecil daripada yang disiratkan frasa open source.
Ada dua halaman di dokumentasi yang sama yang perlu diselaraskan sebelum Anda menyusun anggaran. Ikhtisar enterprise menyebut lisensi self-hosted bisa dipakai di lingkungan air-gapped, sementara halaman license key menyebut lisensi divalidasi setiap hari ke server Dokploy memakai alamat IP server Anda. Kalau alasan Anda self-hosting adalah tidak boleh ada apa pun di mesin itu yang menghubungi luar, tanyakan langsung mana yang berlaku untuk kasus Anda daripada mengasumsikan jawaban yang lebih menyenangkan.

Berikut perbandingannya, disaring hanya pada sumbu yang jawabannya memang berbeda. Deploy dari Git, TLS, environment variable, log di browser, dan web terminal ada di kedua sisi, jadi semuanya tidak membantu Anda memilih.
| Yang sebenarnya Anda pilih | Helipod (managed) | Dokploy (self-hosted) |
|---|---|---|
| Patch host OS dan kernel | Tim Helipod. Tidak ada node yang bisa Anda masuki | Anda. apt upgrade, versi Docker, dan memilih waktu reboot |
| Siapa yang sadar pada jam tiga pagi | Rota on-call mereka. Anda cukup membaca status page | Anda, dari ponsel, lewat alert yang Anda pasang sendiri |
| Biaya pada 2 vCPU dan 2 GB | Micro Rp 250.500 per bulan harga normal, Rp 125.250 di bundle satu bulan | Sekitar Rp 60.000 untuk VPS Jakarta, plus jam kerja Anda |
| Lisensi yang mengikat Anda | Layanan komersial dan ketentuannya. Tidak ada yang perlu diaudit | Inti Apache-2.0, tetapi /proprietary memakai DSAL 1.0 dan production butuh perjanjian |
| Lebih dari satu mesin | Tidak ada konsep server sama sekali. Anda menskalakan replica, satu sampai sepuluh | Remote server native dan build server terpisah, di atas Docker Swarm |
| Backup dan restore | Tidak ada produk backup aplikasi atau database di halaman pricing dan fitur publiknya | Backup database dan volume sudah termasuk, ke S3 destination yang Anda sediakan |
| Plafon yang lebih dulu Anda tabrak | 4 vCPU dan 8 GB per pod. Rust, Ruby, dan Java butuh Dockerfile Anda sendiri | Kesabaran Anda sendiri untuk operations. SSO, SCIM, dan audit log berlisensi |
Baris ketiga yang paling sering dikutip, baris kedua yang menentukan. Tagihan dua sampai empat kali lebih besar hanya pembulatan dibanding satu malam yang habis untuk memulihkan sebuah mesin, dan jelas murah kalau malam itu jatuh tepat saat launch. Baris keenam adalah kejutan yang jujur: tidak ada satu pun pilihan yang memberi Anda restore yang sudah teruji, jadi bacalah baris itu sebagai tugas yang tetap milik Anda di kedua sisi.
Pada spesifikasi yang sama, opsi managed memang lebih mahal, dan lebih murah dari dugaan banyak orang. Paket Micro Helipod adalah 2 vCPU, 2 GB RAM, dan 30 GB storage dengan harga normal Rp 250.500 per bulan, ditampilkan Rp 125.250 selama diskon 50% untuk bundle satu bulan masih berjalan — selalu buka halaman aslinya, karena harga promo adalah jenis angka yang kedaluwarsa tanpa pemberitahuan. VPS Jakarta saya sendiri pada 2 vCPU dan 2 GB yang sama berada di sekitar Rp 60.000, dan itu sudah saya tulis ketika mereview penyedianya.
Kolom yang tidak muncul di kedua tagihan adalah jam kerja. Di VPS itu, operating system, Docker daemon, sertifikat Traefik, firewall, backup job, dan tes yang membuktikan backup itu benar-benar bisa direstore, semuanya milik saya. Tidak ada satu pun pekerjaan itu yang sulit. Semuanya tidak bisa diprediksi waktunya, dan sifat itulah yang penting ketika deadline sudah dipatok. Platform managed tidak menghapus pekerjaan itu, melainkan memindahkan sebagian besarnya, dan seperti terlihat pada gambar di atas, lapisan data tetap berada di tempatnya.
Hitung biaya migrasi sebelum menghitung biaya bulanan. Kedua opsi memakai Dockerfile atau file Compose sebagai antarmukanya, jadi berpindah kira-kira sehari kerja ke arah mana pun, tapi hanya selama file itu tinggal di repository Anda dan bukan di form web sebuah platform. Commit Dockerfile-nya, simpan konfigurasi di environment variable, dan keputusan hari ini tetap bisa dibatalkan.

Aturan yang akhirnya saya pakai soal orang, bukan soal harga.
Sinyal untuk berpindah lebih mudah dirumuskan daripada sinyal untuk memulai. Tinggalkan managed pada hari Anda butuh mesin, bukan pod: background worker dengan heap besar, database yang ingin Anda tuning, satu proses yang menuntut lebih dari 4 vCPU. Pindah ke managed pada saat pertama sebuah upgrade operating system memakan satu malam yang sudah Anda janjikan untuk hal lain.
Anggap ini keputusan soal tenaga kerja yang kebetulan datang bersama tagihan hosting. Helipod adalah default yang lebih baik untuk tim kecil Indonesia, karena tagihan rupiah lewat QRIS dan rota on-call milik orang lain menghapus dua jenis friksi yang sama sekali berbeda sekaligus. Dokploy menjadi default yang lebih baik begitu operations menjadi hal yang tim Anda kerjakan dengan sengaja, bukan dengan enggan, dan kalau Anda mengambil jalan itu, baca klausul /proprietary sebelum menjanjikan SSO kepada siapa pun.
Sumber dan bacaan lanjutan