Kapitel 18/Free Rohtext.md hinzugefügt
This commit is contained in:
525
Kapitel 18/Free Rohtext.md
Normal file
525
Kapitel 18/Free Rohtext.md
Normal file
@@ -0,0 +1,525 @@
|
||||
# Kapitel 18 – WAHA (WhatsApp HTTP API)
|
||||
|
||||
## Einleitung
|
||||
|
||||
WhatsApp ist – ob man es mag oder nicht – der meistgenutzte Messenger der westlichen Welt.
|
||||
Für viele Creator:innen, Communities oder Teams ist er daher ein unvermeidlicher Teil der Kommunikationsstruktur –
|
||||
egal ob für Zuschauer:innen‑Kontakt, Event‑Ankündigungen oder automatisierte Benachrichtigungen.
|
||||
|
||||
**WAHA** (WhatsApp HTTP API) ist ein selbstgehosteter Dienst, der ein zentrales Problem löst:
|
||||
WhatsApp lässt sich im Gegensatz zu Telegram, Discord oder Signal **nicht über offene APIs** ansprechen –
|
||||
automatisierte Nachrichten oder Integrationen sind offiziell nur über die Meta‑Cloud möglich und mit hohen Hürden verbunden.
|
||||
|
||||
WAHA umgeht diese Beschränkung, indem es das **Web‑Interface von WhatsApp** lokal emuliert.
|
||||
So kannst du Nachrichten senden und empfangen – ohne Drittanbieter, ohne Cloud, direkt aus deinem eigenen Netzwerk.
|
||||
|
||||
In diesem Kapitel richtest du WAHA als dedizierten **LXC-Container** in deinem UCC ein.
|
||||
Du verbindest den Dienst mit einem separaten WhatsApp‑Konto und ermöglichst so den automatisierten Empfang und Versand von Nachrichten –
|
||||
z. B. zur Trigger-Auslösung in Workflows, als Rückkanal für Zuschauer:innen oder zur Weiterleitung interner Systemereignisse.
|
||||
|
||||
👉 **Screenshot geeignet:** UCC-Dashboard mit markiertem WAHA‑Container, neben n8n und NPM
|
||||
|
||||
> [!NOTE]
|
||||
> WAHA simuliert ein WhatsApp‑Web‑Interface und benötigt daher ein physisches Gerät mit aktiver WhatsApp‑Installation.
|
||||
> Diese Lösung eignet sich **nicht für produktive Massenkommunikation** oder den Ersatz offizieller WhatsApp‑Business‑APIs,
|
||||
> sondern für individuelle, datensparsame Anwendungsfälle – z. B. private Rückkanäle, automatisierte Antworten,
|
||||
> Kontaktformulare, Zustellbenachrichtigungen oder Info‑Trigger im Streaming‑Kontext.
|
||||
|
||||
WAHA arbeitet vollständig lokal, speichert keine Nachrichten extern und lässt sich direkt mit Diensten wie **n8n**,
|
||||
**Webhook‑Empfängern** oder benutzerdefiniertem Backend verbinden.
|
||||
So entsteht eine WhatsApp‑Schnittstelle, die exakt das tut, was du brauchst – nicht mehr und nicht weniger.
|
||||
|
||||
👉 **Screenshot geeignet:** Browseransicht WAHA‑Webinterface mit QR‑Code für WhatsApp‑Verknüpfung
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen & Ressourcen
|
||||
|
||||
WAHA ist leichtgewichtig, benötigt aber eine stabile Umgebung für das Webinterface, die Protokollierung und die Echtzeit‑Verarbeitung eingehender Nachrichten.
|
||||
Im Hintergrund laufen Headless‑Browserprozesse, Socket‑Verbindungen und eine kleine HTTP‑API – alles innerhalb eines Containers.
|
||||
Um Störungen bei der Kommunikation zu vermeiden, sollte die Umgebung klar definiert und zuverlässig sein.
|
||||
|
||||
### Container-Ressourcen
|
||||
|
||||
* **CPU:** 2 vCPU
|
||||
Erforderlich für parallele Prozesse wie WebSocket‑Verbindungen, Headless-Browser (z. B. Chromium) und API-Handling.
|
||||
|
||||
* **RAM:** 2 GB
|
||||
Ausreichend für den stabilen Betrieb von WAHA, inklusive temporärer Pufferspeicherung eingehender und ausgehender Daten.
|
||||
|
||||
* **Speicherplatz:** 10 GB
|
||||
Deckt das Betriebssystem, Logs, temporäre Browserdaten und gespeicherte Sessions ab.
|
||||
Reicht im Dauerbetrieb vollständig aus, auch mit mehreren Verbindungen.
|
||||
|
||||
* **Netzwerk:** Statische IP oder DHCP-Reservierung
|
||||
Notwendig für saubere Proxy-Integration und externe Webhook-Zugriffe.
|
||||
|
||||
* **Betriebssystem:** Debian 12 (Bookworm)
|
||||
Schlank, stabil und optimal geeignet für den Einsatz von Docker und Headless-Browsern in Containerumgebungen.
|
||||
|
||||
👉 **Screenshot geeignet:** Ressourcenübersicht beim Erstellen des WAHA-LXC (vCPU 2 | RAM 2 GB | Storage 10 GB | Debian 12)
|
||||
|
||||
### Technische Voraussetzungen
|
||||
|
||||
Vor der Einrichtung sollte dein UCC folgende Voraussetzungen erfüllen:
|
||||
|
||||
* **Proxmox VE** ist aktiv und bereit zur Containererstellung.
|
||||
Der WAHA-Container wird wie gewohnt direkt über die Proxmox-Oberfläche angelegt.
|
||||
|
||||
* **Nginx Proxy Manager (NPM)** ist installiert und erreichbar.
|
||||
WAHA wird später über eine eigene Subdomain bereitgestellt.
|
||||
|
||||
* **DNS- oder DynDNS-Eintrag** für `waha.deinedomain.tld` ist vorhanden.
|
||||
Dieser wird für das SSL-Zertifikat und die WhatsApp-Webverbindung benötigt.
|
||||
|
||||
* **Internetverbindung** im Container ist stabil.
|
||||
WAHA benötigt Zugriff auf WhatsApp‑Server (Webschnittstelle) und lädt initial alle Pakete über offizielle Repositories.
|
||||
|
||||
* **SSH-Zugriff** auf den Container ist möglich, z. B. per:
|
||||
```bash
|
||||
ssh root@<IP-des-Containers>
|
||||
```
|
||||
Ersetze `<IP-des-Containers>` durch die tatsächliche Adresse deines WAHA‑LXC.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Der Container sollte auf einem Host mit stabiler Netzwerkverbindung laufen.
|
||||
> Kurze Unterbrechungen führen zu Sessionabbrüchen und trennen die WhatsApp‑Verbindung –
|
||||
> in diesem Fall muss der QR‑Code erneut gescannt werden.
|
||||
|
||||
👉 **Screenshot geeignet:** Proxmox-Interface mit markiertem WAHA-LXC in der Containerliste
|
||||
|
||||
---
|
||||
|
||||
## Schritt-für-Schritt-Anleitung
|
||||
|
||||
### Schritt 1 – Container vorbereiten und System aktualisieren
|
||||
|
||||
Starte den frisch erstellten WAHA‑Container in Proxmox und öffne die Konsole – entweder direkt über das Webinterface oder per SSH.
|
||||
|
||||
Zuerst werden alle Systempakete auf den aktuellen Stand gebracht:
|
||||
|
||||
```bash
|
||||
apt update && apt upgrade -y
|
||||
```
|
||||
|
||||
Nach Abschluss den Container neu starten:
|
||||
|
||||
```bash
|
||||
reboot
|
||||
```
|
||||
|
||||
Anschließend erneut per SSH anmelden:
|
||||
|
||||
```bash
|
||||
ssh root@<IP-des-Containers>
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Ein aktuelles System ist Pflicht.
|
||||
> WAHA benötigt moderne Pakete für Netzwerk, TLS und Headless-Browser‑Support.
|
||||
> Veraltete Images führen häufig zu Abbrüchen bei der WebSocket‑Verbindung oder zu Inkompatibilitäten beim Start.
|
||||
|
||||
👉 **Screenshot geeignet:** Proxmox-Konsole mit erfolgreichem Abschluss von `apt upgrade` (alle Pakete aktuell)
|
||||
|
||||
### Schritt 2 – Docker installieren und vorbereiten
|
||||
|
||||
WAHA läuft vollständig in Docker-Containern.
|
||||
Damit die Umgebung stabil funktioniert, installierst du zunächst alle benötigten Pakete für Docker und Docker Compose.
|
||||
|
||||
```bash
|
||||
apt install -y ca-certificates curl gnupg lsb-release
|
||||
```
|
||||
|
||||
Nun wird das offizielle Docker-Repository hinzugefügt und die aktuelle Engine installiert:
|
||||
|
||||
```bash
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||
https://download.docker.com/linux/debian $(lsb_release -cs) stable" \
|
||||
| tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
apt update
|
||||
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
|
||||
Prüfe anschließend, ob Docker korrekt installiert wurde:
|
||||
|
||||
```bash
|
||||
docker --version
|
||||
docker compose version
|
||||
```
|
||||
|
||||
Die Ausgabe sollte in etwa so aussehen:
|
||||
|
||||
```
|
||||
Docker version 26.1.x
|
||||
Docker Compose version v2.29.x
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> WAHA nutzt Docker Compose als bevorzugte Installationsmethode.
|
||||
> Manuelle Setups ohne Compose werden von der Community zwar unterstützt,
|
||||
> sind aber deutlich fehleranfälliger und erschweren spätere Updates.
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalausgabe mit sichtbarer Docker- und Compose-Version nach erfolgreicher Installation
|
||||
|
||||
### Schritt 3 – Verzeichnisstruktur und Konfiguration anlegen
|
||||
|
||||
WAHA wird zentral in einem eigenen Verzeichnis unter `/opt/waha` betrieben.
|
||||
Dort liegen später sowohl die Docker-Compose-Datei als auch Konfiguration, Logs und persistente Daten.
|
||||
So bleibt das System klar strukturiert und leicht sicherbar.
|
||||
|
||||
Erstelle zunächst das Hauptverzeichnis und wechsle hinein:
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/waha
|
||||
cd /opt/waha
|
||||
```
|
||||
|
||||
Lege anschließend die Unterordner für Konfiguration, Logs und Daten an:
|
||||
|
||||
```bash
|
||||
mkdir -p config logs data
|
||||
```
|
||||
|
||||
👉 **Screenshot geeignet:** Terminal mit ausgeführtem `ls -l /opt/waha` (alle drei Unterordner sichtbar)
|
||||
|
||||
Nun folgt die grundlegende **`.env`-Datei**, in der alle wichtigen Parameter definiert sind.
|
||||
Öffne sie im Editor:
|
||||
|
||||
```bash
|
||||
nano /opt/waha/.env
|
||||
```
|
||||
|
||||
Füge folgenden Inhalt ein:
|
||||
|
||||
```
|
||||
# Basis-Konfiguration
|
||||
TZ=Europe/Berlin
|
||||
WAHA_PORT=3000
|
||||
WAHA_DATA_PATH=/opt/waha/data
|
||||
|
||||
# Sicherheit
|
||||
WAHA_SECRET=$(openssl rand -hex 32)
|
||||
|
||||
# Logging
|
||||
WAHA_LOG_LEVEL=info
|
||||
|
||||
# Admin-Zugang (optional)
|
||||
WAHA_ADMIN_USER=admin
|
||||
WAHA_ADMIN_PASSWORD=changeMe123!
|
||||
```
|
||||
|
||||
Speichern (STRG + O, Enter) und schließen (STRG + X).
|
||||
|
||||
> [!NOTE]
|
||||
> Die Datei `.env` wird von Docker Compose automatisch eingelesen.
|
||||
> Sie enthält sensible Daten wie Passwörter und Schlüssel – daher sollten die Berechtigungen auf root beschränkt bleiben.
|
||||
|
||||
👉 **Screenshot geeignet:** geöffnete `.env`-Datei mit markierten Variablen (Port, Log-Level, Admin-Zugang)
|
||||
|
||||
Jetzt folgt die eigentliche **`docker-compose.yml`**-Datei.
|
||||
Sie definiert den WAHA-Dienst und die dazugehörigen Volumes.
|
||||
|
||||
```bash
|
||||
nano /opt/waha/docker-compose.yml
|
||||
```
|
||||
|
||||
Füge folgenden Inhalt ein:
|
||||
|
||||
```yaml
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
waha:
|
||||
image: devlikeapro/whatsapp-http-api:latest
|
||||
container_name: waha
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
- ./config:/app/config
|
||||
- ./logs:/app/logs
|
||||
```
|
||||
|
||||
Speichern und schließen.
|
||||
|
||||
> [!TIP]
|
||||
> Diese Struktur entspricht der aktuellen offiziellen Empfehlung des WAHA-Projekts.
|
||||
> Alle Daten liegen lokal, Updates erfolgen über Image-Pulls, und ein Neustart setzt die laufende Session nicht zurück,
|
||||
> solange der `/opt/waha/data`-Ordner erhalten bleibt.
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalansicht mit geöffneter `docker-compose.yml` und markiertem Dienst `waha`
|
||||
|
||||
### Schritt 4 – Container starten und erste Verbindung prüfen
|
||||
|
||||
Mit der vorbereiteten `.env`- und `docker-compose.yml`-Datei kannst du WAHA jetzt starten.
|
||||
Alle erforderlichen Komponenten werden automatisch geladen und im Hintergrund ausgeführt.
|
||||
|
||||
Starte den Dienst mit:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Während des ersten Starts lädt Docker das WAHA-Image von **devlikeapro/whatsapp-http-api** herunter und initialisiert die Datenstruktur im Ordner `/opt/waha/data`.
|
||||
|
||||
Überprüfe anschließend den Status:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
Die Ausgabe sollte in etwa so aussehen:
|
||||
|
||||
```
|
||||
NAME IMAGE STATUS PORTS
|
||||
waha devlikeapro/whatsapp-http-api:latest Up 1 minute 0.0.0.0:3000->3000/tcp
|
||||
```
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalausgabe von `docker compose ps` mit aktivem Container *Up*
|
||||
|
||||
Wenn der Container läuft, öffne im Browser:
|
||||
|
||||
```
|
||||
http://<IP-des-Containers>:3000
|
||||
```
|
||||
|
||||
Du solltest die WAHA-Weboberfläche sehen.
|
||||
Beim ersten Start wird dir ein **QR-Code** angezeigt, über den du dein WhatsApp-Konto mit der Instanz verbindest.
|
||||
|
||||
> [!NOTE]
|
||||
> Dieser QR-Code muss mit der WhatsApp-App auf deinem Smartphone gescannt werden – genauso wie bei WhatsApp Web.
|
||||
> Nach erfolgreicher Kopplung bleibt die Session aktiv, solange der Container läuft und die Daten erhalten bleiben.
|
||||
|
||||
👉 **Screenshot geeignet:** Browseransicht mit WAHA-QR-Code zur WhatsApp-Verknüpfung
|
||||
|
||||
Wenn du den QR-Code gescannt hast, sollte in der WAHA-Weboberfläche der Status **„Connected“** erscheinen.
|
||||
Damit ist die Verbindung zwischen deinem WhatsApp-Konto und dem UCC erfolgreich hergestellt.
|
||||
|
||||
Prüfe den Status auch über die API:
|
||||
|
||||
```bash
|
||||
curl http://localhost:3000/api/sessions
|
||||
```
|
||||
|
||||
Die Ausgabe sollte bestätigen, dass eine aktive Session existiert.
|
||||
|
||||
> [!TIP]
|
||||
> Wenn der QR-Code nicht erscheint oder sich die Seite nach dem Scannen nicht aktualisiert,
|
||||
> überprüfe die Browserkonsole und Containerlogs:
|
||||
> ```bash
|
||||
> docker compose logs -f waha
|
||||
> ```
|
||||
> In den meisten Fällen liegt die Ursache an einer blockierten WebSocket-Verbindung oder einem temporären Timeout beim Start.
|
||||
|
||||
👉 **Screenshot geeignet:** Browserfenster mit WAHA-Status „Connected“ und sichtbarer API-URL
|
||||
|
||||
### Schritt 5 – Integration in Nginx Proxy Manager (NPM)
|
||||
|
||||
Damit WAHA sicher und bequem erreichbar ist, wird der interne Port **3000** jetzt über den **Nginx Proxy Manager** veröffentlicht.
|
||||
So erhältst du eine verschlüsselte HTTPS-Verbindung und kannst die API später direkt aus n8n oder anderen Diensten ansprechen.
|
||||
|
||||
#### Proxy-Host anlegen
|
||||
|
||||
1. Öffne das Dashboard des **Nginx Proxy Manager**.
|
||||
2. Klicke auf **Add Proxy Host**.
|
||||
3. Trage folgende Werte ein:
|
||||
|
||||
| Feld | Wert |
|
||||
|------|------|
|
||||
| **Domain Names** | `waha.deinedomain.tld` |
|
||||
| **Scheme** | `http` |
|
||||
| **Forward Hostname / IP** | `<IP-des-WAHA-Containers>` |
|
||||
| **Forward Port** | `3000` |
|
||||
| **Block Common Exploits** | aktivieren |
|
||||
| **Websockets Support** | aktivieren |
|
||||
|
||||
Wechsle anschließend in den Reiter **SSL** und aktiviere:
|
||||
|
||||
- **Request a new SSL Certificate**
|
||||
- **Force SSL**
|
||||
- **HTTP/2 Support**
|
||||
- **HSTS Enabled**
|
||||
|
||||
Klicke danach auf **Save**.
|
||||
|
||||
> [!NOTE]
|
||||
> Der Proxy Manager erzeugt automatisch ein gültiges Let’s-Encrypt-Zertifikat.
|
||||
> Achte darauf, dass die Domain bereits korrekt auf deinen Server zeigt – sonst schlägt die Zertifikatsprüfung fehl.
|
||||
|
||||
👉 **Screenshot geeignet:** NPM-Dashboard mit geöffnetem Proxy-Host `waha.deinedomain.tld`
|
||||
|
||||
#### Verbindung prüfen
|
||||
|
||||
Öffne im Browser:
|
||||
|
||||
```
|
||||
https://waha.deinedomain.tld
|
||||
```
|
||||
|
||||
Wenn alles funktioniert, siehst du erneut das WAHA-Webinterface – diesmal über eine gesicherte HTTPS-Verbindung.
|
||||
Das **Schloss-Symbol** im Browser bestätigt das aktive SSL-Zertifikat.
|
||||
|
||||
> [!TIP]
|
||||
> Sollte der Browser keine Verbindung herstellen, überprüfe im NPM-Dashboard IP-Adresse und Port.
|
||||
> In vielen Fällen hilft ein einfacher Neustart des Containers:
|
||||
> ```bash
|
||||
> docker compose restart
|
||||
> ```
|
||||
|
||||
👉 **Screenshot geeignet:** Browserfenster mit WAHA-Interface unter `https://waha.deinedomain.tld` (Schloss-Symbol sichtbar)
|
||||
|
||||
### Schritt 6 – Erste API-Tests und Nachrichten senden
|
||||
|
||||
Nach erfolgreicher Verbindung kannst du jetzt prüfen, ob die API korrekt arbeitet und Nachrichten über dein WhatsApp-Konto gesendet werden können.
|
||||
WAHA stellt dafür eine einfache HTTP-Schnittstelle bereit, die direkt getestet werden kann.
|
||||
|
||||
#### Verbindung prüfen
|
||||
|
||||
Zuerst prüfen wir, ob die Session korrekt verbunden ist:
|
||||
|
||||
```bash
|
||||
curl https://waha.deinedomain.tld/api/sessions
|
||||
```
|
||||
|
||||
Die Ausgabe sollte in etwa so aussehen:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "default",
|
||||
"status": "connected",
|
||||
"owner": "+491701234567",
|
||||
"platform": "android",
|
||||
"createdAt": "2025-10-19T17:00:00.000Z"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Wenn der Status „disconnected“ oder „pairing“ lautet, wurde die Verbindung unterbrochen.
|
||||
> In diesem Fall muss der QR-Code neu gescannt werden.
|
||||
> WAHA zeigt diesen automatisch an, wenn du die Weboberfläche erneut öffnest.
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalausgabe von `curl /api/sessions` mit sichtbarem Status *connected*
|
||||
|
||||
#### Testnachricht senden
|
||||
|
||||
Nun kannst du eine einfache Textnachricht verschicken.
|
||||
Ersetze im folgenden Beispiel die Telefonnummer durch eine reale WhatsApp-Nummer (mit internationaler Ländervorwahl, **ohne Pluszeichen oder Leerzeichen**):
|
||||
|
||||
```bash
|
||||
curl -X POST https://waha.deinedomain.tld/api/sendText \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"chatId": "491701234567@c.us",
|
||||
"text": "Testnachricht aus dem UCC – gesendet über WAHA 🦉"
|
||||
}'
|
||||
```
|
||||
|
||||
Wenn alles korrekt eingerichtet ist, erhält das Zielgerät die Nachricht innerhalb weniger Sekunden.
|
||||
|
||||
> [!TIP]
|
||||
> Verwende für interne Tests eine eigene Nummer oder ein separates Gerät.
|
||||
> So verhinderst du, dass der Hauptaccount bei ungewöhnlichen Automatisierungen gesperrt wird.
|
||||
> WhatsApp erkennt zu häufige automatisierte Aktionen und kann den Account temporär blockieren.
|
||||
|
||||
👉 **Screenshot geeignet:** WhatsApp-Chatfenster auf Smartphone mit empfangener Testnachricht „Testnachricht aus dem UCC – gesendet über WAHA 🦉“
|
||||
|
||||
#### Nachrichten empfangen
|
||||
|
||||
Eingehende Nachrichten werden standardmäßig per Webhook weitergegeben.
|
||||
Diese Funktion nutzt du später für die Integration mit n8n.
|
||||
Um zu prüfen, ob eingehende Nachrichten erkannt werden, rufe die API-Events ab:
|
||||
|
||||
```bash
|
||||
curl https://waha.deinedomain.tld/api/messages
|
||||
```
|
||||
|
||||
Du erhältst eine Liste der zuletzt empfangenen Nachrichten.
|
||||
|
||||
> [!NOTE]
|
||||
> Wenn keine Nachrichten erscheinen, prüfe die Containerlogs:
|
||||
> ```bash
|
||||
> docker compose logs -f waha
|
||||
> ```
|
||||
> Eine stabile Internetverbindung des Smartphones ist zwingend erforderlich,
|
||||
> da WAHA auf WhatsApp Web basiert und eine permanente Synchronisation erwartet.
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalausgabe mit empfangener JSON-Nachricht unter `/api/messages`
|
||||
|
||||
### Schritt 7 – Dauerbetrieb und Neustart-Verhalten prüfen
|
||||
|
||||
Damit WAHA nach einem Neustart des Containers oder Hosts automatisch wieder verfügbar ist,
|
||||
prüfst du jetzt das Neustart-Verhalten und sicherst die Session-Daten dauerhaft ab.
|
||||
|
||||
Zuerst prüfen, ob in der `docker-compose.yml` der Neustart-Modus korrekt gesetzt ist:
|
||||
|
||||
```bash
|
||||
grep restart /opt/waha/docker-compose.yml
|
||||
```
|
||||
|
||||
Die Ausgabe sollte enthalten:
|
||||
|
||||
```
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Dieses Flag sorgt dafür, dass der Container automatisch wieder startet,
|
||||
> sobald Docker nach einem Reboot oder Fehler neu hochfährt.
|
||||
> Ein zusätzlicher systemd-Dienst ist nicht erforderlich.
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalausgabe mit sichtbarem Eintrag `restart: unless-stopped`
|
||||
|
||||
Führe jetzt einen kontrollierten Neustart des Containers durch:
|
||||
|
||||
```bash
|
||||
reboot
|
||||
```
|
||||
|
||||
Nach dem Reboot erneut einloggen und prüfen, ob der Dienst automatisch gestartet wurde:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
Die Ausgabe sollte wieder den Status **Up** anzeigen.
|
||||
|
||||
> [!TIP]
|
||||
> Wenn der Container nicht automatisch startet, überprüfe, ob Docker Compose beim Systemstart aktiviert ist.
|
||||
> Der folgende Befehl zeigt den Status:
|
||||
> ```bash
|
||||
> systemctl status docker
|
||||
> ```
|
||||
> Docker sollte aktiv („active (running)“) sein.
|
||||
|
||||
👉 **Screenshot geeignet:** Terminalausgabe von `docker compose ps` nach Neustart (Containerstatus *Up*)
|
||||
|
||||
Prüfe anschließend, ob die WhatsApp-Session erhalten geblieben ist:
|
||||
|
||||
```bash
|
||||
curl https://waha.deinedomain.tld/api/sessions
|
||||
```
|
||||
|
||||
Die Session sollte weiterhin als **connected** angezeigt werden.
|
||||
Falls der Status „pairing“ oder „disconnected“ erscheint, wurde die Session im RAM statt auf der Festplatte gespeichert.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> WAHA speichert Sitzungsdaten im Volume `/opt/waha/data`.
|
||||
> Stelle sicher, dass dieser Ordner persistent gemountet ist.
|
||||
> Nur so bleibt die Kopplung nach einem Neustart erhalten.
|
||||
|
||||
👉 **Screenshot geeignet:** Browseransicht WAHA-Interface nach Neustart mit Statusanzeige *Connected*
|
||||
|
||||
Damit ist der Dauerbetrieb von WAHA gewährleistet.
|
||||
Der Container startet automatisch, hält die Verbindung dauerhaft aktiv
|
||||
und bleibt über die Proxy-Domain `https://waha.deinedomain.tld` sicher erreichbar.
|
||||
|
||||
Reference in New Issue
Block a user