Setup WAHA (WhatsApp HTTP API) di Docker

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.

Install Service Docker dan Docker Compose

Check Versi OS

RockyLinux/RHEL

Check OS versi yang digunakan, disini usecase menggunakan OS Rocky Linux 9.8

image 17
Menambahkan Repository
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
image 18
Update Repository
yum update
image 20
Install Package Docker & Docker Compose
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
image 21
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
image 22

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
image 23
docker compose version
image 24

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"
image 25

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
image 26

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
DashboardWEBUIWAHA

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.

SetupWorkersWAHA

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

image 29

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

image 30

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

image 31

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

wahaDashboard

Akan muncul scanQR seperti menghubungkan whatsapp dengan whatsapp web.

wahaDashboardQR

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

wahaDashboardRUN

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

Leave a Reply

Your email address will not be published. Required fields are marked *