WhatsApp + ChatWoot - Installation Guide

July 11, 2025 in Apps, ChatWoot by devlikeapro5 minutes

Image for WhatsApp + ChatWoot - Installation Guide

Overview

Complete guide to install and set up production-ready WAHA and Chatwoot instances on your own infrastructure!

ChatWoot Articles

Series of articles about WhatsApp and ChatWoot integration using 🧩 ChatWoot App:

  1. WhatsApp + ChatWoot - Overview
  2. WhatsApp + ChatWoot - Installation Guide
  3. WhatsApp + ChatWoot - Configuration Guide
  4. WhatsApp + ChatWoot - HTTPS Guide
  5. WhatsApp + ChatWoot - How It Works

You can follow them one by one or skip some parts if you don’t need them.

After completing the installation guide, you’ll have:

Disclaimer

This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp, ChatWoot, or any of their respective subsidiaries or affiliates. The official websites can be found at https://whatsapp.com and https://chatwoot.com.

For businesses seeking to integrate with WhatsApp for critical applications, we strongly recommend using officially supported methods.

Requirements

  • Hardware: VM, VPS, or laptop with minimum 2 CPU and 4GB RAM
  • Operating System: Debian or Ubuntu based distributions.

Using a VPS or VM via SSH?

You need to forward ports so you can access remote server ports from your laptop.

Connect to the server using the command:

Connect to server with port forwarding
ssh -L 3000:localhost:3000 -L 3009:localhost:3009 {user}@{server}

Steps to Deploy

Step 0: Add DNS Aliases

First, we need to add DNS Aliases so everything works as inside docker containers.

👉 Run the below commands on YOUR LAPTOP/PC, NOT on the VPS or VM:

Step 1: Install Docker

Install Docker
# example in ubuntu
apt-get update
apt-get upgrade
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
apt install docker-compose-plugin

Step 2: Download the Required Files

Download files
# Download the env files
wget -O .waha.env https://raw.githubusercontent.com/devlikeapro/waha/refs/heads/core/docker-compose/chatwoot/.waha.env
wget -O .chatwoot.env https://raw.githubusercontent.com/devlikeapro/waha/refs/heads/core/docker-compose/chatwoot/.chatwoot.env
# Download docker-compose
wget -O docker-compose.yaml https://raw.githubusercontent.com/devlikeapro/waha/refs/heads/core/docker-compose/chatwoot/docker-compose.yaml

Step 3: Configure Environment Variables

Now you can tweak .waha.env, .chatwoot.env and docker-compose.yaml according to your preferences.

Here are a few environment variables we suggest that you change before going forward (in this guide we’ll use the default values):

.waha.env
WAHA_API_KEY_PLAIN=00000000000000000000000000000000
WAHA_API_KEY=sha512:98b6d128682e280b74b324ca82a6bae6e8a3f7174e0605bfd52eb9948fad8984854ec08f7652f32055c4a9f12b69add4850481d9503a7f2225501671d6124648
WAHA_DASHBOARD_USERNAME=admin
WAHA_DASHBOARD_PASSWORD=11111111111111111111111111111111
WHATSAPP_SWAGGER_USERNAME=admin
WHATSAPP_SWAGGER_PASSWORD=11111111111111111111111111111111

Do Not Use Default API Keys or Passwords!

Even if you’re running WAHA on a private server and think the IP is unknown - it’s straightforward for attackers to find and exploit it to send spam or abuse your WhatsApp sessions.

Always set strong, random values (see a guide below) for:

  • WAHA_API_KEY
  • WAHA_DASHBOARD_PASSWORD
  • WHATSAPP_SWAGGER_PASSWORD - you can the same as for WAHA_DASHBOARD_PASSWORD

👉 How to Generate and Hash Api-Key

  1. Generate Api Key using uuid4 and remove - from it (or find a tool online)
uuidgen | tr -d '-'
> 00000000000000000000000000000000
  1. Hash it using sha512 (or find a tool online)
echo -n "00000000000000000000000000000000" | shasum -a 512
> 98b6d128682e280b74b324ca82a6bae6e8a3f7174e0605bfd52eb9948fad8984854ec08f7652f32055c4a9f12b69add4850481d9503a7f2225501671d6124648  -
  • WAHA_API_KEY=sha512:98b6...24648 - SHA512 hash in hex format.
  • X-Api-Key: 0000...0000 - Api Key that you need to send in X-Api-Key header.
    • Keep it in secret, do not add it to .env
👉 How to Generate and Hash Api-Key
  1. Generate Api Key using uuid4 and remove - from it (or find a tool online)
uuidgen | tr -d '-'
> 00000000000000000000000000000000
  1. Hash it using sha512 (or find a tool online)
echo -n "00000000000000000000000000000000" | shasum -a 512
> 98b6d128682e280b74b324ca82a6bae6e8a3f7174e0605bfd52eb9948fad8984854ec08f7652f32055c4a9f12b69add4850481d9503a7f2225501671d6124648  -
  • WAHA_API_KEY=sha512:98b6...24648 - SHA512 hash in hex format.
  • X-Api-Key: 0000...0000 - Api Key that you need to send in X-Api-Key header.
    • Keep it in secret, do not add it to .env

Step 4: Pull Docker Images

Step 5: Prepare ChatWoot Database

Prepare ChatWoot Database
docker compose run --rm chatwoot bundle exec rails db:chatwoot_prepare

Step 6: Start the Services

Start Services
docker compose up -d

Step 7: Access Your WAHA

Open http://localhost:3000/dashboard with credentials:

  • User: admin
  • Password: 11111111111111111111111111111111

Add Api Key to your worker:

  • Api-Key: 00000000000000000000000000000000

Step 8: Access Your ChatWoot

Open and finish the onboarding guide on http://localhost:3009/

What is next?

👉 Connect WhatsApp to ChatWoot in WhatsApp + ChatWoot - Configuration Guide

ChatWoot Articles

Series of articles about WhatsApp and ChatWoot integration using 🧩 ChatWoot App:

  1. WhatsApp + ChatWoot - Overview
  2. WhatsApp + ChatWoot - Installation Guide
  3. WhatsApp + ChatWoot - Configuration Guide
  4. WhatsApp + ChatWoot - HTTPS Guide
  5. WhatsApp + ChatWoot - How It Works

You can follow them one by one or skip some parts if you don’t need them.