WAHA (WhatsApp HTTP API) adalah perangkat lunak sumber terbuka (open-source) yang memungkinkan pengguna mengirim dan menerima pesan WhatsApp melalui HTTP API sederhana. Alat ini digunakan untuk membangun bot, mengotomatisasi pesan, atau mengintegrasikan WhatsApp dengan sistem lain seperti CRM dan n8n secara mandiri (self-hosted) yang running dengan menggunakan Docker.
Table of Contents
Install Service Docker dan Docker Compose
Check Versi OS
RockyLinux/RHEL
Check OS versi yang digunakan, disini usecase menggunakan OS Rocky Linux 9.8

Menambahkan Repository
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Update Repository
yum update

Install Package Docker & Docker Compose
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Start Services
Setelah proses install sudah selesai, lakukan check services apakah sudah running dan jika belum lakukan start services dengan perintah systemctl start docker. Setelah sudah running enable service docker tersebut agar sevices otomatis running ketika server/vm/vps mati atau restart.
sudo systemctl --now enable docker
systemctl status docker

Debian/Ubuntu
Install Certificate
Install certificate dengan perintah dibawah
Menambahkan GPG key docker
Tambahkan GPG key docker resmi dengan menjalankan perintah dibawah
sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://docker.com | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Berikan Permission
tambahkan permissions pada gpg key docker dengan perintah dibawah.
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Tambahkan Repository
Tambahkan repository docker untuk ubuntu
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://docker.com $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Tambahkan repository docker untuk debian
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://docker.com $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Update Repo
Selanjutkan update repository
sudo apt update
Install Docker
setelah proses update repo selesai, jalankan perintah dibawah untuk install docker dan docker compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Check versi Docker dan Docker Compose
Lakukan check versi docker dan docker compose yang digunakan dengan perintah berikut:
docker -v

docker compose version

Setup Docker Compose WAHA
Setup docker-compose.yml
Buat directory dahulu di /opt/waha dengan perintah mkdir -p /opt/waha lalu buat file konfigurasi docker-compose.yml dengan menggunakan konfigurasi docker-compose.yml berikut:
services:
waha:
image: devlikeapro/waha:latest
container_name: waha
restart: always
ports:
- "3000:3000"
env_file:
- .env
volumes:
# simpan session login WhatsApp
- ./sessions:/app/.sessions
# simpan media yang diterima/dikirim
- ./media:/app/.media
dns:
- 1.1.1.1
- 8.8.8.8
logging:
driver: json-file
options:
max-size: "100m"
max-file: "10"

Setup file .env
Selanjutnya, buat file .env lalu rubah parameter config berikut:
- WAHA_DASHBOARD_USERNAME & WHATSAPP_SWAGGER_USERNAME, isi dengan username yang ingin digunakan
- WAHA_DASHBOARD_PASSWORD & WHATSAPP_SWAGGER_PASSWORD, isi dengan password yang ingin digunakan
- WAHA_PUBLIC_URL, isi dengan Public URL yang kamu ingin gunakan
- WAHA_API_KEY, masukan API KEY yang sudah kamu generate
WAHA_WORKER_ID=waha
WAHA_PRINT_QR=true
WHATSAPP_DEFAULT_ENGINE=WEBJS
TZ=Asia/Jakarta
# Kredensial untuk Halaman Utama (Swagger API)
WHATSAPP_SWAGGER_USERNAME="admin"
WHATSAPP_SWAGGER_PASSWORD="P@ssw0rd"
# Kredensial khusus untuk Halaman /dashboard
WAHA_DASHBOARD_ENABLED=true
WAHA_DASHBOARD_USERNAME="admin"
WAHA_DASHBOARD_PASSWORD="P@ssw0rd"
WAHA_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
WAHA_PUBLIC_URL=http://127.0.0.1:3000
Untuk generate WAHA_API_KEY bisa gunakan perintah berikut:
echo -n "your-secret-api-key" | sha512sum | awk '{print $1}'
Check Service Container WAHA
Check services container waha, apakah sudah running jika sudah running. Dashboard webui WAHA bisa langsung coba akses melalui web browser.
docker ps -a | grep waha

Akses Dashboard webui WAHA
Setelah service container waha sudah running, silakan akses webui WAHA dengan menggunakan credential yang sudah dibuat pada file .env
http://(ip-address):port
atau
https://(domain).com

Setup Workers WAHA
Selanjutnya, klik tombol connet lalu masukan Name sesuai dengan yang ada di file .env dan API URL WAHA yang sudah di generate sebelumya.

Jika sudah silakan klik tombol connect, maka nanti workers akan ada status up seperti gambar dibawah.

Setup Sessions WAHA
Setelah sudah membuat worker WAHA, langkah berikutnya membuat sessions dengan klik Start New Lalu masukan nama sessions dan jika Waha ini ingin dihubungkan dengan webhook bisa ditambahkan webhook setelah itu klik Create & Start

Setelah itu akan muncul sessions WAHA yang sudah dibuat dengan status Starting.

Selanjutnya jika sudah ada info message “scan QR” klik ikon kamera dan lakukan scan QR Whatsapp.

Akan muncul scanQR seperti menghubungkan whatsapp dengan whatsapp web.

Setelah sudah melakukan scanQR, maka akan muncul profile whatsappnya dan statusnya menjadi working seperti gambar dibawah.

Sekarang Whatsapp gateway sudah bisa digunakan untuk berbagai kebutuhan, salah satunya adalah notif alerts monitoring. Silakan lanjutkan Explore!
