Learn by Directing AI
All materials

docker-compose.wazuh.yml

ymldocker-compose.wazuh.yml
# VERIFICATION: Run `docker compose -f docker-compose.yml -f wazuh/docker-compose.wazuh.yml up -d`
# Expected services: wazuh-manager, wazuh-indexer, wazuh-dashboard
# Expected ports: 1514/1515 (manager), 9200 (indexer), 5601 (dashboard)
# Default dashboard credentials: admin / SecretPassword

services:
  wazuh-manager:
    image: wazuh/wazuh-manager:4.7.2
    hostname: wazuh-manager
    ports:
      - "1514:1514"
      - "1515:1515"
      - "514:514/udp"
      - "55000:55000"
    environment:
      - INDEXER_URL=https://wazuh-indexer:9200
      - INDEXER_USERNAME=admin
      - INDEXER_PASSWORD=SecretPassword
      - FILEBEAT_SSL_VERIFICATION_MODE=none
    volumes:
      - wazuh-manager-config:/var/ossec/etc
      - wazuh-manager-data:/var/ossec/data
      - wazuh-manager-logs:/var/ossec/logs
    depends_on:
      - wazuh-indexer

  wazuh-indexer:
    image: wazuh/wazuh-indexer:4.7.2
    hostname: wazuh-indexer
    ports:
      - "9200:9200"
    environment:
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
      - plugins.security.disabled=true
    volumes:
      - wazuh-indexer-data:/var/lib/wazuh-indexer

  wazuh-dashboard:
    image: wazuh/wazuh-dashboard:4.7.2
    hostname: wazuh-dashboard
    ports:
      - "5601:5601"
    environment:
      - INDEXER_USERNAME=admin
      - INDEXER_PASSWORD=SecretPassword
      - WAZUH_API_URL=https://wazuh-manager
      - API_USERNAME=wazuh-wui
      - API_PASSWORD=MyS3cr3tPassword
    depends_on:
      - wazuh-indexer
      - wazuh-manager

volumes:
  wazuh-manager-config:
  wazuh-manager-data:
  wazuh-manager-logs:
  wazuh-indexer-data: