version: '3.8' services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - N8N_HOST=${N8N_HOST:-localhost} - N8N_PORT=5678 - N8N_PROTOCOL=${N8N_PROTOCOL:-http} - N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL:-http://localhost:5678} - WEBHOOK_URL=${WEBHOOK_URL:-http://localhost:5678/} - OPENAI_API_KEY=${OPENAI_API_KEY} - WHATSAPP_API_TOKEN=${WHATSAPP_API_TOKEN} - WHATSAPP_PHONE_NUMBER=${WHATSAPP_PHONE_NUMBER} - INSTAGRAM_ACCESS_TOKEN=${INSTAGRAM_ACCESS_TOKEN} - SNAPCHAT_ACCESS_TOKEN=${SNAPCHAT_ACCESS_TOKEN} volumes: - ./workflows:/home/node/.n8n/workflows - ./data:/home/node/.n8n/data depends_on: - redis redis: image: redis:6-alpine ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --appendonly yes healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 monitoring: image: grafana/grafana ports: - "3000:3000" volumes: - grafana_data:/var/lib/grafana environment: - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin} depends_on: - prometheus prometheus: image: prom/prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' volumes: redis_data: grafana_data: prometheus_data: