🇬🇧 Read in English · 📋 Changelog · 📚 Dokumentation
© 2026 Sven Krische · Lizenz: PolyForm Noncommercial 1.0.0 · AUTHORS · NOTICE Original-Entwurf, Architektur und Implementierung von Sven Krische (@KnevS).
Car Usability Management — selbst gehostet, keine Cloud, keine Drittparteien. Von GPS-Track und Fahrtenbuch über Routenplanung mit Ladeplanung bis zur Betriebsbuchführung: alle Fahrzeugdaten bleiben auf deinem eigenen Server.
Läuft auf: Linux-Server (x86_64), Raspberry Pi 3/4/5 (ARM64/ARMv7), lokale Entwicklung.
| Bereich | Beschreibung |
|---|---|
| Dashboard | Gesamtstatistiken, letzte Fahrt, monatliches Kilometerdiagramm |
| Fahrten | GPS-Track auf Karte, Verbrauch, Geschwindigkeit, SoC-Verlauf |
| Laden | Ladesessions mit Kosten, GPS-basierter Ladeort-Zuordnung, kostenlose Ladungen markierbar |
| Ladeorte | Definierbare Standorte mit GPS-Radius, Preis/kWh, Auto-Erkennung |
| Batterie | Degradations-Tracking, Reichweiten-Verlauf über Zeit |
| Technik | Live-Telemetrie: TPMS, Leistungsfluss, Klimaanlage, Ladestatus; Fake-Daten für Demo-Fahrzeuge |
| Routenplaner | Interaktiver Routenplaner mit SoC-aware Ladeplanung: automatische Ladestopps inkl. Ladezeit-Schätzung; Abfahrts-SoC (live oder manuell), Ziel-SoC und Ladeziel konfigurierbar; Wetter (Open-Meteo), Verkehr (HERE Maps), Blitzer (OpenStreetMap) entlang der Route; Kartendarstellung mit Tile-Proxy |
| Steuerung | Fahrzeugbefehle: Klima, Climate-Keeper (Hund/Camp), Sitzheizung (5 Plätze × 4 Stufen), Lenkradheizung, Türen, Frunk/Heckklappe, Fenster, Sentry-Mode, Laden inkl. Ampere-Slider und Ladeklappe, Vorklim-Zeitplan, Boombox, Software-Update, Navigation (Virtual Key erforderlich) |
| Fahrtenbuch | Finanzamt-konform nach BMF-Schreiben: Klassifikation, Geschäftspartner, Reisezweck, Kilometerstände, lückenlose Nummerierung im PDF, Lock nach Export, manuelle Nachträge, Trip-Merge/Split |
| Abrechnung | Heimladen-Sessions & Monta-Integration für alle Fahrzeuge; Kostenabrechnung (PDF, Erstattungsvorlage) für Dienstwagen |
| Betriebsbuch | Wartungen, Reparaturen, Reifen, Inspektionen mit Kosten |
| Export | CSV/JSON-Export für Fahrten & Laden, Vollbackup |
| Wartungsintervalle | Pro Fahrzeug konfigurierbare Service-Aufgaben (TÜV, Reifen, Bremsflüssigkeit, …) mit Zeit- und km-Intervall + tägliche Push-Erinnerung |
| Audit-Log | Admin-Viewer für sicherheitsrelevante Ereignisse mit Filter und CSV-Export (DSGVO-konform) |
| Dynamischer Stromtarif | aWattar (DE/AT) und Tibber-Integration: 24h-Preiskurve im Dashboard, Auto-Set des günstigsten 4h-Lade-Fensters |
| PDF-Abrechnung | Unterschriftsreife PDF für Heimladen-Erstattung (clientseitig, keine Cloud) |
| Benachrichtigungen | Web Push bei Ladeende, plus Wartungserinnerungen |
| Benutzerhandbuch | Vollständige Anleitung direkt in der App lesbar |
| Design & Themes | 5 Design-Stile (Glass, Cyber, Minimal, Sport, Nevs-Edition) + 6 Akzentfarben, alles lokal gespeichert; Nevs-Edition mit eigener Bricolage-Grotesque-Typographie und Live-Status-Streifen |
| Einstellungen | Alle Sektionen per Klick ein-/ausklappbar (SortableSection), Reihenfolge persönlich sortierbar |
| Navigation | Individuell sortierbare und ein-/ausblendbare Navigationspunkte |
| Mobile / Tesla | Installierbare PWA für iPhone/iPad (Safari), Android, Tesla-Fahrzeug-Browser und Desktop. iOS-style Tab Bar am unteren Bildschirmrand (4 Schnell-Tabs + „Mehr"-Bottom-Sheet). Kompakte Karten-Ansicht im Fahrtenbuch für schmale Bildschirme. |
| CO₂-Vergleich | Tesla-CO₂ vs. Diesel-Äquivalent, eingesparte Tonnen, Strommix-Faktor (0,38 kg/kWh DE) — pro Woche im Energiebericht |
| Wetter-Verbrauch | Verbrauchskorrelation nach Temperatur-Bucket (< −10 °C bis > 30 °C) im Energiebericht — sieht wie Kälte/Hitze den Verbrauch beeinflusst |
| Klimastatistiken | Tägliche Klimaanlage-Nutzung (Stunden), Sitzheizung, Vorklimatisierungen, kältester/wärmster Tag |
| Firmware-Tracker | Automatisches Aufzeichnen jeder neuen Fahrzeug-Softwareversion mit Verlauf und Installationsdauer |
| Community Benchmark | Opt-in anonymer Verbrauchsvergleich mit anderen Fahrern desselben Modells; k-Anonymität, SHA-256-Hash, DSGVO-konform |
| System-Status | Ampel-Karte (Tesla-Token, Virtual Key, Fleet Telemetry, Poller, DB) — grün/gelb/rot auf einen Blick |
| Aktivitäts-Heatmap | Kalender-Heatmap aller Fahrten (Jahr/Monat/Woche/Alle) im Fahrtenbuch, Klick führt zur Fahrtenliste des Tages |
| Mandanten-Pseudonym | Datenschutz: Login-Seite zeigt zufälligen adjective-noun-Pseudonym statt Klarnamen, vom Admin neu generierbar |
| Fleet Telemetry primär | WebSocket-Streaming als bevorzugte Datenquelle (Tesla-Approval-pflichtig). Wenn aktiv → Poller schaltet auf 1×/h-Heartbeat, spart >95 % API-Budget. Sonst API-Polling als Fallback |
| Encryption at rest | AES-256-GCM für Tesla-OAuth-Tokens, TOTP MFA-Secret, Virtual-Key Private-Key. Hash + timing-safe Compare für Password-Reset-Tokens. Auto-generierter Key in data/.encryption-key |
| Auto-Update PWA | Service-Worker erkennt Deploys und reloaded automatisch — kein Strg+Shift+R mehr nötig, auch iOS-PWA |
![]() |
![]() |
![]() |
| Dashboard | Fahrten | Laden |
![]() |
![]() |
![]() |
| Routenplaner | Ladeplanung (Stuttgart → Berlin) | Fahrzeugsteuerung |
![]() |
![]() |
![]() |
| Fahrtenbuch | Dienstwagen-Modus | Einstellungen |
📸 Alle Screenshots in der Wiki →
Seit v2.0 unterstützt Tesla Carview mehrere Mandanten mit vollständiger Datenisolierung:
- Jeder Mandant hat seine eigene SQLite-Datenbank
- Neue Mandanten nur per Einladungslink mit optionaler Notiz (Admin → Benutzer → Einladungslink erstellen, 7 Tage, einmalig); Einladungen lassen sich erneut ausstellen, sperren oder löschen
- Mehrere Fahrzeuge pro Mandant: Sync über Einstellungen → 🔄 Fahrzeuge synchronisieren
- Benutzerverwaltung pro Mandant (Rollen, Fahrzeugzuweisung, Sperren) mit feingranularen Permissions:
Fahrzeuge bearbeiten,Fahrzeuge anlegen,MFA-Pflichtpro Benutzer - Erzwungene MFA für neue Konten — Router-Guard leitet zur TOTP-Einrichtung um, bis MFA aktiv ist
- Admin-Aufgabenkarte zeigt aktive Benutzer ohne zugewiesenes Fahrzeug mit Direkt-Aktionen
- Eintrag-Ersteller im Betriebsbuch wird automatisch mitgeführt und angezeigt
- Passkey-Authentifizierung (Touch ID, Face ID, Windows Hello, FIDO2)
- Passwort-Reset via Admin-generiertem Link
- Heim-Wallbox-Erkennung über Monta (Charge-Point-ID-Match → 🏠-Marker in Lade-Liste und Abrechnung)
- Kostenlose Ladungen: in der Ladehistorie markierbar, werden aus der Abrechnung ausgeschlossen
- Versionsbump auf Legal-Seiten schreibt automatisch das aktuelle Datum in die „Stand:"-Zeile, bevor versioniert wird
# Als root auf dem Zielgerät:
curl -fsSL https://raw.githubusercontent.com/KnevS/Tesla-Carview/main/deploy/setup.sh | bashDas Script erkennt automatisch die Architektur (x86_64, ARM64, ARMv7) und installiert alles.
git clone https://github.com/KnevS/Tesla-Carview.git
cd Tesla-Carview
# Backend
cd backend
cp .env.example .env
# .env anpassen (JWT_SECRET ist Pflicht!)
npm install && npm run dev
# Frontend (zweites Terminal)
cd frontend && npm install && npm run dev→ Browser öffnen: http://localhost:5173 → Beim ersten Start automatisch zum Setup-Wizard weitergeleitet
bash deploy/setup-wizard.shInteraktiver Assistent für: Domain, Tesla-API-Zugangsdaten, E-Mail, Web-Push.
Beim ersten Start wird automatisch auf /setup weitergeleitet. Dort kannst du im Browser Mandantenname und Administrator-Account anlegen.
Empfohlene Schritte nach dem Login:
- Tesla-Fahrzeug verbinden (Einstellungen → Tesla)
- Virtual Key am Fahrzeug registrieren (Einstellungen → Virtual Key)
- MFA aktivieren (Einstellungen → Zwei-Faktor-Authentifizierung)
- Ladeorte konfigurieren
Das Benutzerhandbuch ist direkt in der App unter /handbook verfügbar.
Für Fahrzeugbefehle (Klimaanlage, Türen, Hupen etc.) ist ein Virtual Key notwendig. Der Virtual Key erlaubt der App, signierte Befehle direkt ans Fahrzeug zu senden.
Voraussetzung: Ein laufender tesla-http-proxy auf dem Server.
# Proxy starten (Beispiel – Pfade anpassen):
tesla-http-proxy -port 4443 -host 0.0.0.0 \
-tls-key /etc/tesla-proxy/server.key \
-cert /etc/tesla-proxy/server.crt \
-key-file /etc/tesla-proxy/tesla_priv.pemDer öffentliche Schlüssel muss unter /.well-known/appspecific/com.tesla.3p.public-key.pem
der App-Domain erreichbar sein, damit das Fahrzeug den Key verifizieren kann.
Tesla Carview unterstützt optionale Synchronisation mit Monta – einem EV-Lademanagement-Dienst. Die Integration steht für alle Fahrzeuge zur Verfügung:
- Privatfahrzeuge: Monta-Ladesessions werden in der Abrechnung als Heim-Ladung angezeigt (🏠-Badge, automatische Heimladerkennung).
- Dienstwagen: Zusätzlich vollständige Kostenabrechnung — Monatsübersicht, PDF-Erstattungsblatt, Abrechnungsvorlage für den Arbeitgeber.
Konfiguration pro Fahrzeug in den Einstellungen (Fahrzeugprofil → Heimladen):
- Monta Client ID + Client Secret (OAuth2, Partner API)
- Charge Point ID (filtert Sessions auf einen bestimmten Ladepunkt)
- Strompreis Wallbox (€/kWh, Abrechnungsgrundlage für Dienstwagen)
Die Synchronisation läuft manuell über Abrechnung → Monta Sync.
- JWT (Access-Token 15 min, Refresh-Token 7 Tage als httpOnly-Cookie)
- TOTP-MFA (Google Authenticator, Authy, 1Password etc.)
- Passkeys (WebAuthn, passwortloser Login)
- 10 Backup-Codes (bcrypt-gehasht, einmalig verwendbar)
- Account-Lockout nach 5 Fehlversuchen (15 min)
- fail2ban IP-Sperre nach 3 fehlgeschlagenen Logins (10 min)
- HTTPS mit TLS 1.2/1.3, HSTS, OCSP-Stapling
- CSP, X-Frame-Options, Permissions-Policy Header
- Rate-Limiting auf Login- und API-Endpunkten
- Audit-Log aller sicherheitsrelevanten Aktionen
- Datenlöschung mit Backup-Warnung und Bestätigungstext
| Schicht | Technologie |
|---|---|
| Frontend | Vue 3 + Vite + Pinia + Tailwind CSS + Chart.js + Leaflet |
| Backend | Node.js 20 + Express + SQLite (better-sqlite3) |
| Auth | JWT + bcrypt + TOTP (otpauth) + WebAuthn (@simplewebauthn) |
| Tesla-Daten | Tesla Fleet API (OAuth2) + Fleet Telemetry (WebSocket) |
| Multi-Tenancy | Separate SQLite-Datenbanken pro Mandant, Master-DB für globale Daten |
| Deployment | Docker Compose + Nginx + Let's Encrypt |
| Plattformen | linux/amd64 · linux/arm64 · linux/arm/v7 |
tesla-carview/
├── backend/
│ ├── src/
│ │ ├── db/ # Schema + DB-Initialisierung (master-schema.sql)
│ │ ├── middleware/ # auth.js (multi-tenant JWT), security.js, validate.js
│ │ ├── routes/ # auth, setup, register, passkey, password-reset,
│ │ │ # users, vehicles, trips, charging, data-management, …
│ │ └── services/ # teslaApi, poller (multi-tenant), dataSync (GPS), …
│ └── .env.example # Konfigurationsvorlage
├── frontend/
│ └── src/
│ ├── views/ # Login, Register, Setup, Dashboard, Trips,
│ │ # Settings (Passkey), UserManagement, DataManagement,
│ │ # Handbook, PasswordReset, …
│ ├── components/ # NavBar (Admin-Links, Handbuch), StatCard
│ ├── store/ # auth.js (Passkey, Mandant), index.js
│ └── router/ # Routen mit Admin-Guard
├── deploy/
│ ├── setup.sh # Vollautomatisches Server-Setup
│ ├── setup-wizard.sh # Interaktiver Konfigurations-Assistent
│ ├── nginx-host.conf.template # Nginx-Config (HTTPS, TLS-Hardening)
│ └── update.sh # Zero-Downtime-Update
├── docs/ # Detaillierte Anleitungen
├── docker-compose.yml # Entwicklung
└── docker-compose.prod.yml # Produktion
| Variable | Beschreibung | Beispiel |
|---|---|---|
JWT_SECRET |
Geheimer Schlüssel für JWT (mind. 32 Zeichen, zufällig) | openssl rand -hex 32 |
TESLA_CLIENT_ID |
Tesla Developer App Client-ID | abc123… |
TESLA_CLIENT_SECRET |
Tesla Developer App Secret | secret… |
FRONTEND_URL |
Öffentliche URL der App (für OAuth-Callback + Passkeys) | https://carview.example.com |
RP_NAME |
Anzeigename für Passkey-Dialoge | Tesla Carview |
RP_ID |
Domain für WebAuthn (ohne Protokoll) | carview.example.com |
Tesla Carview hat zwei getrennte Dokumentations-Ebenen:
In-App-Handbuch unter /handbook in der laufenden App — oder direkt in frontend/src/handbook/handbook.de.md (deutsch) bzw. handbook.en.md lesbar. Themen: Dashboard, Fahrten, Laden, Fahrtenbuch (BMF), Steuerung, Wartungsintervalle, Demo-Modus, mobile Installation, Fehlerbehebung aus User-Sicht.
Technische Dokumentation im docs/-Ordner:
| Dokument | Inhalt |
|---|---|
| 📚 Doku-Übersicht | Wegweiser durch alle Tech-Dokumente |
| Quickstart | Lokale Entwicklungsumgebung |
| Deployment | Server-Deployment + Raspberry Pi |
| Authentifizierung & MFA | Login-System, MFA, Passkeys |
| Tesla Fleet API | Tesla Developer Account einrichten |
| Sicherheitsarchitektur | Threat-Model, alle Maßnahmen |
| fail2ban | Brute-Force-Schutz konfigurieren |
| Setup-Wizard | Interaktiver Konfigurations-Assistent |
| Dokploy-Deployment | Alternative Deployment-Plattform |
| Tesla-API-Quota | API-Kosten und Tracking |
| 🔧 Konfiguration (ENV) | Alle Umgebungsvariablen — Pflicht, Optional, Demo, Auto-Update |
| 🛠 Betrieb & Operationen | Backup/Restore, nächtliche Wartung, Demo-Modus, Auto-Update, Logs |
| 🛡️ Hochverfügbarkeit (HA) | Architektur-Optionen für SLA-kritische Setups (Teaser, auf Anfrage) |
bash deploy/update.shBeiträge sind willkommen! Lies zuerst die Contribution Guidelines, dann such dir ein good first issue aus oder öffne direkt einen Pull Request.
PolyForm Noncommercial 1.0.0 — nicht-kommerzielle Software-Lizenz von polyformproject.org.
Erlaubt: Privatnutzung, Self-Hosting (auch für Familie/Haushalt), Modifikationen, kostenlose Weitergabe unter denselben Bedingungen, Nutzung durch gemeinnützige Organisationen, Bildungs- und Forschungseinrichtungen.
Verboten: Verkauf der Software, kostenpflichtiger Betrieb als Dienst (SaaS) für Dritte, kommerzielle Nutzung in jeglicher Form, Unterlizenzierung.
Bei Weitergabe muss der vollständige Lizenztext und der Copyright-Required Notice mitgeliefert werden. Software wird „wie sie ist" bereitgestellt, ohne Gewährleistung — Details siehe LICENSE.
Tesla Carview ist für die private, selbst gehostete Nutzung im eigenen Haushalt kostenlos und werbefrei (siehe LICENSE und PolyForm Noncommercial 1.0.0). Kommerzieller Verkauf, SaaS-Angebote für Dritte oder die Einbettung in kommerzielle Produkte sind nicht gestattet.
Wenn dir das Programm etwas wert ist, freuen sich folgende gemeinnützige Organisationen über deine direkte Unterstützung:
| Organisation | Beschreibung |
|---|---|
| Aktion Deutschland Hilft | Bündnis von Hilfsorganisationen für schnelle und wirkungsvolle Katastrophenhilfe weltweit |
| Lebenshilfe Rems-Murr | Unterstützung, Begleitung und Teilhabe für Menschen mit Behinderung im Rems-Murr-Kreis |
| Radio 7 Drachenkinder | Hilfe für schwer kranke Kinder in der Region – finanziert Therapien und Wünsche |
100 % deiner Spende geht direkt an die Einrichtung. Wir sehen weder den Betrag noch deine Daten.
In der App erreichbar über den ❤ Unterstützen-Link im Footer am unteren Seitenrand oder direkt unter /support.








