Ir al contenido principal

WAHA con Docker y Nginx usando subdominios

Este tutorial muestra la forma correcta y estable de levantar WAHA y exponerlo por Internet usando Nginx + HTTPS, soportando múltiples instancias mediante subdominios.

Decisión clave: subdominios, no subpaths. WAHA no soporta bien /waha1, /waha2.

Arquitectura final

  • 1 servidor (VM)
  • 1 Nginx como reverse proxy
  • 1 contenedor WAHA por WhatsApp
  • 1 subdominio por WAHA

Ejemplo:

  • wasabi.cloud-ip.cc → web / landing
  • waha1.wasabi.cloud-ip.cc → WAHA #1
  • waha2.wasabi.cloud-ip.cc → WAHA #2

1️⃣ Requisitos

  • Ubuntu (20.04+ recomendado)
  • Nginx
  • Dominio o subdominio
  • Certbot (Let’s Encrypt)

2️⃣ DNS (subdominios)

En tu proveedor DNS agregá un registro A por cada WAHA:

Host                       Tipo   IP
wasabi.cloud-ip.cc         A      TU_IP_PUBLICA
waha1.wasabi.cloud-ip.cc   A      TU_IP_PUBLICA
waha2.wasabi.cloud-ip.cc   A      TU_IP_PUBLICA
Esperá unos minutos a que el DNS propague y listo.

3️⃣ Nginx – dominio raíz

El dominio principal NO corre WAHA. Se usa solo para web estática o landing.

server {
    server_name wasabi.cloud-ip.cc;

    root /usr/share/nginx/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/wasabi.cloud-ip.cc/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wasabi.cloud-ip.cc/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
}

4️⃣ Nginx – WAHA por subdominio

Crear un archivo por cada WAHA:

sudo nano /etc/nginx/sites-available/waha1
server {
    server_name waha1.wasabi.cloud-ip.cc;

    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Activar el sitio:

sudo ln -s /etc/nginx/sites-available/waha1 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

5️⃣ HTTPS con Certbot

sudo certbot --nginx -d waha1.wasabi.cloud-ip.cc
Certbot detecta Nginx, agrega SSL y configura HTTPS automáticamente.

6️⃣ Probar

Credenciales por defecto:

  • Usuario: admin
  • Password: demo123

7️⃣ Agregar más WAHA

Repetir el mismo proceso:

  • DNS: waha2.wasabi.cloud-ip.cc
  • Nginx: nuevo server {}
  • Certbot

❌ Por qué NO usar /waha1

  • WAHA redirige a /dashboard
  • Rompe el login
  • Requiere sub_filter
  • Frágil ante actualizaciones
Regla de oro:
1 WAHA = 1 subdominio = 1 contenedor = 1 WhatsApp

Comentarios

Entradas populares de este blog

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 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 ...

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...