Sign inSign up

gwillaert1983/tesla-dashcam-viewer

By gwillaert1983

β€’Updated 8 months ago

Tesla Dashboard camera viewer

Image
Content management system
Monitoring & observability
0

5.6K

gwillaert1983/tesla-dashcam-viewer repository overview

⁠Tesla Dashcam Viewer

A modern web application for viewing, organizing, and analyzing Tesla dashcam footage with TeslaMate integration.

Tesla Dashcam Viewer Docker Pulls License

⁠Supported Architectures

ArchitectureTag
x86-64 (amd64)latest, v1.4.0
arm64 (Synology, Raspberry Pi)latest, v1.4.0

Multi-arch images are published - Docker will automatically pull the correct image for your platform.

⁠Features

⁠Core Features
  • πŸ“Ή Multi-Camera Viewing - View front, back, left, and right camera footage simultaneously
  • πŸ—ΊοΈ Interactive Map Integration - See clip locations on OpenStreetMap with marker clustering
  • ⭐ Favorites System - Mark important clips for quick access
  • πŸ—‘οΈ Trash/Soft Delete - Safely delete clips with recovery option
  • πŸ–ΌοΈ Automatic Thumbnails - FFmpeg-powered thumbnail generation for quick previews
  • πŸ” Advanced Filtering - Filter by type (Sentry, SavedClips, TeslaCam), date range, location
  • πŸ“… Date Range Selection - Select single dates or date ranges with calendar
  • πŸ“Š Statistics Dashboard - View clip counts, storage usage, and analytics
  • 🎨 Tesla-Inspired UI - Clean, modern interface with collapsible sidebar
⁠TeslaMate Integration (v1.1.0+)
  • πŸš— Multi-Car Support - Select and filter statistics by vehicle
  • πŸ”‹ Battery Health Tracking - Monitor battery degradation over time
  • ⚑ Charging Analytics - Track charging sessions, costs, and energy consumption
  • πŸ›£οΈ Drives Statistics - Analyze driving efficiency, distance, and patterns
  • πŸ“ˆ Charts & Graphs - Visualize your Tesla data with interactive charts
⁠Security & Authentication
  • πŸ” JWT Authentication - Secure login system with token-based auth
  • πŸ‘€ Admin Interface - Manage users and settings through web UI
  • πŸŒ™ Dark Mode - Full dark mode support throughout the application

⁠Quick Start

⁠Using Docker Compose
version: "3.8"

services:
  tesla-dashcam-viewer:
    image: gwillaert1983/tesla-dashcam-viewer:latest
    container_name: tesla-dashcam-viewer
    restart: unless-stopped
    ports:
      - "30551:8080"
    environment:
      # Required: Database connection
      - DATABASE_URL=postgresql://user:password@host:5432/tesla_viewer

      # Optional: TeslaMate integration (for statistics)
      - TESLAMATE_DATABASE_URL=postgresql://teslamate:password@host:5432/teslamate

      # Required: Security
      - SECRET_KEY=your-secret-key-here-minimum-32-characters
      - ADMIN_PASSWORD=YourSecureAdminPassword123!

      # Required: TeslaCam folder path
      - TESLACAM_PATH=/media/teslacam
    volumes:
      # Mount your Tesla dashcam footage (read-write for deletion support)
      - /path/to/your/tesla/footage:/media/teslacam:rw

      # Thumbnails storage (persisted)
      - thumbnails:/app/thumbnails
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"]
      interval: 30s
      timeout: 5s
      retries: 3

volumes:
  thumbnails:
⁠Using Portainer Stack
  1. Navigate to Stacks in Portainer
  2. Click Add Stack
  3. Paste the docker-compose.yml content above
  4. Update environment variables and volume paths
  5. Click Deploy the stack

⁠Configuration

⁠Environment Variables
VariableRequiredDefaultDescription
DATABASE_URLYes-PostgreSQL connection string for main database
TESLAMATE_DATABASE_URLNo-TeslaMate PostgreSQL connection (for statistics)
SECRET_KEYYes-JWT secret key (min 32 characters)
ADMIN_PASSWORDYes-Initial admin password
TESLACAM_PATHYes/media/teslacamPath to Tesla dashcam footage
⁠Database Setup
# Create database for Tesla Dashcam Viewer
createdb tesla_viewer

# Database URL format:
# postgresql://username:password@hostname:port/database
DATABASE_URL=postgresql://postgres:yourpassword@localhost:5432/tesla_viewer
⁠Option 2: Using Existing TeslaMate Database

