Repolode
owntracks

owntracks/recorder

A lightweight server that stores and serves location data published by the OwnTracks mobile apps via MQTT or HTTP, without an external database.

Stars
1,222
Forks
147
Open issues
12
Last commit
11 days ago

What is it?

OwnTracks Recorder subscribes to an MQTT broker or accepts HTTP POST requests carrying OwnTracks JSON messages, then writes the location data into plain files on disk. It serves that data through a built-in REST API and a WebSocket server, which powers a live map that updates as new positions arrive.

The companion command-line tool ocat reads the stored data directly and prints it as JSON, GeoJSON, CSV, GPX, XML and other formats, with filters for user, device and time range. Reverse geocoding can attach addresses and country codes to points, using providers such as OpenCage or Google, or a local revgeod service.

The program is written in C and is designed to run on low-end hardware. It is distributed as Debian packages, a Docker image, and source code that can be built with make, and it can be extended with Lua hooks.

Key features

  • 01Receives location data from MQTT subscriptions or HTTP POST
  • 02Stores data in plain files without an external database
  • 03Built-in REST API and WebSocket live map
  • 04ocat command-line tool exports JSON, GeoJSON, CSV, GPX and XML
  • 05Reverse geocoding with OpenCage, Google, or revgeod
  • 06Lua hooks for customizing behavior

Use cases

  • Keeping a private location history for your own OwnTracks devices on a home server
  • Tracking family members' phones on a local map without sending data to a third-party service
  • Running on a low-power device such as a Raspberry Pi
  • Exporting location history to GPX or CSV for analysis

Quick start

  1. 1

    Install the Docker image from Docker Hub

    docker pull owntracks/recorder
  2. 2

    Launch the Recorder subscribing to the OwnTracks topic

    ./ot-recorder 'owntracks/#'
  3. 3

    Open the web interface in a browser at the default address

Things to know

  • Packages are offered only for a limited set of Linux distributions; other platforms require building from source.
  • Requires an MQTT broker such as Mosquitto unless you use HTTP mode.
  • Map features need your own map API keys.
  • License is not clearly specified in the metadata.

In collections

Topics

#location-tracking#mqtt#owntracks#geolocation#self-hosted#websocket#geojson#http#jpdup#json

FAQ

What is recorder?
A lightweight server that stores and serves location data published by the OwnTracks mobile apps via MQTT or HTTP, without an external database. OwnTracks Recorder subscribes to an MQTT broker or accepts HTTP POST requests carrying OwnTracks JSON messages, then writes the location data into plain files on disk. It serves that data through a built-in REST API and a WebSocket server, which powers a live map that updates as new positions arrive.
Is recorder free to use? What license does it have?
recorder is open source under the Other license. Check the license terms before using it in commercial products.
Is recorder still maintained?
Actively maintained. The last commit to recorder was on Oct 27, 2026.
What can I use recorder for?
Keeping a private location history for your own OwnTracks devices on a home server Tracking family members' phones on a local map without sending data to a third-party service Running on a low-power device such as a Raspberry Pi Exporting location history to GPX or CSV for analysis
How do I install recorder?
Install the Docker image from Docker Hub: docker pull owntracks/recorder Launch the Recorder subscribing to the OwnTracks topic: ./ot-recorder 'owntracks/#' Open the web interface in a browser at the default address
Where can I get recorder?
The source code and installation instructions are on GitHub: https://github.com/owntracks/recorder

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects