Own watcher (docker:28-cli + handler.sh): attaches traefik to every docker network labelled traefik.enable=true (daemon-side filter), 5-min periodic resync + traefik-restart healing. dawarich/teslamate back on private networks with the net label set.
170 lines
6.4 KiB
YAML
170 lines
6.4 KiB
YAML
networks:
|
|
teslamate:
|
|
labels:
|
|
- traefik.enable=true
|
|
|
|
services:
|
|
teslamate:
|
|
container_name: "teslamate"
|
|
image: teslamate/teslamate:4.3.0
|
|
restart: always
|
|
networks:
|
|
- teslamate
|
|
environment:
|
|
- "DATABASE_USER=teslamate"
|
|
- "DATABASE_NAME=teslamate"
|
|
- "DATABASE_HOST=postgresql17"
|
|
- "DATABASE_PASS=${DATABASE_PASS}"
|
|
- "DATABASE_PORT=5432"
|
|
- "MQTT_HOST=192.168.10.54"
|
|
- "MQTT_PASSWORD=${MQTT_PASSWORD}"
|
|
- "MQTT_TLS_ACCEPT_INVALID_CERTS=true"
|
|
- "MQTT_USERNAME=teslamate"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "MQTT_TLS=false"
|
|
- "MQTT_PORT=1883"
|
|
- "ENCRYPTION_KEY=${ENCRYPTION_KEY}"
|
|
ports:
|
|
- 4000:4000
|
|
volumes:
|
|
- ./import:/opt/app/import
|
|
cap_drop:
|
|
- ALL
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.teslamate.rule=Host(`teslamate.arnoutvw.nl`)
|
|
- traefik.http.services.teslamate.loadbalancer.server.port=4000
|
|
|
|
postgresql17:
|
|
container_name: "postgresql17"
|
|
image: postgres:17-alpine3.22
|
|
restart: always
|
|
networks:
|
|
- teslamate
|
|
environment:
|
|
- "HOST_CONTAINERNAME=postgresql17"
|
|
- "POSTGRES_USER=postgres"
|
|
- "POSTGRES_DB=postgres"
|
|
- "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}"
|
|
volumes:
|
|
- "/mnt/user/appdata/postgresql17:/var/lib/postgresql/data"
|
|
|
|
grafana:
|
|
container_name: "teslamate-grafana"
|
|
image: teslamate/grafana:4.3.0
|
|
restart: always
|
|
networks:
|
|
- teslamate
|
|
environment:
|
|
- "GF_AUTH_GENERIC_OAUTH_SCOPES=openid profile email"
|
|
- "GF_AUTH_GENERIC_OAUTH_TOKEN_URL=https://pass.arnoutvw.nl/api/oidc/token"
|
|
- "HOST_OS=Unraid"
|
|
- "DATABASE_USER=teslamate"
|
|
- "DATABASE_HOST=postgresql17"
|
|
- "GF_AUTH_GENERIC_OAUTH_NAME=PocketID"
|
|
- "GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP=true"
|
|
- "GF_AUTH_DISABLE_LOGIN_FORM=false"
|
|
- "GF_USERS_ALLOW_SIGN_UP=false"
|
|
- "GF_SERVER_DOMAIN=tesla.arnoutvw.nl"
|
|
- "TZ=Europe/Berlin"
|
|
- "DATABASE_NAME=teslamate"
|
|
- "GF_AUTH_GENERIC_OAUTH_ENABLED=true"
|
|
- "GF_AUTH_GENERIC_OAUTH_AUTO_LOGIN=false"
|
|
- "GF_AUTH_GENERIC_OAUTH_API_URL=https://pass.arnoutvw.nl/api/oidc/userinfo"
|
|
- "GF_USERS_AUTO_ASSIGN_ORG=true"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "DATABASE_PORT=5432"
|
|
- "GF_AUTH_GENERIC_OAUTH_AUTH_URL=https://pass.arnoutvw.nl/authorize"
|
|
- "GF_USERS_AUTO_ASSIGN_ORG_ROLE=Admin"
|
|
- "GF_SERVER_ROOT_URL=https://tesla.arnoutvw.nl/"
|
|
- "GF_ANALYTICS_REPORTING_ENABLED=false"
|
|
- "GF_AUTH_ANONYMOUS_ENABLED=false"
|
|
- "GF_AUTH_BASIC_ENABLED=false"
|
|
- "GF_SECURITY_ADMIN_PASSWORD=admin"
|
|
- "GF_SECURITY_ADMIN_USER=admin"
|
|
- "GF_UNIFIED_ALERTING_ENABLED=false"
|
|
- "DATABASE_SSL_MODE=disable"
|
|
ports:
|
|
- "3004:3000/tcp"
|
|
volumes:
|
|
- "/mnt/cache/appdata/teslamate-customdashboard/Teslamate-CustomGrafanaDashboards/customdashboards.yml:/etc/grafana/provisioning/dashboards/customdashboards.yml"
|
|
- "/mnt/cache/appdata/teslamate-customdashboard/Teslamate-CustomGrafanaDashboards/dashboards:/TeslamateCustomDashboards"
|
|
- "/mnt/user/appdata/telsamate-grafana:/var/lib/grafana"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.tesla.rule=Host(`tesla.arnoutvw.nl`)
|
|
- traefik.http.services.tesla.loadbalancer.server.port=3000
|
|
|
|
TeslaMate-ABRP:
|
|
container_name: "TeslaMate-ABRP"
|
|
environment:
|
|
- "MQTT_USERNAME=teslamate"
|
|
- "CAR_NUMBER=2"
|
|
- "TZ=Europe/Berlin"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "MQTT_SERVER=192.168.10.54"
|
|
- "USER_TOKEN=9de2d254-39c1-4842-879e-4b0d275d166b"
|
|
- "CAR_MODEL=tesla:my:23:my_lfp:rwd"
|
|
- "HOST_OS=Unraid"
|
|
- "HOST_CONTAINERNAME=TeslaMate-ABRP"
|
|
- "MQTT_PASSWORD=${MQTT_PASSWORD}"
|
|
|
|
image: "fetzu/teslamate-abrp:4.0.1"
|
|
|
|
labels:
|
|
org.opencontainers.image.created: "2025-04-29T20:05:43.419Z"
|
|
org.opencontainers.image.description: "A slightly convoluted way of getting your vehicle data from\
|
|
\ TeslaMate to A Better Route Planner."
|
|
org.opencontainers.image.licenses: "MIT"
|
|
org.opencontainers.image.revision: "fb366fd6d98beaaac949db2f951f9fcdd6331d58"
|
|
org.opencontainers.image.source: "https://github.com/fetzu/teslamate-abrp"
|
|
org.opencontainers.image.title: "teslamate-abrp"
|
|
org.opencontainers.image.url: "https://github.com/fetzu/teslamate-abrp"
|
|
org.opencontainers.image.vendor: "TeslaMate-ABRP"
|
|
org.opencontainers.image.version: "3.3.0"
|
|
network_mode: "bridge"
|
|
restart: "always"
|
|
teslamateapi:
|
|
container_name: "teslamateapi"
|
|
networks:
|
|
- teslamate
|
|
image: tobiasehlert/teslamateapi:1.25.0
|
|
restart: always
|
|
environment:
|
|
- "ENCRYPTION_KEY=${ENCRYPTION_KEY}"
|
|
- DATABASE_USER=teslamate
|
|
- "DATABASE_PASS=${DATABASE_PASS}"
|
|
- DATABASE_NAME=teslamate
|
|
- DATABASE_HOST=postgresql17
|
|
- "MQTT_HOST=192.168.10.54"
|
|
- "MQTT_PASSWORD=${MQTT_PASSWORD}"
|
|
- "MQTT_TLS_ACCEPT_INVALID_CERTS=true"
|
|
- "MQTT_USERNAME=teslamate"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "MQTT_TLS=false"
|
|
- "MQTT_PORT=1883"
|
|
- TZ=Europe/Berlin
|
|
- TESLAMATE_HOST=teslamate
|
|
- TESLAMATE_PORT=4000
|
|
- API_TOKEN=826d3b8b-daad-48c7-ad3b-8bdaade8c706
|
|
ports:
|
|
- 4001:8080
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.teslamateapi.rule=Host(`teslamateapi.arnoutvw.nl`)
|
|
- traefik.http.services.teslamateapi.loadbalancer.server.port=8080
|
|
- pangolin.proxy-resources.teslamateapi.name=teslamateapi
|
|
- pangolin.proxy-resources.teslamateapi.full-domain=teslamateapi.arnoutvw.nl
|
|
- pangolin.proxy-resources.teslamateapi.protocol=http
|
|
- pangolin.proxy-resources.teslamateapi.ssl=true
|
|
- pangolin.proxy-resources.teslamateapi.targets[0].method=http
|
|
- pangolin.proxy-resources.teslamateapi.targets[0].hostname=192.168.10.144
|
|
- pangolin.proxy-resources.teslamateapi.targets[0].port=4001
|
|
- pangolin.proxy-resources.teslamateapi.targets[0].healthcheck.hostname=192.168.10.144
|
|
- pangolin.proxy-resources.teslamateapi.targets[0].healthcheck.port=4001
|
|
- pangolin.proxy-resources.teslamateapi.targets[0].healthcheck.enabled=true
|
|
- pangolin.proxy-resources.teslamateapi.auth.sso-enabled=false
|
|
- pangolin.proxy-resources.teslamateapi.rules[0].match=ip
|
|
- pangolin.proxy-resources.teslamateapi.rules[0].action=allow
|
|
- pangolin.proxy-resources.teslamateapi.rules[0].value=172.21.0.1
|