# Docker Compose configuration for OpsGuardian # Note: 'version' field is obsolete in modern Docker Compose and has been removed services: # ============================================ # OpsGuardian Application # ============================================ opsguardian: build: context: . dockerfile: Dockerfile container_name: opsguardian ports: - "8080:8080" environment: - NODE_ENV=production - MOTIA_PORT=8080 # Kafka configuration - KAFKA_BROKERS=kafka:9092 - KAFKA_TOPIC=system-logs - KAFKA_GROUP_ID=opsguardian-consumer # Redis configuration - REDIS_HOST=redis - REDIS_PORT=6379 - CACHE_TTL_SECONDS=10 # ClickHouse configuration - CLICKHOUSE_HOST=http://clickhouse:8123 - CLICKHOUSE_DATABASE=opsguardian - CLICKHOUSE_USER=default depends_on: - kafka - redis - clickhouse restart: unless-stopped networks: - opsguardian-network # ============================================ # Kafka Message Broker # ============================================ zookeeper: image: confluentinc/cp-zookeeper:7.5.0 container_name: zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 networks: - opsguardian-network kafka: image: confluentinc/cp-kafka:7.5.0 container_name: kafka ports: - "9092:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true" depends_on: - zookeeper networks: - opsguardian-network # ============================================ # Redis Cache # ============================================ redis: image: redis:7-alpine container_name: redis ports: - "6380:6379" command: redis-server --appendonly yes volumes: - redis-data:/data networks: - opsguardian-network # ============================================ # ClickHouse Analytics Database # ============================================ clickhouse: image: clickhouse/clickhouse-server:23.8 container_name: clickhouse ports: - "8123:8123" # HTTP interface - "9000:9000" # Native interface environment: CLICKHOUSE_DB: opsguardian CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 volumes: - clickhouse-data:/var/lib/clickhouse ulimits: nofile: soft: 262144 hard: 262144 networks: - opsguardian-network # ============================================ # Optional: Kafka UI for debugging # ============================================ kafka-ui: image: provectuslabs/kafka-ui:latest container_name: kafka-ui ports: - "8090:8080" environment: KAFKA_CLUSTERS_0_NAME: local KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092 KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181 depends_on: - kafka networks: - opsguardian-network # ============================================ # Optional: Redis Commander for debugging # ============================================ redis-commander: image: rediscommander/redis-commander:latest container_name: redis-commander ports: - "8081:8081" environment: - REDIS_HOSTS=local:redis:6379 depends_on: - redis networks: - opsguardian-network networks: opsguardian-network: driver: bridge volumes: redis-data: clickhouse-data: