Deploy App Sendiri di VPS Pakai Dokploy
Vercel sama Netlify enak banget buat deploy: push ke Git, beres. Tapi pas project mulai banyak atau butuh database dan background worker, biayanya naik cepet dan kita mulai kepentok limit. Gue pengen pengalaman yang sama — push, auto-deploy, HTTPS otomatis — tapi di VPS sendiri yang biayanya tetap.
Jawabannya Dokploy: open source alternative buat Heroku, Vercel, dan Netlify yang jalan di atas Docker dan Traefik. Di post ini gue bakal pasang Dokploy di VPS lewat SSH, terus nge-deploy app dari repo GitHub sampai bisa diakses lewat domain dengan HTTPS.
Yang perlu disiapin
Sebelum mulai, pastiin dulu:
- VPS dengan minimal 2GB RAM dan 30GB disk. Ini penting, karena proses build Docker lumayan rakus resource dan bisa nge-freeze server kalau RAM-nya kurang. Dokploy juga ngerekomendasiin Ubuntu (20.04 ke atas).
- Port
80,443, dan3000harus kosong. Port80dan443dipakai Traefik buat HTTP/HTTPS, sedangkan3000buat dashboard Dokploy. Kalau salah satunya udah kepakai, instalasi bakal gagal. - Domain (opsional tapi disaranin) buat ngakses dashboard dan app lewat HTTPS.
Install Dokploy
Masuk ke VPS lewat SSH:
ssh root@ip-vps-lo
Terus jalanin satu baris installer resminya. Kalau Docker belum ada, script ini bakal masangin sekalian:
curl -sSL https://dokploy.com/install.sh | sh
Tunggu sampai kelar. Setelah itu, buka browser ke http://ip-vps-lo:3000. Lo bakal diarahin ke halaman setup buat bikin akun admin pertama. Isi email sama password, dan lo udah masuk ke dashboard Dokploy.
Pastiin firewall VPS ngebolehin trafik ke port
3000biar dashboard-nya kebuka. Beberapa provider nutup port secara default.
Bikin project dan application
Di Dokploy, semua dikelompokin dalam Project. Anggap aja ini folder buat ngumpulin app, database, dan service yang saling berkaitan.
- Klik Create Project, kasih nama, misalnya
web-app. - Masuk ke project itu, klik Create Service lalu pilih Application.
Application ini yang bakal narik kode dari repo lo dan nge-build-nya jadi container.
Sambungin repo GitHub
Di dalam application, buka tab Provider lalu pilih GitHub. Dokploy butuh akses ke repo lo, jadi dia bakal nuntun buat masang GitHub App lewat OAuth. Setelah connect:
- Pilih repository yang mau di-deploy.
- Pilih branch, biasanya
main.
Kalau repo lo private, tinggal sambungin lewat GitHub provider tadi atau pakai SSH key — Dokploy ngedukung dua-duanya.
Pilih build type
Dokploy punya beberapa cara nge-build app. Pas masuk ke tab Build Type, lo bakal nemu opsi ini:
- Nixpacks — auto-detect bahasa dan framework lo, nggak perlu nulis Dockerfile. Paling gampang buat mulai.
- Dockerfile — kalau repo lo udah punya Dockerfile sendiri, pakai ini biar build-nya persis kayak yang lo mau.
- Heroku Buildpacks — kompatibel sama buildpack ala Heroku.
Buat app sederhana, Nixpacks udah cukup. Tapi satu catatan penting: build di server itu makan RAM dan CPU. Kalau VPS lo pas-pasan, build yang berat bisa nge-freeze server. Dokploy sendiri nyaranin, buat produksi, mending build image-nya di CI/CD (kayak GitHub Actions) terus Dokploy tinggal nge-pull image jadinya. Tapi buat awal, build langsung di Dokploy oke-oke aja.
Set environment variables
Hampir semua app butuh env. Buka tab Environment di application lo, terus isi seperti biasa:
DATABASE_URL=postgres://user:pass@host:5432/dbname
NODE_ENV=production
SECRET_KEY=rahasia-banget
Env ini bakal di-inject ke container pas build dan runtime. Jangan taro secret langsung di kode ya, mending semua lewat sini.
Deploy
Tinggal klik tombol Deploy. Dokploy bakal narik kode dari repo, nge-build sesuai build type tadi, terus jalanin container-nya. Lo bisa pantau prosesnya secara real-time di tab Deployments — log build sama runtime kelihatan semua di situ, jadi gampang kalau mau debug.
Pasang domain + HTTPS
Begitu app jalan, saatnya kasih alamat. Buka tab Domains, klik Create Domain:
- Isi host, misalnya
app.domainlo.com. - Set port ke port yang dipakai app lo di dalam container (misalnya
3000buat app Node). - Aktifin HTTPS dan pilih Let's Encrypt buat sertifikat otomatis.
Pastiin domain-nya udah diarahin ke IP VPS lewat A record dulu. Setelah itu Traefik (yang udah dibawa Dokploy) bakal ngurus sertifikat TLS otomatis, lengkap sama perpanjangannya. Nggak perlu utak-atik Nginx atau certbot manual.
Buat ngetes cepet tanpa domain sendiri, Dokploy juga bisa generate domain gratisan via tombol dadu di bagian Domains. Praktis buat staging.
Auto deploy tiap push
Ini bagian yang bikin berasa kayak Vercel beneran. Di tab Deployments, lo bisa aktifin auto deploy lewat webhook. Dokploy bakal ngasih URL webhook yang tinggal lo daftarin di setting repo GitHub.
Habis itu, tiap kali lo git push ke branch yang dipilih, GitHub bakal nembak webhook-nya dan Dokploy otomatis nge-deploy ulang. Push, tunggu sebentar, app versi terbaru udah live.
Penutup
Segitu aja buat punya platform deploy sendiri. Dengan Dokploy, kita dapet pengalaman ala Vercel — push lalu auto-deploy, HTTPS otomatis dari Traefik, dashboard buat ngatur env dan domain — tapi semuanya jalan di VPS sendiri tanpa bayar per seat dan tanpa vendor lock-in.
Yang gue suka, Dokploy nggak cuma buat app. Dia juga bisa nge-host database (PostgreSQL, MySQL, MongoDB, Redis), jalanin Docker Compose, sampai scheduled jobs dan backup ke S3. Jadi satu VPS bisa jadi rumah buat seluruh stack lo. Kalau mau gali lebih jauh, dokumentasinya cukup lengkap. Selamat nyobain.