services: # The Brain (FastAPI) c2-brain: build: . container_name: radio-c2-brain restart: always environment: - MONGO_URI=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@db:27017/radio_c2?authSource=admin - MQTT_BROKER=mqtt-broker - PORT=8000 depends_on: - db - mqtt-broker ports: - "8000:8000" networks: - radio-shared-net # The Memory (MongoDB) db: image: mongo:latest container_name: radio-db restart: always environment: - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME} - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} volumes: - mongo_data:/data/db networks: - radio-shared-net # The Post Office (MQTT Broker) mqtt-broker: image: eclipse-mosquitto:latest container_name: radio-mqtt restart: always ports: - "1883:1883" - "9001:9001" volumes: - ./mosquitto/config/:/mosquitto/config/ - ./mosquitto/data/:/mosquitto/data/ - ./mosquitto/log/:/mosquitto/log/ networks: - radio-shared-net networks: radio-shared-net: external: true volumes: mongo_data: