TeslaMate
Data logger and dashboards for Tesla vehicles that keep trips, charges and battery data.
- Replaces
-
Paid vehicle data logging services, such as TeslaFi.
All open-source alternatives to TeslaFi
- Difficulty
-
Difficulty: Medium
4 services (1 database or broker: postgres), 5 volume mounts, no env values to set, no elevated host access. Heuristic score 5 of 11: medium.
- Stack
Elixir (language), PostgreSQL (database)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
AGPL-3.0(OSI-approved open source)Read from github.com/teslamate-org/teslamate/blob/9f4098e/LICENSE
- Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/teslamate-org/teslamate/blob/9f4098e/README.md, read on .
- Repository
GitHub stats
- Stars
- 9,157
- Forks
- 1,022
- Open issues and pull requests
- 67
- Last push
- 2026-10-21
- Latest release
- v4.3.0
- Released
- 2026-09-29
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.
Compose file
services:
teslamate:
image: teslamate/teslamate:latest
restart: always
environment:
- ENCRYPTION_KEY=secretkey #replace with a secure key to encrypt your Tesla API tokens
- DATABASE_USER=teslamate
- DATABASE_PASS=password #insert your secure database password!
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
- MQTT_HOST=mosquitto
ports:
- 4000:4000
volumes:
- ./import:/opt/app/import
cap_drop:
- all
database:
image: postgres:18-trixie
restart: always
environment:
- POSTGRES_USER=teslamate
- POSTGRES_PASSWORD=password #insert your secure database password!
- POSTGRES_DB=teslamate
volumes:
- teslamate-db:/var/lib/postgresql
grafana:
image: teslamate/grafana:latest
restart: always
environment:
- DATABASE_USER=teslamate
- DATABASE_PASS=password #insert your secure database password!
- DATABASE_NAME=teslamate
- DATABASE_HOST=database
ports:
- 3000:3000
volumes:
- teslamate-grafana-data:/var/lib/grafana
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
volumes:
teslamate-db:
teslamate-grafana-data:
mosquitto-conf:
mosquitto-data:
From the app's own repository: github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md.
Compose example from the project's own docs: teslamate-org/teslamate:website/docs/installation/docker.md.
Install
- Docker with the Compose plugin (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md#L26-L83)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the code block as docker-compose.yml (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md)
Use the compose file shown above.
- What the compose file check ran with (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md#L26-L83)
This compose file is copied unchanged from the code block in https://github.com/teslamate-org/teslamate/blob/9f4098eeb8460c7d56235dd8d3fe0afedcdf682b/website/docs/installation/docker.md#L26-L83. The block sits inside a list in the page, so the indent of its lines was removed, as the rendered page shows it. The check ran on that block alone. The Docker installation guide tells the reader to create a docker-compose.yml with this content.
- Start it (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md)
docker compose up -d - Open the app (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md)
Open http://localhost:4000. The compose file publishes host port 4000 for the teslamate service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: teslamate: teslamate/teslamate:latest, grafana: teslamate/grafana:latest. A later pull can get a different version. (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md, checked 2026-10-22)
- The compose file has placeholder values. Placeholder values: DATABASE_PASS is "password" (teslamate), POSTGRES_PASSWORD is "password" (database), DATABASE_PASS is "password" (grafana). (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 4000 (teslamate), 3000 (grafana). A port without a host address listens on all host network interfaces. (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md, checked 2026-10-22)
- The compose file mounts host folders. Host paths mounted into containers: ./import at /opt/app/import (teslamate). (github.com/teslamate-org/teslamate/blob/9f4098e/website/docs/installation/docker.md, checked 2026-10-22)
Signals
- Open issues and pull requests: 67
- Last push: 2026-10-21 (1 days before this page was built)
- Latest release: v4.3.0 on 2026-09-29 (23 days before this page was built)