services: << service_name >>: image: teslamate/teslamate:latest container_name: << service_name >> ports: - "<< port >>:4000" environment: - TZ=<< timezone >> - DATABASE_USER=teslamate - DATABASE_PASS=<< db_password >> - DATABASE_NAME=teslamate - DATABASE_HOST=<< service_name >>-db - MQTT_HOST=<< service_name >>-mosquitto - ENCRYPTION_KEY=<< encryption_key >> depends_on: - << service_name >>-db - << service_name >>-mosquitto restart: unless-stopped << service_name >>-db: image: postgres:16-alpine container_name: << service_name >>-db environment: - POSTGRES_USER=teslamate - POSTGRES_PASSWORD=<< db_password >> - POSTGRES_DB=teslamate volumes: - << service_name >>_pgdata:/var/lib/postgresql/data restart: unless-stopped << service_name >>-grafana: image: teslamate/grafana:latest container_name: << service_name >>-grafana ports: - "<< grafana_port >>:3000" environment: - DATABASE_USER=teslamate - DATABASE_PASS=<< db_password >> - DATABASE_NAME=teslamate - DATABASE_HOST=<< service_name >>-db volumes: - << service_name >>_grafana:/var/lib/grafana restart: unless-stopped << service_name >>-mosquitto: image: eclipse-mosquitto:2 container_name: << service_name >>-mosquitto command: mosquitto -c /mosquitto-no-auth.conf volumes: - << service_name >>_mqtt:/mosquitto/data restart: unless-stopped volumes: << service_name >>_pgdata: << service_name >>_grafana: << service_name >>_mqtt: