/ projects

Introducing Orion: A Powerful Substitute for OwnTracks Recorder

Orion is a powerful, OwnTracks API-compliant GPS location data collector and visualization suite.

The Orion platform is separated into independent backend and frontend components:

  • orion-server exposes HTTP APIs for database-backed CRUD operations on GPS data shipped by OwnTracks mobile clients
  • orion-web provides a fast, interactive, React-based data visualization frontend for the web, powered by deck.gl

Demo

Check out the live demo. Note that the demo instance only showcases the web visualization client, and uses sample static location data.

Screenshots

Dots

Path

Heatmap

Dots

Path

Architecture

Orion architecture

orion-server is a simple, data collection and query engine with an HTTP interface compatible with the OwnTracks JSON payload. It sits at the receiving end of all OwnTracks mobile clients and persists location data as rows in a SQL database. It also provides APIs for arbitrary clients to query the persisted location data.

orion-web is a powerful visualization tool that acts as one such client of orion-server. It queries saved GPS coordinates from the server and displays it interactively on a map provided by Mapbox.

Motivation and OwnTracks Recorder

The OwnTracks Recorder is the open source, first-party server and web visualization platform that ships with OwnTracks. There are, in my opinion, a few shortcomings:

  • It is needlessly difficult to compile, install, and set up
  • The documentation for installation and usage is sparse and difficult to follow
  • The expected use of an MQTT message broker is overkill for small-scale deployments with a single (or relatively few) users
  • Data is persisted as files on disk, which is inconvenient to index and query programmatically
  • The included location visualization frontend is non-intuitive and provides minimal control over the displayed data

Orion attempts to provide a drop-in alternative to the OwnTracks Recorder to solve these problems.

  • Orion is written in high-level languages that make it easy to deploy into your existing infrastructure, with the option of a completely automated Docker deployment
  • It is designed for small-scale deployments, and thus only supports simple HTTP-based location reporting
  • Data is persisted to an indexed SQL database
  • It ships with a fast, robust, and fully-featured UI built with React, Redux, and deck.gl

Installation and Deployment

Ready to deploy your own instance? Please refer to the Github repositories for the server and web client for full installation instruments.

In general, your server will need a Python and Node stack, as well as a MySQL database (alternatives available), for deploying the backend and frontend, respectively.