OpenWA: API WhatsApp Self-Host Gratis untuk Otomasi dan Notifikasi
Masalah yang diselesaikan OpenWA
Peringatan server yang hanya masuk email sering terlambat dibaca. Sementara itu, WhatsApp adalah aplikasi yang hampir pasti Anda buka setiap jam. OpenWA menjembatani keduanya: gateway API WhatsApp yang Anda jalankan sendiri, sehingga skrip, cron, atau alur otomasi bisa mengirim pesan WhatsApp ke nomor Anda — tanpa perantara berbayar dan tanpa biaya per pesan.
OpenWA dibangun dengan Node.js/NestJS dan menyediakan REST API, dasbor web, dukungan multi-sesi (beberapa nomor dalam satu instalasi), webhook untuk pesan masuk, dan Swagger UI untuk mencoba API. Basis datanya SQLite secara default, dengan PostgreSQL dan Redis sebagai opsi untuk pemakaian yang lebih berat. Semuanya berjalan di server Anda, jadi isi pesan tidak melewati server pihak ketiga.
Peringatan jujur: ini BUKAN API resmi WhatsApp — nomor Anda bisa diblokir
Baca bagian ini sebelum Anda menghubungkan nomor apa pun.
OpenWA bekerja lewat automasi WhatsApp Web (engine whatsapp-web.js sebagai default, dengan baileys sebagai alternatif). Itu bukan WhatsApp Business API resmi dari Meta. WhatsApp melarang automasi tidak resmi dalam ketentuan layanannya, dan nomor yang dipakai untuk automasi semacam ini bisa diblokir, sementara maupun permanen — bahkan bila Anda hanya mengirim notifikasi ke diri sendiri.
Konsekuensinya:
- Jangan hubungkan nomor utama Anda. Pakai nomor kedua yang Anda rela kehilangan aksesnya.
- Jangan mengirim spam atau pesan massal. Volume tinggi dan pola seperti bot mempercepat pemblokiran.
- Jangan andalkan ini untuk hal yang kritis bagi bisnis. Bila notifikasi itu menyangkut uang atau keselamatan, pakai WhatsApp Business API resmi dari Meta atau jalur resmi lain, meskipun berbayar.
- Jangan menjanjikan "aman 100%" kepada siapa pun — termasuk kepada diri sendiri. Tidak ada gateway tidak resmi yang bisa menjamin itu.
Dengan peringatan itu dipahami, OpenWA tetap alat yang masuk akal untuk notifikasi pribadi, pengujian, dan otomasi skala kecil pada nomor kedua.
Langkah 1: Pasang OpenWA dengan Docker
Syaratnya hanya Docker dan Git di server Ubuntu Anda. Perintah berikut mengikuti README resmi proyek saat ini — perhatikan bahwa tutorial lama memakai port 3000, sementara versi sekarang memakai port 2785. Kalau Anda menyalin perintah dari tutorial lama, Anda akan membuka port yang salah.
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -dSetelah container berjalan, tiga alamat ini aktif di server Anda:
- Dasbor:
http://localhost:2785 - API:
http://localhost:2785/api - Swagger UI:
http://localhost:2785/api/docs
Pada boot pertama, OpenWA membuat kunci API admin, mencetaknya sekali di log, dan menyimpannya di /app/data/.api-key di dalam container. Ambil dengan:
docker exec openwa-api cat /app/data/.api-keyKunci itu tidak punya baris baru di akhir, jadi prompt shell akan menempel tepat setelah kunci — salin hanya kuncinya. Boot berikutnya hanya menampilkan awalan kunci yang disamarkan, jadi simpan kunci ini baik-baik. Kunci dipakai untuk masuk ke dasbor dan sebagai header X-API-Key di setiap panggilan API. Perlakukan kunci ini seperti kata sandi.
Langkah 2: Hubungkan nomor WhatsApp kedua Anda
Buka dasbor di http://localhost:2785 — karena port hanya mendengarkan di server, akses lewat SSH tunnel dari laptop Anda, atau lewat reverse proxy HTTPS bila Anda sudah memasangnya. Pindai kode QR yang tampil dengan aplikasi WhatsApp di HP nomor kedua Anda, persis seperti menautkan WhatsApp Web.
Sesi yang tertaut tersimpan di /app/data di dalam container, yang pada berkas Compose produksi dipetakan ke volume Docker bernama openwa-data. Artinya: mencadangkan volume itu berarti mencadangkan sesi dan riwayat; menghapusnya berarti Anda harus memindai QR ulang. Jangan pernah menghapus volume ini tanpa sengaja.
Langkah 3: Kirim pesan pertama dan hubungkan ke otomasi
Buka Swagger UI di http://localhost:2785/api/docs. Di sana Anda bisa melihat dan mencoba endpoint kirim pesan dengan header X-API-Key — kirim satu pesan uji ke nomor Anda sendiri sebelum membangun apa pun di atasnya.
Setelah pesan uji sampai, pola otomasi yang paling berguna adalah menggabungkan OpenWA dengan alat yang sudah Anda punya:
- Uptime Kuma → OpenWA: saat monitor mendeteksi server down, webhook memicu pengiriman pesan WhatsApp ke Anda. Jauh lebih cepat dibaca daripada email.
- n8n → OpenWA: alur n8n dengan node HTTP Request yang membawa header
X-API-Keybisa mengirim ringkasan log harian, laporan backup, atau peringatan dari cron. - Skrip shell/cron → OpenWA: skrip backup yang gagal di tengah malam bisa langsung memberi tahu Anda, bukan ketahuan keesokan paginya.
Satu prinsip desain: pesan otomasi harus jarang dan penting. Notifikasi yang membanjiri setiap menit akan Anda abaikan — dan pola pengiriman agresif juga memperbesar risiko pemblokiran nomor.
Amankan instalasi Anda
OpenWA yang terekspos mentah ke internet adalah undangan terbuka: siapa pun yang menemukan portnya bisa memakai nomor Anda untuk mengirim pesan.
- Jangan mengekspos port 2785 langsung ke internet. Akses lewat SSH tunnel, atau lewat reverse proxy HTTPS dengan autentikasi.
- Simpan kunci API di luar repositori dan jangan pernah meng-commit berkas
.envyang berisi kunci. - Batasi siapa yang bisa mencapai dasbor — idealnya hanya Anda, lewat VPN atau jaringan pribadi.
- Cadangkan volume
openwa-databersama backup server rutin Anda.
OpenWA dibandingkan API resmi dan gateway berbayar
| Aspek | OpenWA (self-host) | WhatsApp Business API resmi (Meta) | Gateway berbayar |
|---|---|---|---|
| Biaya | Gratis (di luar biaya VPS) | Per percakapan, sesuai tarif Meta | Per pesan / langganan |
| Status resmi | Tidak resmi — risiko blokir nomor | Resmi, didukung Meta | Umumnya memakai API resmi |
| Kendali data | Penuh, di server Anda | Melalui infrastruktur Meta | Melalui server penyedia |
| Cocok untuk | Notifikasi pribadi, pengujian, skala kecil | Bisnis dan pesan kritis | Bisnis yang butuh cepat jalan |
| Syarat | Nomor kedua, Docker, kesediaan menerima risiko | Verifikasi bisnis, nomor khusus | Daftar dan bayar |
Cek sebelum selesai
- OpenWA berjalan lewat Docker dan dasbor bisa dibuka di port 2785
- Kunci API admin tersimpan aman di luar repositori
- Nomor yang terhubung adalah nomor kedua, bukan nomor utama
- Satu pesan uji terkirim dan diterima sebelum otomasi dibangun
- Port 2785 tidak terekspos mentah ke internet
- Volume
openwa-datamasuk dalam jadwal backup - Pemakaian dibatasi untuk notifikasi penting, bukan pesan massal
Kalau semua tercentang, Anda punya jalur notifikasi WhatsApp yang hidup di server Anda sendiri — gratis, terkendali, dan dengan risiko yang sudah Anda pahami sejak awal.
Notifikasi server apa yang ingin masuk ke WhatsApp Anda? Ceritakan di kolom komentar — dan bila Anda sudah memakai OpenWA, alur apa yang paling sering menyelamatkan Anda dari kejadian yang terlambat diketahui?


Komentar
Posting Komentar