Entwickler-Setup: Einzelinstanz

In diesem Dokument wird gezeigt, wie du für Testzwecke eine Einzelinstanz des WhatsApp Business API-Client auf einem Entwicklercomputer einrichtest. Befolge für ein Produktions-Setup die entsprechenden Anweisungen unter Produktions-Setups.

Beim erstmaligen Setup einer Einzelinstanz lies dir die Liste der Anforderungen durch und führe die folgenden Schritte aus:

  1. Ein biz-Verzeichnis für die Setup-Skripts erstellen
  2. Die Konfigurationsdateien für den WhatsApp Business API-Client abrufen
  3. Die Umgebungsvariable WA_API_VERSION festlegen
  4. Den WhatsApp Business API-Client starten
  5. Verifizieren, dass die Container ausgeführt werden
  6. Eine Systemdiagnose durchführen
  7. Den WhatsApp Business API-Client registrieren

Nachdem das Setup deiner Instanz vollständig abgeschlossen ist, kannst du die Instanz upgraden. Mit diesen Schritten kannst du den Client deinstallieren.

Bevor du beginnst

Bevor du beginnst, musst du die folgenden Aufgaben ausführen:

Install Docker Desktop

To install Docker Desktop on your developer machine:

  1. Navigate to the Docker website.
  2. If you do not have an existing Docker account, create one by clicking on Sign Up.
  3. After you have created your account, you will be directed to the Docker download page.
  4. Download Docker Desktop based on your OS (This should be automatically detected and presented as the default option).

The remaining steps are based on macOS and should be very similar for Linux or Windows 10.

To install Docker using macOS:

  1. Install the package (docker.dmg for macOS).
  2. After extraction, Finder will pop-up and you will be presented with a dialog that instructs you to drag the Docker icon to Applications. Drag Docker icon to the Application folder in Finder.
  3. In Applications launch Docker and then click the Open button.
  4. You may be prompted to enter your password Docker needs priviledged/administrator access.
  5. Docker will present you with a tutorial, you can click Start to launch a tutorial or you can click Skip Tutorial to start using Docker.

Verify Docker Compose is installed

Docker Compose is a plugin that is bundled with Docker Desktop and should have installed automatically. For more information about using or Docker Compose, see Overview of Docker Compose. If for some reason Docker Compose was not installed, you can install it by following the instructions located at Install Docker Compose.

Weitere Voraussetzungen

Vergewissere dich, dass du ein lokales Testkonto in einer Entwicklungsumgebung eingerichtet hast. Dies ermöglicht eine schnelle Entwicklung und das Testen neuer Versionen.

Erst-Setup des WhatsApp Business API-Client

Perform the following steps to install a single instance of the WhatsApp Business API client on a developer system.

Step 1: Create ~/biz

Create a ~/biz directory for the WhatsApp Business API client.

Step 2: Get Config Files

Clone the WhatsApp Business API Client docker-compose.yml and db.env configuration files from the WhatsApp GitHub repository for either a MySQL database setup or a Postgres database setup to your ~/biz directory.

Step 3: Set the Version

The WA_API_VERSION environmental variable should be set to the current version.

~/biz $ export WA_API_VERSION=CURRENT-WA-API-VERSION

To find the current version of the API that you installed, open docker-compose.yml and search for "WA_API_VERSION=". The version number should be noted by a developer in the wacore label:

    wacore:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.31.4 docker-compose <command> <options>)}

Step 4: Start the Client

To start the WhatsApp Business API client, run:

~/biz $ docker-compose up -d

The resulting output should look like the following:

Creating volume "biz_whatsappMedia" with local driver
Creating volume "biz_mysqlData" with local driver
Creating biz_db_1 ... done
Creating biz_wacore_1 ... done
Creating biz_waweb_1  ... done

Verify Containers Are Running

You can check that all containers have an UP state by running:

~/biz $ docker-compose ps

