services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=AA103626bb!
      - DATABASE_USER=teslamate
      - DATABASE_PASS=AA103626bb!
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000
    volumes:
      - /mnt/docker/home/teslamate/import:/opt/app/import
    cap_drop:
      - all
    networks:
      - teslamate
#      - pangolin-home

  database:
    image: postgres:18-trixie
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=AA103626bb!
      - POSTGRES_DB=teslamate
    volumes:
      - teslamate-db:/var/lib/postgresql
    networks:
      - teslamate

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=AA103626bb!
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3000:3000
    volumes:
      - teslamate-grafana-data:/var/lib/grafana
    networks:
      - teslamate
#      - pangolin-home

  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    command: mosquitto -c /mosquitto-no-auth.conf
    ports:
      - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data
    networks:
      - teslamate

secrets:
  password:
    external: true

networks:
  teslamate:
    external: true

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data: