# Smart City Digital Twin Martinique — Main Docker Compose # Usage: docker compose -p smart-city up -d # This file defines the simulator and includes other services version: '3.8' networks: smartcity-shared: external: true traefik-public: external: true openremote_default: external: true services: # Smart City Simulator simulator: build: . container_name: smart-city-simulator tty: true stdin_open: true networks: - smartcity-shared - traefik-public - openremote_default environment: # MQTT Brokers - ENABLE_EMQX=1 - ENABLE_MOSQUITTO=1 - ENABLE_BUNKER=0 - EMQX_HOST=emqx_emqx_1 - EMQX_PORT=1883 - MOSQUITTO_HOST=smart-city-digital-twin-martinique-mosquitto-1 - MOSQUITTO_PORT=1883 - BUNKERM_HOST=bunkerm-bunkerm-1 - BUNKERM_PORT=1900 # Context Brokers (DESACTIVE - tout passe par les IoT Agents via MQTT) - ENABLE_ORION=false - ENABLE_STELLIO=false - ENABLE_FROST=false # Databases (DESACTIVE - Telegraf s'occupe de InfluxDB) - ENABLE_INFLUX=false - INFLUX_URL=http://smart-city-influxdb:8086 # OpenRemote - ENABLE_OPENREMOTE=0 - OR_MQTT_USER=admin - OR_MQTT_PASS=Digitribe972 - OR_URL=http://openremote-manager:8080 - OR_REALM=master - OR_TOKEN_REALM=master - OR_ADMIN_USER=admin - OR_ADMIN_PASS=Digitribe972 - OR_CLIENT_SECRET=0oQjzTfiEELYmj5jFwT4iIuWUDtQDvVa # Pulsar (Disabled for stability) - ENABLE_PULSAR=false # Redpanda (Disabled) - ENABLE_REDPANDA=false - REDPANDA_BROKERS=smart-city-redpanda:9092 # Simulation settings - INTERVAL=5 - LOG_LEVEL=INFO restart: unless-stopped labels: - "traefik.enable=false" # GeoJSON Proxy — serves OpenRemote IoT sensor assets as GeoJSON for map display geojson-proxy: build: ./geojson-proxy container_name: smart-city-geojson-proxy networks: - smartcity-shared - traefik-public - openremote_default environment: - OR_URL=http://openremote-manager:8080 - OR_ADMIN_USER=admin - OR_ADMIN_PASS=Digitribe972 - OR_REALM=master - DB_HOST=openremote-postgresql-1 - DB_PORT=5432 - DB_NAME=openremote - DB_USER=postgres - DB_PASS= labels: - "traefik.enable=true" - "traefik.http.routers.geojson-proxy.rule=Host(`geojson-proxy.digitribe.fr`)" - "traefik.http.routers.geojson-proxy.entrypoints=websecure" - "traefik.http.routers.geojson-proxy.tls.certresolver=letsencrypt" - "traefik.http.services.geojson-proxy.loadbalancer.server.port=8080" restart: unless-stopped # IoT Agent BunkerM - traduce les msgs MQTT bunker/bunker vers Orion-LD iot-agent-bunkerm: image: fiware/iotagent-json:latest container_name: smart-city-iot-agent-bunkerm networks: - smartcity-shared ports: - "4043:4041" environment: - IOTA_CB_HOST=smart-city-orion-ld - IOTA_CB_PORT=1026 - IOTA_CB_NGSI_VERSION=v2 - IOTA_REGISTRY_TYPE=memory - IOTA_DEFAULT_APIKEY=smartcity-api-key - IOTA_MQTT_USERNAME=bunker - IOTA_MQTT_PASSWORD=bunker - IOTA_MQTT_HOST=bunkerm_bunkerm_1 - IOTA_MQTT_PORT=1900 - IOTA_LOG_LEVEL=DEBUG restart: unless-stopped # InfluxDB (defined in docker-compose.influxdb.yml) # Run with: docker compose -f docker-compose.yml -f docker-compose.influxdb.yml up -d # Grafana (defined in docker-compose.grafana.yml) # Run with: docker compose -f docker-compose.yml -f docker-compose.grafana.yml up -d # Pulsar (defined in pulsar/docker-compose.yml) # Run with: docker compose -f docker-compose.yml -f pulsar/docker-compose.yml up -d # Redpanda (defined in redpanda/docker-compose.yml) # Run with: docker compose -f docker-compose.yml -f redpanda/docker-compose.yml up -d