By default, the Webapp container will be running on port 9090 (https://localhost:9090) and the database container will be running on port 33060 (https://localhost:33060).

The resulting output should look like the following:

~/biz $ docker-compose ps
     Name                    Command               State                   Ports
-------------------------------------------------------------------------------------------------
biz_db_1       docker-entrypoint.sh mysqld      Up      0.0.0.0:33060->3306/tcp, 33060/tcp
biz_wacore_1   /opt/whatsapp/bin/wait_on_ ...   Up      6250/tcp, 6251/tcp, 6252/tcp, 6253/tcp
biz_waweb_1    /opt/whatsapp/bin/wait_on_ ...   Up      0.0.0.0:9090->443/tcp

Status Check

Send a GET request to /v1/health endpoint to check the status of your client.

On success, you will see the following:

{
    "health": {
        "gateway_status": "unregistered"
    }
}

Register Your Client

To register your WhatsApp Business API client, send a POST request to the /v1/account endpoint.

Upon registration gateway_status will be set connected. Your Coreapp container is able to connect to the WhatsApp server for checking contacts and sending messages.

Next Steps

Upgrade des WhatsApp Business API-Clients

Während des Upgrade-Prozesses musst du mit Ausfallzeiten rechnen.

Es wird dringend empfohlen, vor dem Upgrade eine Sicherung der aktuellen Anwendungseinstellungen durchzuführen, damit die Anwendung anschließend schnell wieder einsatzbereit ist. Beachte dabei die Dokumentation zu Sicherung und Wiederherstellung.

Es ist grundsätzlich ratsam, Upgrades zu Zeiten mit geringer Aktivität durchzuführen.

Schritt 1: Die Umgebungsvariable WA_API_VERSION in die neue Version ändern

Die Umgebungsvariable WA_API_VERSION sollte auf die neue Version aktualisiert werden. Verwende hierfür:

export WA_API_VERSION=new-whatsapp-version

Bei einem Upgrade auf Version 2.33.4 lautet der Befehl beispielsweise wie folgt:

~/biz $ export WA_API_VERSION=2.33.4

Schritt 2: Die Docker-Container neu starten

Starte die Docker-Container neu, indem du folgenden Code ausführst:

docker-compose up -d

Die Ausgabe sollte in etwa wie folgt aussehen:

biz_db_1 is up-to-date
Recreating biz_wacore_1 ... done
Recreating biz_waweb_1  ... done

Für MySQL-Datenbanknutzer, die ein Upgrade auf Version v2.23.x und höher durchführen

Dir steht nun ein Datenbankaktualisierungsdienst zur Verfügung, mit dem du deine Datenbank bei ausgeführter Anwendung aktualisieren kannst, um Ausfallzeiten zu vermeiden.

Schritt 1: Die Konfigurationsdatei herunterladen

Die Datei dbupgrade-compose.yml beinhaltet Felder mit Angaben zur Containerversion.

Beispiel:

services:
  dbupgrade:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}

Schritt 2: Den Container starten

Starte für ein Upgrade der Installation den Container „dbupgrade-service“, während die Umgebungsvariable WA_API_VERSION auf die aktuellste Version festgelegt ist:

WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d

Hinweis: Wenn du eine Orchestrierung verwendest, mit welcher der Container beim Beenden unabhängig vom Exit-Code neu gestartet wird, solltest du die Umgebungsvariable EXIT_ON_SUCCESS auf FALSE festlegen, wenn du den Dienst startest. So vermeidest du, dass der Container beendet wird, wenn der Exit-Code 0 lautet.

Schritt 3: Warten, bis das Upgrade abgeschlossen ist

Verläuft das Datenbank-Upgrade erfolgreich, wird der Container mit dem Code 0 beendet. Mit dem folgenden Docker-Befehl kannst du den Status nachverfolgen:

docker wait your-database-upgrade-container-name

Hiermit wird der Exit-Code des Containers „dbupgrade-service“ ausgegeben.

Schritt 4: Coreapp- und Webapp-Container neu starten

Starte die Coreapp- und Webapp-Docker-Container neu, während für die Umgebungsvariable WA_API_VERSION auf die aktuellste Version festgelegt ist:

WA_API_VERSION=new-whatsapp-version docker-compose up -d

Deinstallation des WhatsApp Business API-Clients

Es wird dringend empfohlen, vor der Deinstallation ein Backup der aktuellen Anwendungseinstellungen durchzuführen. Beachte dabei die Dokumentation zu Sicherung und Wiederherstellung.

Wenn du deine Entwicklungsumgebung durch Entfernen aller Container zurücksetzen musst, führe den folgenden Befehl in dem Verzeichnis aus, das die Datei docker-compose.yml enthält:

WA_API_VERSION={VERSION_NUMBER} docker-compose down

Die Ausgabe sollte in etwa wie folgt aussehen:

Stopping biz_waweb_1  ... done
Stopping biz_wacore_1 ... done
Stopping biz_db_1     ... done
Removing biz_waweb_1  ... done
Removing biz_wacore_1 ... done
Removing biz_db_1     ... done

Um zusätzlich zu den Containern alle in der Datei docker-compose.yml definierten Volumes zu entfernen, führe den Befehl down mit dem Parameter -v aus:

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

Problembehebung

Wir empfehlen die Verwendung von WADebug für eine effektivere Fehlerbehebung. WADebug ist ein Befehlszeilen-Tool, das dich bei der Suche nach potenziellen Problemen im Zusammenhang mit dem WhatsApp Business API-Setup unterstützt und es dem WhatsApp-Support erleichtert, dir zu helfen.

Für den Fall, dass WADebug nicht verwendet werden kann oder bei Ausführung des Tools Fehler ausgegeben werden, führe zur Sammlung von Protokollen aus allen Containern den folgenden Befehl aus:

docker-compose logs > debug_output.txt

Hänge zum Sammeln von Protokollen eines bestimmten Dienstes den Dienstnamen (waweb oder wacore) an den Befehl docker-compose logs an:

docker-compose logs waweb > debug_output.txt

Du findest die Protokolle in der Datei debug_output.txt im aktuellen Verzeichnis.


Diese Software verwendet Code von FFmpeg, der unter der LGPLv2.1 lizenziert ist. Die dazugehörige Quelle kann hier heruntergeladen werden.