Repository navigation
Installation
🌐 Language: EN · DE · FR · ES · TR · EL
Time needed: ~30 minutes | Difficulty: Beginner-friendly
This guide walks you through a complete Tesla Carview installation from scratch.
Before touching any commands, make sure you have:
- A Linux server, VPS, or Raspberry Pi (see hardware options below)
- A domain name pointing to your server — OR plan to use DynDNS / Cloudflare Tunnel (→ Network Access)
- A Tesla Developer account (→ Tesla API Setup)
- SSH access to your server (or a keyboard + screen on the Pi)
Best for: personal use at home, low cost (~€60–120 total)
| Model | RAM | Recommended storage |
|---|---|---|
| Raspberry Pi 5 (recommended) | 4 GB or 8 GB | NVMe SSD via M.2 HAT+ |
| Raspberry Pi 4 | 4 GB | USB SSD |
| Raspberry Pi 3 | 1 GB | no longer supported ¹ |
¹ Raspberry Pi 3 and older (32-bit ARM) are no longer supported as of v3.51.0: Node.js ships no ARMv7 images from version 24 onwards.
⚠️ Important: Do not use an SD card for permanent operation. It will fail within months under Tesla Carview's write load. See Raspberry Pi Storage for a 20-minute fix.
Best for: 24/7 availability, no hardware to manage, easy setup
| Provider | Monthly cost | Notes |
|---|---|---|
| Hetzner CX22 | ~€4.35 | Recommended, very reliable |
| netcup VPS 1000 | ~€4.44 | German data centres |
| Contabo VPS S | ~€5.99 | Lots of storage |
A VPS has a fixed public IP address — no DynDNS setup needed.
Connect to your server via SSH (or open a terminal on the Pi):
ssh root@YOUR-SERVER-IPMake sure the system is up to date:
apt update && apt upgrade -yTesla Carview requires HTTPS (Tesla's API only works over secure connections). That means you need a domain with a valid SSL certificate.
I have a VPS with a fixed IP: → Go to your domain registrar and create an A record:
tesla.yourdomain.com → A → YOUR-VPS-IP
Wait 5–30 minutes for DNS to propagate, then continue.
I'm at home without a fixed IP: → See Network Access — set up DynDNS or Cloudflare Tunnel first, then come back here.
I have no domain at all:
→ Get a free subdomain at DuckDNS.org (e.g. my-tesla.duckdns.org) — it's free and works with Let's Encrypt.
This single command downloads and runs the interactive setup wizard:
curl -fsSL https://raw.githubusercontent.com/KnevS/Tesla-Carview/main/deploy/setup.sh | bashThe wizard asks you a series of questions:
| Question | What to enter |
|---|---|
| Domain name |
tesla.yourdomain.com or my-tesla.duckdns.org
|
| Admin username | Any name (e.g. your first name, admin) |
| Admin password | A strong password (min. 12 characters) |
| Tenant name | What to call your installation (e.g. "My Tesla") |
| Enable HTTPS | Yes (always — required for Tesla API) |
The script asks for the deployment mode before doing anything:
| Mode | When to use |
|---|---|
| 1 — Direct | Dedicated VM or VPS without an existing proxy — nginx + certbot are installed and configured automatically |
| 2 — Proxy | Already running nginx, Caddy, Traefik, or WireGuard+VPS setup — nginx installation is skipped entirely |
In Proxy mode, add this to your existing proxy config:
proxy_pass http://127.0.0.1:8080;
⚠️ In proxy mode you have to reproduce the rate limits yourself —setup.shcreates no nginx configuration in this mode. If they are missing or too tight, the app runs into HTTP 429: half-loaded pages that only a reload appears to fix.
Path Recommendation Why /api/auth/login10/min, burst 3 Brute-force protection /api/tiles/1200/min, burst 300 One map zoom loads 50–150 tiles at once /api/(rest)120/min, burst ≥ 60 One page change fires 15–26 requests The more specific path has to win — otherwise a single map zoom locks out the entire API. Templates:
deploy/nginx-host.conf.templateanddeploy/traefik-dynamic.example.yml.
The script then automatically (Direct mode):
- Installs Docker, nginx, certbot, fail2ban
- Gets a Let's Encrypt SSL certificate for your domain
- Configures nginx with security headers
- Starts all Docker containers
- Sets up the database
This takes 5–10 minutes.
Open your browser and go to https://tesla.yourdomain.com
You should see the Tesla Carview login page. Enter the admin username and password you set in Step 3.
💡 Tip: Check "Stay signed in (90 days)" on the login page so you don't have to type your password every time — especially useful when accessing from the Tesla browser.
After logging in, you'll see a setup prompt to connect your Tesla account. Follow the instructions in Tesla API Setup.
Your Tesla Carview installation is running. The app will start polling your vehicle's data automatically.
What to do next:
- Set up your vehicle → Dashboard → Add Vehicle
- Configure notifications → Settings → Push Notifications
- Invite family members → Admin → Users → Invite
- Set up a charging location → Settings → Charging Locations
Tesla Carview can update itself automatically. Enable it in the settings:
# In /opt/tesla-carview/backend/.env:
AUTO_UPDATE_ENABLED=trueOr update manually:
cd /opt/tesla-carview
git pull
docker compose -f docker-compose.prod.yml up -d --build"Permission denied" when running the script
→ Make sure you're running as root. Run sudo su first.
"Domain not found" during certbot
→ Your DNS hasn't propagated yet. Wait 10–30 minutes and try again. Check with: nslookup tesla.yourdomain.com
Containers won't start
→ Check logs: docker compose -f /opt/tesla-carview/docker-compose.prod.yml logs
More help → Troubleshooting | Open an Issue
The application runs entirely in Linux containers — Windows is only the host. With Docker Desktop in WSL2 mode the same stack starts. The setup script deploy/setup.sh does not work there (bash, apt, systemd, certbot); deploy\setup-windows.ps1 takes its place.
git clone https://github.com/KnevS/Tesla-Carview.git
cd Tesla-Carview
powershell -ExecutionPolicy Bypass -File .\deploy\setup-windows.ps1Two limitations, both measured: vehicle commands do not work (tesla-http-proxy needs a Linux bind mount and a fixed UID), and if you run the proxy anyway you must set TESLA_PROXY_BASE — under Docker Desktop host.docker.internal points at the host gateway instead of the proxy container. Everything read-only works fully.
Windows is not checked in CI. Full description: docs/02-deployment.en.md, section "Windows (Docker Desktop)".
🇬🇧 Home · Installation · Troubleshooting · License | 🇩🇪 Startseite · Installation · Fehlerbehebung | 🇫🇷 Accueil | 🇪🇸 Inicio | 🇹🇷 Ana Sayfa | 🇬🇷 Αρχική
GitHub Repository · Report an Issue
Tesla Carview — non-commercial, self-hosted Tesla data logger · © Sven Krische
🇬🇧 English
🚀 Getting Started
🌐 Network & Infrastructure
⚙️ Configuration
🔐 Security
📱 Reference
🇩🇪 Deutsch
🚀 Einstieg
🌐 Netzwerk & Infrastruktur
⚙️ Konfiguration
🔐 Sicherheit
📱 Referenz
🇫🇷 Français
🚀 Démarrage
🌐 Réseau & Infrastructure
⚙️ Configuration
🔐 Sécurité
📱 Référence
🇪🇸 Español
🚀 Primeros pasos
🌐 Red & Infraestructura
⚙️ Configuración
🔐 Seguridad
📱 Referencia
🇹🇷 Türkçe
🚀 Başlarken
🌐 Ağ & Altyapı
⚙️ Yapılandırma
🔐 Güvenlik
📱 Başvuru