WhatsApp Gateway Sendiri di VPS

10 menit baca
WhatsApp Gateway Sendiri di VPS

Kalau kamu butuh bot WhatsApp yang jalan 24 jam tanpa langganan layanan gateway, jawabannya: pasang gateway WA sendiri di VPS. GoWA (go-whatsapp-web-multidevice) adalah proyek open-source berbasis Go yang berjalan sebagai companion multidevice: scan QR sekali dari HP, gateway menyediakan REST API untuk kirim dan terima pesan, dan VPS menjaganya tetap online. Panduan ini menuntunmu dari nol sampai QR connect lewat Docker, plus tabel keputusan kapan self-host dan kapan pakai jalur resmi. Kalau kebutuhanmu ternyata cuma tombol chat website, bagian tabel akan menghemat waktumu karena jawabannya tidak perlu gateway sama sekali.

Aplikasi Bisnis vs Cloud API vs Gateway Self-Host: Pilih yang Mana

Tiga jalur ini menjawab kebutuhan berbeda. Kalau kamu chat manual dari HP, aplikasi bisnis sudah cukup dan gratis. Kalau butuh otomasi resmi di nomor produksi, Cloud API adalah jalurnya. Kalau kamu developer yang mau kendali penuh dengan server sendiri, gateway self-host seperti GoWA jawabannya. Tabel di bawah merangkum ketiganya sebelum kamu commit ke salah satu.

FaktorAplikasi WhatsApp Business (di HP)Cloud API resmi (migrasi dari aplikasi)Gateway self-host GoWA (di VPS)
BiayaGratisGratis platformnya, bayar per percakapan (template message)Gratis softwarenya, bayar sewa VPS
Cara jalanManual di HPAPI resmi Meta; nomor aplikasi bisnis yang sudah berjalan bisa dimigrasi ke Cloud API lewat Embedded Signup (satu arah: setelah migrasi nomor tidak bisa dipakai di aplikasi lagi)Scan QR multidevice sebagai companion, lalu REST API
Butuh serverTidakYa, untuk webhook dan logika botYa, VPS online 24 jam
OtomasiBalasan cepat manual sajaPenuh, lewat API resmiPenuh, lewat REST API GoWA
Risiko blokirRendah (jalur resmi)Rendah (jalur resmi)Ada (jalur unofficial, pakai nomor cadangan)
Cocok untukUsaha kecil, chat manualBisnis yang siap pindah penuh ke API resmi untuk otomasiDeveloper, hobi, bot internal dengan server sendiri

Rekomendasi arahnya begini: pilih migrasi ke Cloud API kalau bisnismu siap meninggalkan aplikasi dan butuh otomasi resmi di nomor yang sama; pilih self-host kalau kamu developer atau butuh bot internal dengan nomor cadangan dan VPS yang kamu kelola sendiri. Dasar rujukan per 10 September 2026: halaman Get Started Cloud API menyebut Embedded Signup untuk menghubungkan nomor aplikasi bisnis yang sudah berjalan ke Cloud API (diakses 10 September 2026), sementara halaman Phone Numbers menyatakan nomor yang masih dipakai WhatsApp tidak bisa didaftarkan kecuali dihapus dulu dan nomor terdaftar tidak bisa dipakai bersama aplikasi WhatsApp (diakses 10 September 2026). Jadi anggap migrasi ini satu arah sebelum mengandalkannya untuk nomor produksi.

Sebelum lanjut ke tutorial: kalau setelah membaca tabel kamu sadar kebutuhanmu sebenarnya cukup tombol chat atau balasan otomatis di website WordPress, kamu tidak perlu gateway self-host sama sekali. Lima pilihannya sudah dirangkum di artikel plugin WhatsApp chatbot untuk WordPress, tanpa server, tanpa Docker.

Yang Kamu Butuhkan Sebelum Mulai

Empat hal di bawah ini wajib siap sebelum kamu mengetik perintah pertama. Yang paling sering diremehkan adalah nomor cadangan: banyak tutorial langsung pakai nomor utama, padahal sekali nomor utama kena pembatasan, seluruh chat bisnis ikut lumpuh. Siapkan juga akses root atau sudo ke VPS karena instalasi Docker dan pengaturan firewall membutuhkannya. Kalau VPS-mu panel-based tanpa SSH, cara Docker di artikel ini tidak bisa dipakai. Terakhir, pastikan HP yang dipakai pairing adalah HP yang sehari-hari online dan baterainya sehat, karena proses scan QR butuh aplikasi WhatsApp aktif saat itu juga.

  • VPS yang online 24 jam. Gateway harus selalu menyala supaya QR session tidak putus dan API selalu menjawab. Spesifikasi minimum yang umum dipakai: 1 vCPU, 1 GB RAM, Ubuntu 22.04.
  • Nomor WhatsApp cadangan. GoWA memakai jalur unofficial (multidevice companion, bukan Cloud API resmi), jadi jangan pakai nomor utama bisnismu. Siapkan nomor khusus bot.
  • Docker Engine terinstal di VPS. Kalau belum ada, ikuti tahap 1 di bawah. Akses root atau sudo wajib karena instalasi Docker dan pengaturan firewall membutuhkannya.
  • HP dengan WhatsApp aktif untuk scan QR pairing sekali di awal.

Cara Pasang Gateway WA Sendiri di VPS

Lima tahap di bawah ini membawa kamu dari VPS kosong sampai pesan pertama terkirim: instal Docker, jalankan GoWA, pairing QR, kirim pesan lewat API, lalu kunci operasional 24 jam. Ikuti berurutan karena tiap tahap bergantung pada sebelumnya. Total waktu kalau Docker belum ada sekitar 30 sampai 45 menit; kalau Docker sudah ada, sekitar 15 menit.

1. Instal Docker di VPS

Docker adalah fondasi seluruh tutorial ini: GoWA jalan sebagai container, bukan binary yang kamu compile manual. Cek dulu apakah Docker sudah terinstal dengan perintah versi di bawah. Kalau keluar nomor versi, langsung lanjut ke tahap 2. Kalau perintah tidak ditemukan, instal Docker Engine resmi untuk Ubuntu mengikuti dokumentasi resmi Docker untuk Ubuntu per September 2026. Setelah repositori terdaftar, instal paket Docker dan verifikasi dengan hello-world. Kalau hello-world berjalan tanpa error, Docker siap. Catatan: format blok repositori di dokumentasi resmi kadang diperbarui, jadi kalau tampilan halamannya beda dari ringkasan di atas, ikuti yang tertulis di sana. Butuh akses root atau sudo untuk seluruh perintah di tahap ini.

docker --version

Kalau perintah tidak ditemukan, instal Docker Engine resmi untuk Ubuntu:

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Setelah itu daftarkan repositori Docker mengikuti blok "Add the repository to Apt sources" di halaman dokumentasi yang sama, lalu instal paketnya:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verifikasi instalasi:

sudo systemctl status docker
sudo docker run hello-world

2. Jalankan GoWA dengan Docker

Tidak ada unduhan manual di tahap ini. Perintah docker run otomatis mengunduh (pull) image aldinokemal2104/go-whatsapp-web-multidevice dari Docker Hub saat pertama dijalankan. Yang perlu disiapkan manual hanya dua volume data supaya session QR tidak hilang saat container restart. Tunggu beberapa detik setelah container jalan, lalu buka dashboard web GoWA di browser dengan alamat IP VPS-mu dan port 3000. Kalau firewall aktif, pastikan port 3000 boleh diakses dari komputermu, dan batasi ke IP-mu saja setelah pairing selesai. Nama image memakai namespace Docker Hub aldinokemal2104, sedangkan kode sumbernya hidup di repositori GitHub proyek; kalau dokumentasi dashboard menyebut path atau field berbeda pada versi yang kamu pasang, ikuti tab dokumentasi di dashboard tersebut.

docker volume create whatsapp-storages
docker volume create whatsapp-statics
docker run -d --name whatsapp --restart always -p 3000:3000 -v whatsapp-storages:/app/storages -v whatsapp-statics:/app/statics aldinokemal2104/go-whatsapp-web-multidevice rest

Tunggu beberapa detik, lalu buka dashboard web GoWA di browser:

http://IP-VPS-KAMU:3000

Ganti IP-VPS-KAMU dengan alamat IP VPS-mu.

3. Pairing dengan Scan QR dari HP

Pairing hanya dilakukan sekali. Buka dashboard GoWA di browser sampai QR code tampil, lalu tautkan dari aplikasi WhatsApp di HP seperti menambah perangkat tertaut biasa. Setelah status berubah connected, session tersimpan di volume whatsapp-storages sehingga kamu tidak perlu scan ulang kecuali logout manual. Siapa pun yang bisa membuka dashboard bisa mengirim pesan atas nama nomormu, jadi segera batasi akses port dashboard lewat firewall atau reverse proxy dengan password setelah pairing berhasil. Pastikan HP yang dipakai scan adalah HP yang sehari-hari online karena proses pairing butuh aplikasi WhatsApp aktif saat itu juga. Jangan tutup tab dashboard sebelum status connected muncul. Empat langkahnya:

Dialog Scan QR code di dashboard GoWA menampilkan QR pairing WhatsApp dengan countdown penyegaran otomatis, di atas kartu perangkat berstatus not paired yet
  • Buka dashboard GoWA di browser sampai QR code pairing tampil.
  • Di HP, buka WhatsApp, masuk ke Pengaturan (atau ikon tiga titik), pilih Perangkat Tertaut.
  • Ketuk Tautkan Perangkat, lalu scan QR yang tampil di dashboard.
  • Tunggu status berubah connected; session tersimpan di volume whatsapp-storages.
Layar Linked devices di WhatsApp pada HP, menampilkan perangkat Google Chrome (GOWA v9.3.1) berstatus Active sebagai bukti gateway self-host berhasil tertaut

4. Kirim Pesan Pertama lewat REST API

GoWA menyediakan REST API untuk kirim dan terima pesan. Contoh di bawah mengirim pesan teks dengan curl dari komputermu; ganti alamat IP VPS, nomor tujuan, dan isi pesan. Kalau respons sukses, pesan masuk ke nomor tujuan dalam hitungan detik. Contoh ini memakai path dan field sesuai pola umum integrasi GoWA. Nama path dan field pastinya mengikuti versi yang kamu pasang, jadi cek tab dokumentasi di dashboard web atau file OpenAPI di repositori GitHub proyek sebelum mengunci kode bot-mu. Jangan hardcode path dari artikel mana pun tanpa verifikasi versi. Simpan contoh respons sukses untuk debugging nanti, terutama saat nomor tujuan memakai format internasional tanpa plus.

curl -X POST http://IP-VPS-KAMU:3000/send/message \
  -H "Content-Type: application/json" \
  -d '{"phone": "6281234567890", "message": "Halo dari gateway sendiri!"}'
Jendela terminal menampilkan perintah curl POST ke endpoint send/message beserta respons JSON berisi code SUCCESS dan message id, dengan nomor tujuan disamarkan

5. Jaga Gateway Tetap Online 24 Jam

Flag --restart always pada perintah docker run membuat container otomatis hidup lagi setelah VPS reboot, tapi itu baru separuh pekerjaan operasional. Tiga hal yang perlu dipastikan: monitoring sederhana bahwa container running dan API menjawab, backup berkala volume session supaya tidak scan QR ulang, dan dashboard yang dikunci setelah pairing. Untuk bot yang melayani pelanggan, bukan sekadar eksperimen, gunakan Managed VPS dengan resource jelas dan monitoring yang bisa ditingkatkan sesuai kebutuhan. Kalau kamu belum biasa mengelola server, mulai dari yang lebih sederhana dulu: pahami cara kerja hosting dan kenali situasi ketika website server down sebelum mengelola gateway 24 jam sendiri, karena gateway yang mati semalaman sama saja dengan bot yang tidak ada.

  • Monitoring sederhana. Cek berkala bahwa container running (docker ps) dan API menjawab; kalau VPS reboot malam hari, container harus kembali sendiri.
  • Backup session. Volume whatsapp-storages berisi session pairing; backup berkala supaya tidak perlu scan QR ulang kalau volume hilang.
  • Akses dashboard dikunci. Jangan biarkan port 3000 terbuka ke seluruh internet tanpa proteksi setelah pairing selesai.

Risiko Jalur Unofficial yang Wajib Kamu Tahu

GoWA dan proyek sejenis bekerja sebagai companion multidevice di luar Cloud API resmi Meta. Artinya Meta tidak menjamin apa pun: tidak ada pemberitahuan sebelum perubahan protokol, tidak ada jalur banding khusus bot unofficial, dan tidak ada dokumentasi migrasi kalau suatu hari model companion ini ditutup. Empat konsekuensi praktisnya di bawah ini wajib kamu terima sebelum memakai nomor apa pun untuk gateway self-host. Jangan anggap risiko ini teori; setiap poin di bawah sudah menimpa operator bot yang mengabaikan nomor cadangan sebelumnya. Baca keempatnya sampai habis sebelum kamu memutuskan nomor mana yang dipakai bot.

  • Nomor bisa dibatasi atau diblokir kalau terdeteksi pola spam atau pelanggaran kebijakan WhatsApp. Itu alasan nomor cadangan wajib, bukan opsional.
  • Update WhatsApp bisa merusak kompatibilitas sewaktu-waktu; proyek open-source mengejar ketertinggalan setelahnya, bukan sebelumnya.
  • Tidak ada SLA dan support resmi. Kalau API berubah perilakunya, kamu yang debug sendiri lewat issue tracker proyek.
  • Untuk kebutuhan bisnis kritis (notifikasi transaksi, OTP, CS bervolume), jalur resmi Cloud API lewat provider terdaftar tetap pilihan yang tepat, meski berbayar.

Kesimpulan

Gateway WA self-host dengan GoWA di VPS memberi kamu bot WhatsApp 24 jam tanpa biaya langganan: satu container Docker, satu kali scan QR, dan REST API yang bisa dipanggil dari website atau aplikasimu. Bayarannya adalah tanggung jawab operasional berupa monitoring, backup session, dan dashboard yang dikunci, plus risiko jalur unofficial yang mengharuskan nomor cadangan. Kalau kebutuhanmu chat manual usaha kecil, aplikasi WhatsApp Business sudah cukup. Kalau butuh otomasi resmi dan siap memindahkan nomormu penuh ke Cloud API lewat Embedded Signup, pelajari jalur migrasi resmi. Kalau kamu developer yang mau kendali penuh atas server dan API, self-host di VPS adalah jalannya. Pastikan VPS-mu siap 24 jam sebelum scan QR pertama, dan jangan pernah pakai nomor utama untuk jalur unofficial ini. Dengan ekspektasi itu jelas di awal, gateway self-host jadi alat yang andal, bukan sumber insiden dadakan.

Siap mencoba? Pastikan VPS-mu siap 24 jam sebelum scan QR pertama. Kalau belum punya, lihat paket Managed VPS atau mulai dari cloud hosting kalau kebutuhanmu masih di sekitar website. Ada pertanyaan soal setup gateway? Hubungi kami lewat WhatsApp di +62 851-7230-1406, atau buka tiket lewat dashboard my.mordenhost.com.

Pertanyaan yang sering diajukan

Apakah gateway WA self-host gratis?

Ya, softwarenya gratis karena GoWA proyek open-source, tapi kamu tetap bayar sewa VPS tiap bulan. Untuk bot bervolume kecil sampai menengah, total sewa VPS biasanya jauh di bawah langganan gateway SaaS. Hitung kebutuhan RAM dan trafik dulu sebelum sewa, supaya tidak bayar resource yang tidak terpakai. Kalau bot-mu masih eksperimen satu nomor, VPS 1 vCPU 1 GB RAM umumnya cukup.

Apakah nomor utama aman dipakai untuk GoWA?

Jangan pakai nomor utama. GoWA berjalan sebagai companion multidevice di luar Cloud API resmi Meta, jadi selalu ada risiko pembatasan kalau terdeteksi pola spam atau pelanggaran kebijakan. Sekali nomor utama dibatasi, seluruh chat bisnis ikut lumpuh. Siapkan nomor cadangan khusus bot sejak awal. Nomor cadangan yang kena batasi bisa diganti tanpa mengganggu operasional utama.

Apakah session QR perlu scan ulang tiap hari?

Tidak. Selama volume whatsapp-storages aman dan kamu tidak logout manual dari perangkat tertaut, pairing cukup sekali. Backup volume tersebut berkala supaya tidak perlu scan ulang kalau container dihapus atau VPS dipindah. Kalau session hilang, ulangi tahap pairing dari dashboard. Jadwal backup mingguan umumnya cukup untuk bot satu nomor.

Kapan harus pindah ke Cloud API resmi?

Pindah saat bot menangani hal yang downtime-nya merugikan bisnis: notifikasi transaksi, OTP, atau CS bervolume besar. Jalur resmi punya SLA, support, dan kepastian kompatibilitas yang self-host tidak punya, meski ada biaya per percakapan. Selama masih eksperimen atau bot internal, self-host dengan nomor cadangan tetap masuk akal. Anggap Cloud API sebagai tujuan akhir kalau bot-mu naik kelas ke produksi kritis.

TM
Tim Mordenhost
Editorial