Ir al contenido principal

WAHA en Producción con Docker y GOWS

Este tutorial explica el flujo correcto y seguro para usar WAHA en producción, minimizando consumo de recursos y evitando bloqueos o caídas en la VPS.

Importante: El QR de WhatsApp se escanea una sola vez usando WEBJS. En producción se usa GOWS o NOWEB.

Requisitos

  • VPS Linux (1 GB RAM mínimo)
  • Docker y Docker Compose instalados
  • Puerto 80 abierto
  • Acceso SSH

Paso 1: Crear estructura del proyecto

mkdir -p /home/docker/waha
cd /home/docker/waha

Paso 2: Configurar WAHA para escanear QR (WEBJS)

Este paso solo se hace una vez.

version: "3.8"

services:
  waha:
    image: devlikeapro/waha
    container_name: waha
    ports:
      - "80:3000"
    environment:
      WAHA_API_KEY: demo123
      WAHA_DASHBOARD_USERNAME: admin
      WAHA_DASHBOARD_PASSWORD: demo123
      WHATSAPP_DEFAULT_ENGINE: WEBJS
      WHATSAPP_DEFAULT_SESSION: default
      LOG_LEVEL: info
    volumes:
      - ./sessions:/app/.sessions

Paso 3: Levantar WAHA y escanear el QR

docker-compose up -d

Abrir en el navegador:

http://TU_IP:80/dashboard

Iniciar la sesión default, escanear el QR y esperar estado WORKING.

No continúes si la sesión no está en estado WORKING.

Paso 4: Verificar que la sesión se guardó

ls sessions

Debe haber archivos dentro del directorio.


Paso 5: Detener WAHA

docker-compose down

Paso 6: Configurar WAHA para producción (GOWS)

Editar docker-compose.yml:

version: "3.8"

services:
  waha:
    image: devlikeapro/waha:gows
    container_name: waha
    ports:
      - "80:3000"
    environment:
      WAHA_API_KEY: demo123
      WAHA_DASHBOARD_USERNAME: admin
      WAHA_DASHBOARD_PASSWORD: demo123
      WHATSAPP_DEFAULT_ENGINE: GOWS
      WHATSAPP_DEFAULT_SESSION: default
      LOG_LEVEL: info
    volumes:
      - ./sessions:/app/.sessions
    restart: unless-stopped
    mem_limit: 512m

Paso 7: Levantar WAHA en producción

docker-compose up -d

Paso 8: Verificar estado de la sesión

curl http://localhost/api/sessions
Si la respuesta es WORKING y no se solicita QR, WAHA está correctamente en producción.

Buenas prácticas

  • No borrar el directorio sessions
  • No usar WEBJS en producción
  • Limitar memoria en VPS pequeñas
  • Usar GOWS para mayor estabilidad
Si WhatsApp invalida la sesión, repetir el proceso desde el Paso 2.

Conclusión

Este flujo evita consumo excesivo, desconexiones SSH y reinicios inesperados en la VPS. WEBJS solo se usa para autenticación inicial. GOWS es el modo recomendado para producción.

Comentarios

Entradas populares de este blog

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...