version: "3.9" services: influxdb: image: influxdb:2.7 restart: unless-stopped ports: - "${INFLUXDB_PORT}:8086" volumes: - influxdb_data:/var/lib/influxdb2 env_file: .env grafana: image: grafana/grafana:latest restart: unless-stopped ports: - "${GRAFANA_PORT}:3000" volumes: - grafana_data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning - ./grafana/dashboards:/var/lib/grafana/dashboards env_file: .env depends_on: [influxdb] nodered: image: nodered/node-red:latest restart: unless-stopped ports: - "${NODERED_PORT}:1880" volumes: - nodered_data:/data env_file: .env depends_on: [influxdb, mosquitto] mosquitto: image: eclipse-mosquitto:latest restart: unless-stopped ports: - "${MQTT_PORT}:1883" - "${MQTT_WS_PORT}:9001" volumes: - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf - ./mosquitto/passwd:/mosquitto/config/passwd - mosquitto_data:/mosquitto/data - mosquitto_log:/mosquitto/log influxdb-backup: image: influxdb:2.7 depends_on: [influxdb] entrypoint: /bin/sh command: -c "while true; do sleep 86400; influx backup /backups -t ${DOCKER_INFLUXDB_INIT_ADMIN_TOKEN} -o ${DOCKER_INFLUXDB_INIT_ORG}; done" volumes: - influxdb_backups:/backups volumes: influxdb_data: grafana_data: nodered_data: mosquitto_data: mosquitto_log: influxdb_backups: