services: postgres: image: postgres:16 environment: POSTGRES_DB: vigilcare POSTGRES_USER: postgres POSTGRES_PASSWORD: password ports: - "5436:5432" volumes: - pg_data:/var/lib/postgresql/data redis: image: redis:7-alpine ports: - "6382:6379" seq: image: datalust/seq:latest environment: ACCEPT_EULA: "Y" SEQ_FIRSTRUN_ADMINPASSWORD: "admin" ports: - "5345:80" volumes: - seq_data:/data kafka: image: apache/kafka:3.7.0 ports: - "9092:9092" environment: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 # Disable auto-creation — topics are provisioned explicitly with the correct # partition count. Auto-creation would silently create a topic with 1 partition # if the relay publishes before the provisioner runs. KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false" # Fixed ID prevents the broker from reinitializing storage on restart. # Generate once with: kafka-storage.sh random-uuid | base64 CLUSTER_ID: "MkU3OEVBNTcwNTJENDM2Qk" volumes: - kafka_data:/var/lib/kafka/data volumes: pg_data: seq_data: kafka_data: