services: # emqx: # image: emqx/emqx:5.8.8 # container_name: emqx # environment: # - EMQX_DASHBOARD__DEFAULT_USERNAME=user # - EMQX_DASHBOARD__DEFAULT_PASSWORD=pass # ports: # - "127.0.0.1:1883:1883" # healthcheck: # test: ["CMD", "curl", "-f", "http://localhost:18083/api/v5/status"] # interval: 10s # timeout: 5s # retries: 10 # start_period: 20s kafka: image: apache/kafka:3.9.0 container_name: kafka healthcheck: test: ["CMD-SHELL", "nc -z localhost 9092"] interval: 10s timeout: 5s retries: 10 environment: - KAFKA_NODE_ID=1 - KAFKA_PROCESS_ROLES=broker,controller - KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 - KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER - KAFKA_CONTROLLER_QUORUM_VOTERS=1@kafka:9093 - KAFKA_LOG_DIRS=/tmp/kraft-combined-logs - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 - KAFKA_AUTO_CREATE_TOPICS_ENABLE=true ports: - "127.0.0.1:9092:9092" valkey: image: valkey/valkey:9.0.0 container_name: valkey ports: - "127.0.0.1:6379:6379" node-red: image: nodered/node-red:latest-22 container_name: node-red ports: - "127.0.0.1:1880:1880" volumes: - "../volumes/node-red:/data" presense-decoder: build: context: ../ dockerfile: build/package/Dockerfile.decoder network: host image: presense-decoder container_name: presense-decoder environment: - REDIS_URL=valkey:6379 - KAFKA_URL=kafka:9092 depends_on: - kafka - valkey restart: always presense-server: build: context: ../ dockerfile: build/package/Dockerfile.server network: host image: presense-server container_name: presense-server environment: - REDIS_URL=valkey:6379 - KAFKA_URL=kafka:9092 depends_on: - kafka # - emqx ports: - "127.0.0.1:1902:1902" restart: always presense-bridge: build: context: ../ dockerfile: build/package/Dockerfile.bridge network: host image: presense-bridge container_name: presense-bridge environment: - KAFKA_URL=kafka:9092 - MQTT_HOST=192.168.1.101:1883 - MQTT_USERNAME=user - MQTT_PASSWORD=pass depends_on: kafka: condition: service_healthy restart: always