MotoTracker — Multi-Device GPS Tracking Dashboard

Screenshots

MotoTracker web dashboard with Leaflet map and ride stats LilyGO T-SIM7000G ESP32 + SIM7000G module 3D-printed enclosure for the GPS tracker

A multi-device, multi-user GPS tracking platform built around the LilyGO T-SIM7000G — a compact board combining an ESP32 microcontroller with a SIM7000G cellular/GPS modem, an SD card slot, and an 18650 battery holder. The tracker sends GPS coordinates, speed, temperature, and battery voltage to a self-hosted server over 2G/NB-IoT/CAT-M cellular.

The MotoTracker web dashboard runs on a Raspberry Pi (Apache + PHP + MySQL) and aggregates GPS feeds from multiple sources in one UI: the on-board firmware, any Traccar-tracked device (phone, ST-901L, etc.) pulled from the Home Assistant Traccar add-on, or any other client that POSTs to the HTTP ingest endpoint. Each device is owned by a user, drawn in its own colour, and replayable on an interactive Leaflet map.

Operators get a full admin panel for user and device management, and every user gets a password-less read-only embed token that can be dropped into a Home Assistant iframe Lovelace card without forcing a login. Raw GPS fixes are road-snapped and gap-filled with OSRM for clean, map-aligned tracks.

Firmware Features (LilyGO T-SIM7000G)

Dashboard Features

Multi-User & Admin Panel

Home Assistant & Traccar Integration

On the production deployment, phones and OBD trackers send their positions to the Home Assistant Traccar add-on, and a pair of background workers running on the MotoTracker host pull and road-snap those positions into the MotoTracker database — every Traccar device gets a matching MotoTracker device the first time it is seen.

Read-Only Embed Tokens (HA Iframes)

Every user owns a read_api_key that can be passed to the dashboard via ?token=… or Authorization: Bearer …. In token mode the UI hides logout, the admin link, and the device-settings modal, and 401s do not redirect to the login page (which would loop inside an iframe). The token survives across browser sessions, works inside iframes that block third-party cookies, and can be revoked instantly from the admin panel — all without touching the user's password.

Mutating endpoints (device/update.php, device/delete_points.php, anything under admin/) bail out with 403 read_only_token. Even if the token belongs to an admin, its scope stays bounded to that user's read endpoints.

Technical Details

3D-Printed Case

Custom enclosure designed for the LilyGO T-SIM7000G board. Available on Thingiverse.

3D-printed GPS tracker enclosure — yellow, side view 3D-printed GPS tracker enclosure — yellow, top view 3D-printed GPS tracker enclosure — dark variant 3D-printed GPS tracker enclosure — blue variant 3D-printed GPS tracker enclosure — interior top view 3D-printed GPS tracker enclosure — interior bottom view 3D-printed power button cap

Source code: github.com/ArturKos/MotoTracker

Back to Portfolio