A Flask service allowing you to share links with your Tesla ETAs on a map
Find a file
Florian Jensen 84bd4d944e
Some checks failed
Create and publish a Docker image / build-and-push-image (push) Has been cancelled
Merge pull request 'Update dependency setuptools to v82.0.1' (#34) from renovate/setuptools-82.x into master
Reviewed-on: #34
2026-03-10 07:03:02 +00:00
.github Merge pull request 'Update docker/setup-buildx-action action to v4' (#33) from renovate/docker-setup-buildx-action-4.x into master 2026-03-10 06:57:01 +00:00
backendproviders Added initial working implementation 2024-07-22 17:13:35 +00:00
docs Updating documentation and screenshots 2022-12-27 17:25:16 +01:00
interfaces Fixes as per comments in https://github.com/flosoft/TeslaETA/pull/35 2024-08-05 15:29:02 +02:00
migrations Basic support for multiple cars. 2024-08-05 23:10:02 +02:00
models Basic support for multiple cars. 2024-08-05 23:10:02 +02:00
static Undo tailwind changes 2025-09-21 21:38:41 +02:00
templates Fixing stats overview on OSRM. 2025-12-22 20:13:20 +01:00
.dockerignore README update 2022-08-08 01:35:16 +02:00
.env_sample Refined Multicar support 2025-01-04 22:10:12 +01:00
.gitignore Added initial factory 2024-07-22 08:20:56 +02:00
app.py Testing OSRM option 2025-12-22 20:06:53 +01:00
docker_init.sh Fixed wrong init command 2024-08-05 14:21:05 +00:00
Dockerfile Update python Docker tag to v3.14 2025-12-22 08:36:22 +00:00
README.md Refined Multicar support 2025-01-04 22:10:12 +01:00
renovate.json Add renovate.json 2025-12-18 00:01:09 +00:00
requirements.txt Merge pull request 'Update dependency setuptools to v82.0.1' (#34) from renovate/setuptools-82.x into master 2026-03-10 07:03:02 +00:00
tailwind.config.js Fixing linking of CSS 2022-12-22 17:06:53 +01:00

TeslaETA

About

A small Flask Service allowing you to share your ETA on a map based on your TeslaLogger or TeslaMateApi location.

Note

This is a very rough project at the moment. Currently there is only one user, "admin" with the password set via .env.

Current Features

  • all mobile responsive

Map View

  • Map view with routing based on MapBox.
  • Ability to create expiring links via a webpage
  • ETA, Distance and Chargestate update based on car state every 5 seconds

Admin Interface

  • Viewing active links
  • Ability to create new links by searching location on map or manual coordinate entry

Screenshots

Map UI Admin UI

Setup & running it

A more in depth guide on how to run it behind Traefik alongside TeslaLogger, can be found here.

.env file

Warning

Please note that the .env file changed between versions 0.3.7 and 0.5.0!

Copy the .env_sample to .env and configure the variables. This file will need to be in the folder of your docker-compose.yml or in the folder where you will run the script in.

Variable Example Required
PORT 5051 Y
DATA_DIR /data/ Y
SECRET_KEY RANDOMLY_GENERATED_HERE Y
ADMIN_PASSWORD PASSWORD_FOR_ADMIN_PAGE Y
BASE_URL /map Y
MAPBOX_TOKEN pk.BLA Y
DISABLE_AUTH False N
BACKEND_PROVIDER teslalogger OR teslamate Y
BACKEND_PROVIDER_BASE_URL http://insert-base-api-here:withport/
TeslaLogger Example: http://raspberry:5010/
Y
BACKEND_PROVIDER_CAR_ID 1 Y
BACKEND_PROVIDER_MULTICAR False OR JSON of allowed CarIDs and their Names (see .env_sample) N
TZ Europe/Berlin Y
  • ADMIN_PASSWORD variable is the password in plaintext for the user "admin"
  • MAPBOX_TOKEN will need to be generated here. A free Mapbox account is required.

Option 1 - Docker

docker-compose

The following docker-compose.yml file will store the database in ./data/. Make sure you created the folder or you've adjusted the file below.

version: '3'
services:
  teslaeta:
    container_name: teslaeta
    image: ghcr.io/flosoft/teslaeta:latest
    volumes:
    - ./data/:/data/
    env_file:
    - .env
    ports:
    - "5051:5051"

Option 2 - Runnig manually

You will need to install the python requirements, pip install -r requirements.txt Then you can simply run docker_init.sh.

Initial Login

Once the service is up and running, you'll be able to access it on BASEURL + /admin, for example /map/admin. Just log in with the username admin and the password which you sent in .env.