LiveTa Deployment guide
LIVETA / SELF HOSTED

Your vehicle data.
Connected to LiveTa.

Already using TeslaMate? Add LiveTa API, choose a connection, then scan with your phone.
Tailscale is recommended; existing HTTPS and Cloudflare are also supported.

TeslaMateRecords vehicle data→LiveTa APIRead-only API→Secure connectionTS / HTTPS / CF→LiveTa AppScan to connect
This is a self-hosted preview.

This guide accompanies setup package v1.3. Connections and pairing with existing services have been verified. First-time installation on a new host, Windows installation and networks in mainland China still require real-world validation. After starting the API with Compose, generate a pairing file separately or open the local assistant. Compose does not automatically open a built-in container pairing page.

01 / PREPARATION

Have you deployed TeslaMate?

LiveTa does not replace TeslaMate or ask for your Tesla password. TeslaMate handles vehicle authorization and recording. LiveTa API reads your own database and MQTT, and the iPhone app connects using a one-time pairing code.

Keep your TeslaMate setup. Add only LiveTa API. Configure the connector below, then scan to pair.

Continue to LiveTa API ↓
  • TeslaMate, PostgreSQL and MQTT are running, with recorded vehicle data.
  • You can administer the server and know its Docker network, database host, database name, username and password, and MQTT host settings.
  • Install Docker and Docker Compose 2.30.0 or later; Docker Desktop on Windows must use Linux containers.
  • Install the LiveTa build you received on your iPhone. Full Cloudflare pairing QR codes require App build 122 or later.

If LiveTa API is already running, skip the initial installation and check the connection before pairing. Do not remove another app’s API, existing containers or databases to connect LiveTa.

02 / INSTALL THE API

Add the API to your TeslaMate server.

Installing LiveTa API does not require Tailscale or Cloudflare. Those are optional connection methods in the next step. Both installation paths use the same setup package: Docker users can use Compose directly, while desktop users can open the optional assistant.

1

Download, extract and open the Connector folder

Extract the entire ZIP into a separate directory on your server. Do not upload only compose.yaml: the build also needs the included source files. On a NAS, upload the complete folder using its file manager, then use a container project or SSH terminal.

Download LiveTa API setup v1.6
Open the extracted directory
cd "LiveTa API/Connector"

This example starts from the parent of the extracted folder. Adjust the path to your extraction location.

2

Enter your existing Docker network and MQTT settings

Create this file in Connector: .env. These are example names from a common setup. Replace them with your existing TeslaMate configuration; they are not universal credentials or fixed passwords.

.env
TESLAMATE_NETWORK=teslamate_default
MQTT_HOST=mosquitto
MQTT_PORT=1883
MQTT_TOPIC_PREFIX=teslamate/cars

If MQTT authentication is enabled, add these to the file: MQTT_USERNAME, MQTT_PASSWORD; for TLS, set MQTT_TLS=1. Keep your existing authentication enabled.

3

Enter your existing database connection

Create the runtime folder, then create runtime/full-provider.env. Reuse the existing database connection. Do not reset the TeslaMate database password.

runtime/full-provider.env
PGHOST=database
PGPORT=5432
PGDATABASE=teslamate
PGUSER=teslamate
PGPASSWORD=REPLACE_WITH_EXISTING_DB_PASSWORD
PGOPTIONS=-c default_transaction_read_only=on

Use one entry per line in the form KEY=value, without shell quotes. Replace the example password with your real password, restrict file access and never upload it to the website, a repository or screenshots. LiveTa API enforces read-only TeslaMate queries; its own pairing state and cache are stored in a separate runtime directory.

4

Start the API and check its health

Start the service
docker compose up -d --build livelight-connector
Check the local health endpoint
docker compose exec -T livelight-connector python -c "import urllib.request; print(urllib.request.urlopen('http://127.0.0.1:8080/api/health').status)"

Expected response: 200. This checks basic API health, not vehicle data or remote connectivity. Complete the connection and phone tests below.

The API binds only to 127.0.0.1:8795 by default.

Entering your computer’s HTTP address on the phone will not work. Configure one of the HTTPS connections below. Do not expose the database, MQTT or Docker management interface to the internet.

03 / CONNECTION OPTIONS

Tailscale recommended. Two alternatives available.

Deploy the API first, then choose a connection.LiveTa API reads TeslaMate on your home server. Your phone connects using any one of the methods below. Installing the API does not mean you must install Tailscale, and you do not need to enable all three methods.

How to choose: Tailscale is recommended if you do not want to configure a domain; it must run on both phone and server. To install only LiveTa on your phone, choose Cloudflare Tunnel + Access: the Tunnel runs on the server and no Cloudflare phone client is needed. If you already have trusted HTTPS, reuse it. Every method still requires LiveTa phone pairing authentication.

Tailscale: put your phone and server on the same private network

  1. Install Tailscale on your phone and the server running the API. Sign in to the same tailnet and keep both connected.
  2. Enable MagicDNS and HTTPS in the Tailscale admin console. Tailscale Serve provides setup guidance when needed.
  3. If Tailscale runs on the server host, use the command below to serve the local API port over HTTPS.
