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-serverexposes HTTP APIs for database-backed CRUD operations on GPS data shipped by OwnTracks mobile clients
orion-webprovides a fast, interactive, React-based data visualization frontend for the web, powered by deck.gl
Check out the live demo. Note that the demo instance only showcases the web visualization client, and uses sample static location data.
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
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.