If you already have TeslaMate running, you can share the database:

environment:
  - DATABASE_URL=postgresql://teslamate:[email protected]:5432/teslamate
  - TESLAMATE_DATABASE_URL=postgresql://teslamate:[email protected]:5432/teslamate

Note: This creates the app tables in the same database as TeslaMate (they won't conflict).

⁠Volume Mounts
  • TeslaCam Footage: Mount as :rw (read-write) to enable deletion functionality

    • Example: /volume1/TeslaCam:/media/teslacam:rw
    • Synology NAS: /volume1/Cloud/Sentry:/media/teslacam:rw
  • Thumbnails: Persistent volume for generated thumbnails

    • Named volume recommended: thumbnails:/app/thumbnails

⁠TeslaMate Integration

⁠Prerequisites
  1. Running TeslaMate instance - https://docs.teslamate.org/⁠
  2. PostgreSQL database access - Same database TeslaMate uses
  3. Database credentials - Username, password, host, port
⁠Configuration

Add the TeslaMate database URL to your environment:

environment:
  - TESLAMATE_DATABASE_URL=postgresql://teslamate:[email protected]:5432/teslamate
⁠Features Enabled

Once configured, the TeslaMate Stats page provides:

  • Multi-car selection - Dropdown to filter by vehicle (like Grafana)
  • Overview tab - Total drives, charging sessions, distance, energy
  • Charging tab - Charging summary, recent sessions, costs
  • Battery tab - Battery health trends over time
  • Drives tab - Drive statistics, efficiency, recent trips

⁠Screenshots

[Note: Add screenshots to Docker Hub via the web interface]

⁠Main Dashboard

View all your Tesla dashcam clips with thumbnails and metadata.

⁠Multi-Camera Viewer

Watch footage from all four cameras simultaneously with synchronized playback.

⁠TeslaMate Statistics

Analyze your Tesla's battery health, charging patterns, and driving efficiency.

⁠Interactive Map

See where each clip was recorded on an interactive map.

⁠Network Ports

  • 8080 - Web interface (map to your preferred external port)

⁠Health Check

The container includes a built-in health check at /health:

curl http://localhost:8080/health

⁠Storage Considerations

⁠Thumbnails
  • Generated on-demand using FFmpeg
  • Cached in /app/thumbnails volume
  • Approximately 50-100KB per clip
  • Recommend: 1-5GB for thumbnail volume
⁠Database
  • Main app tables: ~10-50MB (depends on clip count)
  • Indexes created automatically
  • Regular PostgreSQL maintenance recommended

⁠Troubleshooting

⁠Container won't start
  1. Check database connectivity: psql $DATABASE_URL
  2. Verify SECRET_KEY is at least 32 characters
  3. Check volume mount permissions
  4. Review logs: docker logs tesla-dashcam-viewer
⁠TeslaMate stats not showing
  1. Verify TESLAMATE_DATABASE_URL is correct
  2. Check TeslaMate database has data: SELECT COUNT(*) FROM drives;
  3. Ensure database user has SELECT permissions on TeslaMate tables
⁠Clips not deleting
  1. Verify volume mounted as :rw (not :ro)
  2. Check file system permissions
  3. Review scanner logs for errors
⁠Thumbnails not generating
  1. FFmpeg is included in the image (no action needed)
  2. Check /app/thumbnails volume is writable
  3. Verify video files are valid MP4 format

⁠Version History

See CHANGELOG.md⁠ for detailed version history.

⁠Latest Stable: v1.4.0 (2026-02-01)
  • Tesla-inspired UI with collapsible sidebar
  • Date range selection with calendar
  • Interactive map with marker clustering
  • Multi-architecture Docker images (amd64 + arm64)
  • Profile dropdown with centered design
  • Donation support via Stripe
⁠v1.3.0 (2026-01-25)
  • Collapsible sidebar
  • Complete Tesla theme coverage
⁠v1.2.0 (2026-01-20)
  • Interactive map with OpenStreetMap
  • Clip location visualization
⁠v1.1.0 (2026-01-18)
  • Multi-car TeslaMate support
  • Improved trash functionality
  • UI enhancements

⁠Contributing

For issues, feature requests, or contributions, please contact:


Β© 2025 Gregory Willaert / Creative Digital Solutions Licensed under AGPL-3.0

Tag summary

Content type

Image

Digest

sha256:0b4146ff6…

Size

277.8 MB

Last updated

8 months ago

docker pull gwillaert1983/tesla-dashcam-viewer