Host Tailscale Serve
tailscale serve --bg --https=9443 http://127.0.0.1:8795

Use the full HTTPS address printed by the command, for example https://YOUR_DEVICE.YOUR_TAILNET.ts.net:9443. Do not substitute http://100.x.x.x; LiveTa accepts HTTPS only.

Reuse an existing Tailscale installation rather than adding duplicate nodes. The command above is for host-level Tailscale. If you use a separate Tailscale container managed by the pairing assistant, follow its installation, sign-in and HTTPS steps instead of mixing in host proxy commands.

Official Tailscale Serve documentation ↗ · Enable HTTPS ↗

04 / PAIR YOUR PHONE

Generate the QR code on your own server.

This website provides documentation and setup files only. It does not generate or store real pairing QR codes. You do not need to send anyone your Tesla password, database password or Access Secret.

Using the local assistant

  1. Open the assistant, choose your configured Tailscale, HTTPS or Cloudflare connection and check it.
  2. Click “Generate pairing QR code”. The code appears on the computer running the assistant.
  3. On your phone, open LiveTa → Settings → TeslaMate Connection → Scan pairing QR code.
  4. Verify the server address, tap Connect, choose your vehicle and open the overview.

Using the Compose command line (Tailscale / existing HTTPS)

Replace the example address below with your actual HTTPS address, already configured and verified as reachable.

Generate a local pairing file
docker compose exec -T livelight-connector python /app/connector.py pair --origin https://YOUR_DEVICE.YOUR_TAILNET.ts.net:9443 --output /data/pairing.html

Open this file in your computer’s browser: Connector/runtime/pairing.html. On a NAS, use your private file manager to download the file to your computer and open it there. Never upload it publicly. For Cloudflare, use the assistant to generate a full QR code; a standard QR code does not include Access credentials.

Pairing codes expire after 10 minutes and can be used once.

Generating a new code replaces an unused old code without disconnecting already paired phones. Cloudflare Access credentials have their own expiry; they do not expire automatically with the 10-minute pairing code.

Verify the connection

  • The overview’s “Last successful fetch” time keeps updating, rather than only showing old records.
  • Trip and charging details load, and the vehicle identity is correct.
  • For remote access, turn off phone Wi-Fi and test on cellular. In Tailscale mode, keep both ends connected. In Cloudflare mode, you can turn off Tailscale on the phone to test independently.

Updates, backups and migration

Back up your TeslaMate database, existing Compose configuration and LiveTa’s private runtime. Never include runtime in a public setup package: it may contain database connections, pairing state, cache and Access credentials.

Keep the previous setup package and backups before upgrading, and follow the release instructions. No official public multi-architecture image is currently published for all environments. Do not treat example or unknown image addresses as official downloads.

The API and Tunnel are separate containers. Do not use docker compose down -v for routine updates or delete the TeslaMate database to “fix” a connection. Moving servers involves new pairing; retain the old connection as a fallback before changing addresses.

Find which part of the connection is failing.

No new data, but old records are still visible

This may be local cache. Check the last successful fetch time, then check for new TeslaMate records, API database and MQTT settings, the HTTPS address and your network. Values on the overview alone do not prove the connection works.

Cannot connect with Tailscale turned off

This is usually expected for a saved Tailscale address: both phone and server need a Tailscale connection. Using Cloudflare in LiveTa does not change other apps’ addresses; they may still depend on their own Tailscale connection.

Pairing code expired or already used

Generate a new code and use it within 10 minutes. After scanning, verify the address, tap Connect and choose a vehicle. Do not repeatedly scan an old file or send real QR codes to public group chats.

Cloudflare access denied or credentials expired

Use the assistant to check the domain, Access policy and credentials. Anonymous requests being blocked means protection works. If valid credentials are also denied, check the Secret, expiry and allowed Token. Do not switch to Bypass to work around it.

503 errors, slow loading or a persistent spinner

Check whether all pages fail. Inspect running containers, basic API health, database and MQTT reachability, query range and service logs. In a support report, include the time, app version, connection method and redacted screenshots. Do not send keys, full location trails or database passwords.

Compose reports an unknown format setting

The configuration uses env_file raw format and requires Compose 2.30.0 or later. Upgrade Docker Compose or Docker Desktop and retry. Do not delete database environment settings to skip the error.

Are mainland China access, Lock Screen updates and notifications guaranteed?

No. Test each connection method on your actual network; stable access through every mainland carrier is not guaranteed. Notifications and background Lock Screen updates also depend on system permissions, scheduling and push configuration. Remote Lock Screen push is not connected yet; this guide does not indicate that it is enabled.

Keep control of your connection.

LiveTa is an independent TeslaMate client, not affiliated with Tesla or TeslaMate. Network, domain and photo services follow their respective arrangements. “Currently free” does not mean every feature will remain free forever.

Download setup v1.6 ↗