Skip to content
zekhoi-labPublic

About

Self-hosted, multi-tenant GPS fleet tracking: GT06 trackers and phones (Traccar Client), live map, trips, alerts, reports, maintenance and drivers. Docker images for amd64/arm64, one-container option.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

355 Commits

Folders and files

Repository files navigation

Tracker

Self-hosted GPS fleet tracking for GT06 trackers and phones. Companies follow their vehicles on a live map, replay trips, get alerts, and keep services and drivers in order. One server hosts many organizations, each with its own people and roles.

Live map with vehicles moving, stopped and not yet reporting

Status: in active development. It is tested with simulated trackers, a load test up to 5,000 trackers, and end-to-end browser tests; expect changes before 1.0. Reports from real devices are very welcome.

Features

Tracking

  • Live map: positions arrive within about a second, with moving, stopped and offline status, heading and speed.
  • History: replay any day, with trips, stops and street addresses (with a geocoder).
  • Reports: summary, day by day, trips (with the driver), stops and alerts; CSV and Excel downloads, and scheduled report emails.
  • Works on phones: the web app is responsive and installable.

Alerts and notifications

  • Tracker alarms (SOS, power cut, vibration, low battery), speeding, entering or leaving zones, going offline, driving after hours, idling, ignition on and off.
  • Each person chooses what reaches them by email, browser push or Telegram; organizations can add Telegram groups.

Fleet operations

  • Services by distance, engine hours or date, with reminders; odometer and engine hours kept up to date from trips and ignition time.
  • Drivers with license expiry reminders, assigned to vehicles, shown on trips.
  • Remote engine stop and resume (trackers with a relay): admin only, refused while moving fast, audited.

Organizations and people

  • Many organizations on one server; admins, operators and viewers; two-step sign-in; an audit log of changes.
  • Vehicle groups, to limit people to their branch's or customer's vehicles.
  • A read-only public API with organization API keys, for customers' own systems (docs/public-api.md).
  • A platform console for whoever runs the server: organizations, tracker limits, suspension, and a read-only, audited support view.

Running it

  • One docker compose stack with automatic HTTPS; runs on a single cloud or office server.
  • Nightly backups to S3-compatible storage and point-in-time recovery; Prometheus, Grafana and alert rules; self-hosted map tiles if you want no outside map service.
History with trips and stops Tracker status and health On a phone
History replay of a day with two trips and a stop A tracker's page with status, health and engine control The live map on a phone

Supported devices

  • GT06-protocol trackers over TCP (port 5023), developed with the OneWay OW-G19 (a WanWay G19): positions, ignition, status reports, alarms and engine commands.
  • Concox GT06 4G firmware: 4G positions and alarms, and status reports with battery voltage.
  • Phones with the free Traccar Client app (Android, iOS), over the OsmAnd HTTP protocol.

Other GT06-family trackers often work; please open a Tracker model support issue with what you tried.

How it works

trackers ─TCP─▶ ingest (Go) ─▶ Redis stream ─┬─▶ Postgres (TimescaleDB, PostGIS)
phones ─HTTPS─▶                              └─▶ worker: alerts, notifications, trips, reports
browsers ◀─SSE─ API (Hono, Better Auth) ◀─ Redis pub/sub
  • ingest (Go) holds the tracker connections, decodes GT06 and writes positions in batches.
  • api (TypeScript) serves the web app's REST API, live updates over server-sent events, and the public API.
  • worker (TypeScript) raises alerts, sends notifications, computes trips, stops and daily statistics, and emails scheduled reports.
  • web (React, MapLibre) is the dashboard.

Install on a server

On a fresh Ubuntu 22.04 or 24.04 server (any VPS), one command:

curl -fsSL https://github.com/zekhoi/tracker/releases/latest/download/install.sh | sudo bash

It prints the address and a setup code: open it and create your account. Add a domain with HTTPS later with deploy/cloud/domain.sh. Details: docs/deployment.md.

Try it with Docker

One container with everything (database included), like Traccar's image:

docker run -d --name tracker --restart unless-stopped \
  -p 8080:80 -p 5023:5023 -v tracker:/data \
  ghcr.io/zekhoi/tracker/all-in-one

Open http://localhost:8080 (from another computer, add -e PUBLIC_URL=http://<its address>:8080) and create the first account with the setup code from the log (docker logs tracker | grep 'setup code'). Trackers connect to port 5023. The all-in-one image is for trying Tracker out; for real use, deploy it with the compose stack, which adds backups and monitoring.

Develop locally

You need Node 22 or newer, pnpm 12, Go 1.26 or newer, and Docker.

pnpm install
docker compose up -d                          # Postgres, Redis, Mailpit (http://localhost:8025)
pnpm moon run db:migrate
pnpm moon run ingest:dev api:dev worker:dev web:dev   # http://localhost:5173

Sign up, create an organization, add a tracker with any 15-digit IMEI under Trackers, then drive it with the simulator:

pnpm moon run gt06-sim:run -- -addr localhost:5023 -imei <that IMEI> -interval 5s

Deploying

Start with deploy/README.md. docs/deployment.md compares a cloud server with your own and sizes the server; docs/operations.md covers settings, trackers, updates, backups and monitoring; docs/privacy.md covers tracking people responsibly.

Contributing

Contributions are welcome: see CONTRIBUTING.md and the Code of Conduct. AGENTS.md describes the layout, commands and conventions. Please report security problems privately: SECURITY.md.

License

Apache License 2.0. See NOTICE for third-party credits. Map data © OpenStreetMap contributors.

About

Self-hosted, multi-tenant GPS fleet tracking: GT06 trackers and phones (Traccar Client), live map, trips, alerts, reports, maintenance and drivers. Docker images for amd64/arm64, one-container option.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages