version: "3.8" services: # API Gateway api-gateway: build: context: ./api-gateway dockerfile: Dockerfile container_name: api-gateway restart: unless-stopped ports: - "8000:8000" environment: - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard?authSource=admin - REDIS_URL=redis://redis:6379 - TOKEN_SERVICE_URL=http://token-service:8001 - SENSOR_SERVICE_URL=http://sensor-service:8007 - BATTERY_SERVICE_URL=http://battery-service:8002 - DEMAND_RESPONSE_SERVICE_URL=http://demand-response-service:8003 - P2P_TRADING_SERVICE_URL=http://p2p-trading-service:8004 - FORECASTING_SERVICE_URL=http://forecasting-service:8005 - IOT_CONTROL_SERVICE_URL=http://iot-control-service:8006 - DATA_INGESTION_SERVICE_URL=http://data-ingestion-service:8008 networks: - energy-network # Token Management Service # Battery Management Service # battery-service: # build: # context: ./battery-service # dockerfile: Dockerfile # container_name: battery-service # restart: unless-stopped # ports: # - "8002:8002" # environment: # - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard_batteries?authSource=admin # - REDIS_URL=redis://redis:6379 # networks: # - energy-network # Demand Response Service demand-response-service: build: context: ./demand-response-service dockerfile: Dockerfile container_name: demand-response-service restart: unless-stopped ports: - "8003:8003" environment: - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard_demand_response?authSource=admin - REDIS_URL=redis://redis:6379 - SENSOR_SERVICE_URL=http://sensor-service:8007 networks: - energy-network # P2P Trading Service # p2p-trading-service: # build: # context: ./p2p-trading-service # dockerfile: Dockerfile # container_name: p2p-trading-service # restart: unless-stopped # ports: # - "8004:8004" # environment: # - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard_p2p?authSource=admin # - REDIS_URL=redis://redis:6379 # networks: # - energy-network # Forecasting Service # forecasting-service: # build: # context: ./forecasting-service # dockerfile: Dockerfile # container_name: forecasting-service # restart: unless-stopped # ports: # - "8005:8005" # environment: # - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard_forecasting?authSource=admin # - REDIS_URL=redis://redis:6379 # networks: # - energy-network # IoT Control Service # iot-control-service: # build: # context: ./iot-control-service # dockerfile: Dockerfile # container_name: iot-control-service # restart: unless-stopped # ports: # - "8006:8006" # environment: # - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard_iot?authSource=admin # - REDIS_URL=redis://redis:6379 # - BATTERY_SERVICE_URL=http://battery-service:8002 # - DEMAND_RESPONSE_SERVICE_URL=http://demand-response-service:8003 # networks: # - energy-network data-ingestion-service: build: context: ./data-ingestion-service dockerfile: Dockerfile container_name: data-ingestion-service restart: unless-stopped ports: - "8008:8008" environment: - MONGO_URL=mongodb://admin:password123@mongodb:27017/ - FTP_SA4CPS_HOST=ftp.sa4cps.pt - FTP_SA4CPS_PORT=21 - FTP_SA4CPS_USERNAME=curvascarga@sa4cps.pt - FTP_SA4CPS_REMOTE_PATH=/SLGs/ - FTP_CHECK_INTERVAL=21600 - FTP_SKIP_INITIAL_SCAN=true networks: - energy-network # Sensor Management Service (Original Dashboard Functionality) sensor-service: build: context: ./sensor-service dockerfile: Dockerfile container_name: sensor-service restart: unless-stopped ports: - "8007:8007" environment: - MONGO_URL=mongodb://admin:password123@mongodb:27017/energy_dashboard_sensors?authSource=admin - REDIS_URL=redis://redis:6379 # - TOKEN_SERVICE_URL=http://token-service:8001 networks: - energy-network networks: energy-network: driver: bridge name: energy-network volumes: mongodb_data: name: energy-mongodb-data redis_data: name: energy-redis-data