From e8dcb0c242879006a85771d53e476cf0010b240a Mon Sep 17 00:00:00 2001 From: devlikepro Date: Mon, 22 Jul 2024 22:27:16 +0300 Subject: [PATCH] [core] Add full docker-compose.yaml --- docker-compose.test.yaml | 115 ++++++++++++++++ docker-compose.yaml | 279 ++++++++++++++++++++++++++------------- 2 files changed, 299 insertions(+), 95 deletions(-) create mode 100644 docker-compose.test.yaml diff --git a/docker-compose.test.yaml b/docker-compose.test.yaml new file mode 100644 index 00000000..d431ea2c --- /dev/null +++ b/docker-compose.test.yaml @@ -0,0 +1,115 @@ +version: '3' +services: + waha: + # Check available Docker images: + # https://waha.devlike.pro/docs/how-to/engines/#docker-images + image: devlikeapro/waha + container_name: waha + ports: + - '3000:3000/tcp' + environment: + # Environment variables from https://waha.devlike.pro/docs/how-to/config/ + # https://docs.webhook.site/ + - WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 + - WHATSAPP_HOOK_EVENTS=message + - WHATSAPP_DEFAULT_ENGINE=WEBJS + restart: always + + waha-plus: + # Check available Docker images: + # https://waha.devlike.pro/docs/how-to/engines/#docker-images + image: devlikeapro/waha-plus:chrome + container_name: waha-plus + ports: + - '3000:3000/tcp' + volumes: + - './.sessions:/app/.sessions' + environment: + # Environment variables from https://waha.devlike.pro/docs/how-to/config/ + # - WHATSAPP_RESTART_ALL_SESSIONS=True + # - WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 + # - WHATSAPP_HOOK_EVENTS=message + # - WHATSAPP_API_HOSTNAME=localhost + - WHATSAPP_DEFAULT_ENGINE=WEBJS + - WHATSAPP_API_KEY=321 + # Username and password for Swagger + - WHATSAPP_SWAGGER_USERNAME=swagger + - WHATSAPP_SWAGGER_PASSWORD=admin + # Username and password for WAHA Dashboard + # you can use the same username and password for both Swagger and Dashboard + # Default - waha / waha + - WAHA_DASHBOARD_USERNAME=waha + - WAHA_DASHBOARD_PASSWORD=waha + # Engine specific environment variables + # - WAHA_WEBJS_WEB_VERSION=2.2412.54-videofix + restart: always + + waha-plus--mongodb: + # Check available Docker images: + # https://waha.devlike.pro/docs/how-to/engines/#docker-images + image: devlikeapro/waha-plus:chrome + container_name: waha-plus--mongodb + ports: + - '3000:3000/tcp' + volumes: + - './.sessions:/app/.sessions' + environment: + # Environment variables from https://waha.devlike.pro/docs/how-to/config/ + # - WHATSAPP_RESTART_ALL_SESSIONS=True + # - WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 + # - WHATSAPP_HOOK_EVENTS=message + # - WHATSAPP_API_KEY=321 + # - WHATSAPP_SWAGGER_USERNAME=admin + # - WHATSAPP_SWAGGER_PASSWORD=123 + # - WAHA_DASHBOARD_USERNAME=admin + # - WAHA_DASHBOARD_PASSWORD=123 + # - WHATSAPP_API_HOSTNAME=localhost + - WHATSAPP_DEFAULT_ENGINE=WEBJS + - WHATSAPP_SESSIONS_MONGO_URL=mongodb://mongodb:27017 + restart: always + + # Let's Encrypt + Certbot + # https://waha.devlike.pro/docs/how-to/security/#https + waha-https--certbot: + image: devlikeapro/waha-plus + restart: unless-stopped + ports: + - '3000:3000' + volumes: + - './.sessions:/app/.sessions' + - '/etc/letsencrypt:/etc/letsencrypt' + environment: + - DOMAIN=waha.example.pro + - WHATSAPP_API_HOSTNAME=${DOMAIN} + - WAHA_HTTPS_ENABLED=true + - WAHA_HTTPS_PATH_KEY=/etc/letsencrypt/live/${DOMAIN}/privkey.pem + - WAHA_HTTPS_PATH_CERT=/etc/letsencrypt/live/${DOMAIN}/cert.pem + - WAHA_HTTPS_PATH_CA=/etc/letsencrypt/live/${DOMAIN}/chain.pem + + # Self-signed certificates example + # https://waha.devlike.pro/docs/how-to/security/#https + waha-https--self-signed: + image: devlikeapro/waha-plus + restart: unless-stopped + ports: + - '3000:3000' + volumes: + - './.sessions:/app/.sessions' + - './.secrets:/app/.secrets' + environment: + - WAHA_HTTPS_ENABLED=true + - WAHA_HTTPS_PATH_KEY=.secrets/privkey.pem + - WAHA_HTTPS_PATH_CERT=.secrets/cert.pem + - WAHA_HTTPS_PATH_CA=.secrets/chain.pem + + mongodb: + image: mongo + container_name: mongodb + ports: + - '27017:27017/tcp' + volumes: + - mongodb_data:/data/db + restart: always + +volumes: + mongodb_data: {} diff --git a/docker-compose.yaml b/docker-compose.yaml index d431ea2c..00be6ea8 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,115 +1,204 @@ +# +# https://waha.devlike.pro/docs/how-to/install/ +# Here's we provide a simple example of how to install WAHA using Docker Compose. +# +# We're assuming you have Docker and Docker Compose installed. +# If you don't have Docker Compose installed, you can follow the official guide: +# https://docs.docker.com/compose/install/ +# + version: '3' services: waha: - # Check available Docker images: - # https://waha.devlike.pro/docs/how-to/engines/#docker-images - image: devlikeapro/waha - container_name: waha - ports: - - '3000:3000/tcp' - environment: - # Environment variables from https://waha.devlike.pro/docs/how-to/config/ - # https://docs.webhook.site/ - - WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 - - WHATSAPP_HOOK_EVENTS=message - - WHATSAPP_DEFAULT_ENGINE=WEBJS + # Always restart the container on failure restart: always - waha-plus: - # Check available Docker images: + # + # Image + # + image: devlikeapro/waha-plus:latest # or devlikeapro/waha:latest if you're using WAHA Core + # + # We strongly recommend using the pinned version of WAHA + # https://waha.devlike.pro/docs/how-to/engines/#versions + # image: devlikeapro/waha-plus:latest-2024.7.6 # 'latest' is not mistaken here + # + # Multiple images are available # https://waha.devlike.pro/docs/how-to/engines/#docker-images - image: devlikeapro/waha-plus:chrome - container_name: waha-plus + # image: devlikeapro/waha-plus:chrome + # + + # The first port can be any free port you want + # The second port must be the same as WHATSAPP_API_PORT or 3000 by default + # Consider using the same port for simplicity ports: - '3000:3000/tcp' + # NOTE: if you're using HTTP, you can use the following port mapping + #- '80:3000/tcp' + # NOTE: if you're using HTTPS, you can use the following port mapping + #- '443:3000/tcp' + volumes: + # Store sessions in the .sessions folder (comment it if you're using MongoDB) + # Doesn't work with WAHA Core - './.sessions:/app/.sessions' + + # https://waha.devlike.pro/docs/how-to/storages/#save-media-files-between-the-container-restarts + - './.media:/app/.media' + + # If you're using certbot for HTTPS, you can use the following volume mapping + # https://waha.devlike.pro/blog/setting-up-https-for-waha/#lets-encrypt-certbot--waha + # - '/etc/letsencrypt:/etc/letsencrypt' + + # WAHA Configuration + # https://waha.devlike.pro/docs/how-to/config/ environment: - # Environment variables from https://waha.devlike.pro/docs/how-to/config/ - # - WHATSAPP_RESTART_ALL_SESSIONS=True - # - WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 - # - WHATSAPP_HOOK_EVENTS=message - # - WHATSAPP_API_HOSTNAME=localhost - - WHATSAPP_DEFAULT_ENGINE=WEBJS + # + # Common + # + # If you know the right URL, you can use it here. + # Use any port in WHATSAPP_API_PORT and domain in WHATSAPP_API_HOSTNAME + # https://waha.devlike.pro/docs/how-to/config/#common + #- WHATSAPP_API_PORT=3000 + #- WHATSAPP_API_HOSTNAME=localhost + + # + # Security + # + # https://waha.devlike.pro/docs/how-to/security/ + # - WHATSAPP_API_KEY=321 - # Username and password for Swagger - - WHATSAPP_SWAGGER_USERNAME=swagger - - WHATSAPP_SWAGGER_PASSWORD=admin - # Username and password for WAHA Dashboard - # you can use the same username and password for both Swagger and Dashboard - # Default - waha / waha - WAHA_DASHBOARD_USERNAME=waha - WAHA_DASHBOARD_PASSWORD=waha - # Engine specific environment variables - # - WAHA_WEBJS_WEB_VERSION=2.2412.54-videofix - restart: always + #- WHATSAPP_SWAGGER_USERNAME=admin + #- WHATSAPP_SWAGGER_PASSWORD=admin - waha-plus--mongodb: - # Check available Docker images: - # https://waha.devlike.pro/docs/how-to/engines/#docker-images - image: devlikeapro/waha-plus:chrome - container_name: waha-plus--mongodb - ports: - - '3000:3000/tcp' - volumes: - - './.sessions:/app/.sessions' - environment: - # Environment variables from https://waha.devlike.pro/docs/how-to/config/ - # - WHATSAPP_RESTART_ALL_SESSIONS=True - # - WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 - # - WHATSAPP_HOOK_EVENTS=message - # - WHATSAPP_API_KEY=321 - # - WHATSAPP_SWAGGER_USERNAME=admin - # - WHATSAPP_SWAGGER_PASSWORD=123 - # - WAHA_DASHBOARD_USERNAME=admin - # - WAHA_DASHBOARD_PASSWORD=123 - # - WHATSAPP_API_HOSTNAME=localhost + # + # Dashboard + # + # https://waha.devlike.pro/docs/how-to/waha-dashboard/#configuration + # Enabled by default + #- WAHA_DASHBOARD_ENABLED=true + #- WAHA_DASHBOARD_USERNAME=waha + #- WAHA_DASHBOARD_PASSWORD=waha + + # + # Logging + # https://waha.devlike.pro/docs/how-to/observability/#logging + # + - WAHA_LOG_FORMAT=PRETTY + # Set log format to JSON if you consume logs with log management systems + #- WAHA_LOG_FORMAT=JSON + - WAHA_LOG_LEVEL=info + # If you want to see more logs, you can set the log level to debug + #- WAHA_LOG_LEVEL=debug + # DEBUG=1 # shortcut for setting log level to debug + + # + # Engine + # + # Choose the right engine for your needs (WEBJS by default) + # https://waha.devlike.pro/docs/how-to/engines/ - WHATSAPP_DEFAULT_ENGINE=WEBJS - - WHATSAPP_SESSIONS_MONGO_URL=mongodb://mongodb:27017 - restart: always + # Use NOWEB engine for the fastest performance + #- WHATSAPP_DEFAULT_ENGINE=NOWEB - # Let's Encrypt + Certbot - # https://waha.devlike.pro/docs/how-to/security/#https - waha-https--certbot: - image: devlikeapro/waha-plus - restart: unless-stopped - ports: - - '3000:3000' - volumes: - - './.sessions:/app/.sessions' - - '/etc/letsencrypt:/etc/letsencrypt' - environment: - - DOMAIN=waha.example.pro - - WHATSAPP_API_HOSTNAME=${DOMAIN} - - WAHA_HTTPS_ENABLED=true - - WAHA_HTTPS_PATH_KEY=/etc/letsencrypt/live/${DOMAIN}/privkey.pem - - WAHA_HTTPS_PATH_CERT=/etc/letsencrypt/live/${DOMAIN}/cert.pem - - WAHA_HTTPS_PATH_CA=/etc/letsencrypt/live/${DOMAIN}/chain.pem + # + # Sessions + # + # https://waha.devlike.pro/docs/how-to/config/#sessions + # Restart all sessions when container starts + - WHATSAPP_RESTART_ALL_SESSIONS=True + # Do not print QR codes in logs + - WAHA_PRINT_QR=False + # + # OR you can specify sessions by name, if you have handful amount of sessions + #- WHATSAPP_START_SESSION=session1,session2 + # Do not use both WHATSAPP_RESTART_ALL_SESSIONS and WHATSAPP_START_SESSION parameters + # - # Self-signed certificates example - # https://waha.devlike.pro/docs/how-to/security/#https - waha-https--self-signed: - image: devlikeapro/waha-plus - restart: unless-stopped - ports: - - '3000:3000' - volumes: - - './.sessions:/app/.sessions' - - './.secrets:/app/.secrets' - environment: - - WAHA_HTTPS_ENABLED=true - - WAHA_HTTPS_PATH_KEY=.secrets/privkey.pem - - WAHA_HTTPS_PATH_CERT=.secrets/cert.pem - - WAHA_HTTPS_PATH_CA=.secrets/chain.pem + # + # Swagger + # + # https://waha.devlike.pro/docs/how-to/swagger/ + #- WHATSAPP_SWAGGER_USERNAME=admin + #- WHATSAPP_SWAGGER_PASSWORD=admin + # Disable Swagger + #- WHATSAPP_SWAGGER_ENABLED=false + # Enable advanced Swagger configuration + #- WHATSAPP_SWAGGER_CONFIG_ADVANCED=true + # + # Swagger White Label customization + # https://waha.devlike.pro/docs/how-to/swagger/#white-label + #- WHATSAPP_SWAGGER_TITLE=WAHA API + # - mongodb: - image: mongo - container_name: mongodb - ports: - - '27017:27017/tcp' - volumes: - - mongodb_data:/data/db - restart: always + # + # Global Proxy Settings + # https://waha.devlike.pro/docs/how-to/config/#global-proxy-configuration + # You can also set proxy settings for each session later when starting it + # https://waha.devlike.pro/docs/how-to/sessions/#configure-proxy + #- WHATSAPP_PROXY_SERVER=proxy.example.com:3128 + #-WHATSAPP_PROXY_SERVER_USERNAME=user + #-WHATSAPP_PROXY_SERVER_PASSWORD=pass + # -volumes: - mongodb_data: {} + # + # HTTPS Configuration + # + # https://waha.devlike.pro/docs/how-to/config/#https + # Consider using certbot for HTTPS + # https://waha.devlike.pro/blog/setting-up-https-for-waha/#lets-encrypt-certbot--waha + #- WHATSAPP_API_HOSTNAME=waha.example.pro + #- WAHA_HTTPS_ENABLED=true + #- WAHA_HTTPS_PATH_KEY=/etc/letsencrypt/live/waha.example.pro/privkey.pem + #- WAHA_HTTPS_PATH_CERT=/etc/letsencrypt/live/waha.example.pro/cert.pem \ + #- WAHA_HTTPS_PATH_CA=/etc/letsencrypt/live/waha.example.pro/chain.pem + # + + # + # Media Configuration + # + # https://waha.devlike.pro/docs/how-to/config/#files + # + # Disable media (images, videos, files) download for incoming messages + #- WHATSAPP_DOWNLOAD_MEDIA=false + # + # Download only specific media types + #- WHATSAPP_FILES_MIMETYPES=image/jpeg,image/png + # + # Set to 0 to keep media files forever + # https://waha.devlike.pro/docs/how-to/storages/#save-media-files-between-the-container-restarts + - WHATSAPP_FILES_LIFETIME=0 + - WHATSAPP_FILES_FOLDER=/app/.media + # + # Keep media files for 180 seconds (3 minutes) + #- WHATSAPP_FILES_LIFETIME=180 + # + + # + # Global Webhooks + # + # https://waha.devlike.pro/docs/how-to/config/#webhooks + # https://waha.devlike.pro/docs/how-to/webhooks/ + #- WHATSAPP_HOOK_URL=https://webhook.site/11111111-1111-1111-1111-11111111 + #- WHATSAPP_HOOK_EVENTS=session.status,message,message.reaction + # + + # + # MongoDB Configuration + # https://waha.devlike.pro/docs/how-to/storages/#sessions---mongodb + #- WHATSAPP_SESSIONS_MONGO_URL=mongodb://mongodb:27017 + # +# NOTE: Uncomment this block to run WAHA+ with MongoDB +# mongodb: +# image: mongo +# container_name: mongodb +# ports: +# - '27017:27017/tcp' +# volumes: +# - mongodb_data:/data/db +# restart: always + +# NOTE: Uncomment this block to run WAHA+ with MongoDB +#volumes: +# mongodb_data: {}