No description
  • Python 99.6%
  • Dockerfile 0.4%
Find a file
Tobias Brunner 99f75f708e
fix(models): add validation to reject invalid GPS data from port scanners
Validates IMEI (numeric, 10-15 digits), coordinates (valid lat/lon ranges),
battery (0-100%), speed (non-negative), and course (0-360). Prevents
spurious Pushover alerts from garbage data sent by internet scanners.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:33:22 +01:00
.claude allow git commands 2026-01-21 17:21:37 +01:00
docs fix(h02): suppress repeated alarms from stuck SOS bit 2026-01-18 21:28:36 +01:00
src/gps_tracker fix(models): add validation to reject invalid GPS data from port scanners 2026-01-25 20:33:22 +01:00
.dockerignore chore: add .gitignore and .dockerignore 2026-01-11 12:36:02 +01:00
.env.example feat: add Pushover notifications for SOS/alarm events 2026-01-18 16:47:13 +01:00
.gitignore docs: add Zensical documentation site 2026-01-18 18:56:11 +01:00
CLAUDE.md docs: update CLAUDE.md for new structure 2026-01-11 12:23:56 +01:00
docker-compose.yml feat: log git SHA on startup for version tracking 2026-01-18 17:05:22 +01:00
Dockerfile feat: log git SHA on startup for version tracking 2026-01-18 17:05:22 +01:00
gps_dashboard.py initial commit 2026-01-10 15:31:20 +01:00
pyproject.toml docs: add Zensical documentation site 2026-01-18 18:56:11 +01:00
README.md docs: simplify README and point to Zensical docs 2026-01-18 20:17:45 +01:00
uv.lock docs: add Zensical documentation site 2026-01-18 18:56:11 +01:00
zensical.toml fix(docs): correct zensical navigation config syntax 2026-01-18 18:57:13 +01:00

GPS Tracker Server

A multi-protocol Python server for receiving and visualizing location data from GPS tracking devices. Supports MQTT publishing in OwnTracks format.

Supported Devices

Protocol Devices Default Port
GT06/Topin 365GPS G68, ZX303, ZX612, and similar 5023
H02/SinoTrack ST-904L, ST-901, and similar 5014

Features

  • Multi-protocol support (GT06, H02) in a single process
  • Decodes binary and ASCII GPS protocols
  • Stores locations in JSON Lines format
  • MQTT publishing in OwnTracks format
  • Battery status tracking
  • Alarm detection (SOS, power cut, vibration, geofence, overspeed, low battery)
  • Server-to-device commands (location request, set interval, restart, etc.)
  • LBS/WiFi positioning support
  • Pushover notifications for alarms
  • Single Docker container for all protocols

Quick Start

docker compose up -d --build
docker compose logs -f

Using UV (development)

uv sync
uv run gps-tracker -p gt06:5023 -p h02:5014

Documentation

Full documentation is available at the docs site:

# Preview documentation locally
uv run zensical serve

# Build documentation
uv run zensical build

Documentation Sections

Development

# Install dependencies
uv sync

# Run with debug logging
uv run gps-tracker -p gt06 -p h02 --debug

# Interactive mode (start server with console)
uv run gps-tracker -p gt06 -p h02 -i

# Connect to running server
uv run gps-tracker -C

Docker Build

docker build --build-arg GIT_SHA=$(git rev-parse --short HEAD) -t git.tbrnt.ch/tobru/g68-gps:latest .
docker push git.tbrnt.ch/tobru/g68-gps:latest

License

MIT - Use freely for personal and commercial projects.