unsubbed.co

OwnTracks Recorder

For gps & vehicle tracking, OwnTracks Recorder offers a self-hosted way to store and access data published by location tracking apps.

Self-hosted location history, honestly reviewed. No marketing fluff, just what you get when you stop handing your daily movements to Google.

TL;DR

  • What it is: Open-source backend for storing and querying location data published by the OwnTracks mobile apps (iOS and Android). Think of it as your own private Google Maps Timeline, minus the Google [README][2].
  • Who it’s for: Privacy-conscious individuals, self-hosters, and technically inclined founders who want a complete record of their location history without depending on any cloud vendor. Also useful as a data source for Home Assistant integrations and custom geo-pipelines [2][3].
  • Cost savings: Google Timeline is “free” until Google changes its mind. Life360 Family Locator runs $7.99–$14.99/mo. OwnTracks Recorder self-hosted costs $0 in software on hardware you already own or a $5–10/mo VPS [README][4].
  • Key strength: Extremely lightweight — runs on a Raspberry Pi or low-end VPS without a database engine. Data is stored as plain files on disk, which means you can inspect, back up, and migrate it without touching SQL [README].
  • Key weakness: Not a polished product. No pretty dashboard by default, no automatic trip clustering, no “years in review” feature. You get raw location storage and a minimal built-in web UI. If you want Google Timeline aesthetics, you need to pair it with something like Dawarich or Reitti [3].

What is OwnTracks Recorder

OwnTracks Recorder is the server-side half of the OwnTracks project. The OwnTracks apps (iOS and Android) are the client side — they read your phone’s GPS and publish your current coordinates to a server you control. The Recorder is that server. It receives location messages via MQTT (a lightweight pub/sub protocol common in IoT) or HTTP POST, stores them in plain files on disk, and exposes a REST API and a minimal web interface for querying the stored data [README].

The project’s GitHub README describes it plainly: “a lightweight program for storing and accessing location data published via MQTT (or HTTP) by the OwnTracks apps.” It’s a C binary — not a Node.js server, not a Python Flask app — which is why it runs comfortably on a Raspberry Pi 3 or a $5 VPS with 512MB RAM [README].

There is no external database requirement. The Recorder writes location data into a directory structure of plain files, uses LMDB (a fast key-value store embedded in the binary) for caching reverse geo lookups, and that’s it. No PostgreSQL to install, no Redis to configure [README]. This simplicity is a deliberate design choice, documented in the project’s DESIGN.md.

The Recorder ships with a companion command-line tool called ocat that can read and output stored location data in multiple formats — GeoJSON, CSV, and others. The built-in HTTP server also serves a live map (updating over WebSocket) and a tabular view of last-known positions [README].

As of this review, the repository sits at 1,143 GitHub stars and 136 forks — niche numbers that reflect an audience of dedicated self-hosters rather than mainstream tooling [merged profile].


Why People Choose It

The reviews paint a consistent picture: people don’t come to OwnTracks Recorder because it’s the best location tracking product. They come because they don’t trust the alternative.

The Google Timeline exodus. Multiple reviewers explicitly frame OwnTracks as the answer to Google’s 2024 policy change, which shifted Timeline storage from Google’s cloud to a phone-first model with 90-day auto-delete by default. One XDA Developers piece [3] is blunt about this: “Unless you manually back it up, only the most recent 90 days are stored by default. Years of location history will simply vanish if you forget to enable backups.” A Brazilian tech outlet [1] describes the Google change as an event that “impacted directly how users accessed and interacted with their location history,” and positions OwnTracks as the self-hosted replacement.

Privacy as the primary driver. A MakeUseOf reviewer [2] articulates the appeal more precisely: “I just wanted… confidence that the raw data outlining my life sits on a machine I control, not on some random data center I’ll never see.” This is the core value proposition. Not features. Not UI. Control.

Fits into existing self-hosted stacks. The same MakeUseOf piece [2] notes that OwnTracks integrates naturally with Home Assistant and serves as a data source for Dawarich, Reitti, and other tools. People running Nextcloud can use PhoneTrack for similar functionality. The point is that OwnTracks Recorder plays well as a component in a larger stack rather than demanding to be the only location tool you run.

The honest caveat from the same reviewer. The XDA Developers review [3] makes this clear: “Even though there is OwnTracks, it lacks the kind of polish that Google Maps timeline gives you.” That’s a fair summary. People choose OwnTracks Recorder despite its rough edges, not because of a slick experience.


Features

Based on the README and first-hand descriptions across the reviews:

Core storage and ingestion:

  • Subscribes to an MQTT broker and stores incoming location publishes as plain files [README]
  • Alternatively accepts HTTP POST of OwnTracks-format JSON (for setups where MQTT is overkill) [README]
  • ocat CLI utility reads stored data in GeoJSON, CSV, and other formats [README]
  • Supports multiple users and devices tracked simultaneously [README]

Built-in HTTP server:

  • Last-known position table for all tracked users/devices [README]
  • Map view with historical tracks rendered from GeoJSON [README]
  • Live map updating via WebSocket as new positions arrive [README]
  • REST API for programmatic access to stored data [README]
  • Views (named, shareable URLs with optional authentication) [README]

Reverse geocoding:

  • Converts raw lat/lon to human-readable addresses via configurable reverse-geo providers [README]
  • Result caching in LMDB to avoid repeated API calls [README]
  • Configurable precision (geohash-based) [README]

Extensibility:

  • Lua hooks for custom logic triggered on each location update — filter, transform, forward to other systems [README]
  • HTTP-to-MQTT gateway support for setups that need both modes [README]
  • Geofencing support (fences.c in the source) [README]
  • Encryption support for MQTT payloads [README]

Deployment options:

  • Debian/Ubuntu packages via the project’s own package repository [README]
  • Docker image on Docker Hub [README]
  • Homebrew formula for macOS [merged profile]
  • Build from source on any platform [README]

What it does NOT include:

  • Trip clustering or automatic “visit” detection (that requires Dawarich or Reitti on top) [3]
  • A polished dashboard with stats like “countries visited” or “miles traveled this year” [3]
  • Multi-user authentication beyond basic HTTP auth via the Views feature [README]
  • Mobile app — the app is a separate OwnTracks project [2]

Pricing: SaaS vs Self-Hosted Math

OwnTracks Recorder:

  • Software license: $0. The license field in the merged profile shows “NOASSERTION” (the GitHub SPDX identifier wasn’t detected automatically), but the project is clearly open-source and has been freely available for years [merged profile][README].
  • Hardware: whatever you already have. A Raspberry Pi, a NAS, a low-end VPS. The README explicitly notes it runs on “low-end hardware” [README].
  • MQTT broker: free if you self-host Eclipse Mosquitto (also open-source). Free at low volumes on cloud MQTT providers. [1][README]

Competing SaaS alternatives:

  • Life360 Family Locator: Free tier (limited), $7.99–$14.99/mo for premium [4]. Stores your location on Life360’s servers indefinitely.
  • Google Maps Timeline: Technically free, but see above — your data is now primarily on your phone with forced 90-day auto-delete unless you configure backups [1][3].
  • Glympse: Free for short-term real-time sharing, not a persistent history tool [4].

Concrete savings math:

If you’re on Life360 Premium at $14.99/mo, that’s $179.88/year for location tracking of your family. OwnTracks Recorder on a $6/mo Hetzner VPS (which likely also runs 5 other self-hosted apps) costs effectively $0 incremental per month for location history. Over three years: $540 saved vs. Life360 Premium.

The more relevant comparison for most readers is against Google Timeline: the cost there isn’t money, it’s data sovereignty and the risk of losing years of history if you don’t configure backups correctly [3]. The value of self-hosting is insurance against Google’s future policy decisions, not monthly savings.


Deployment Reality Check

The deployment story here is more involved than tools like Activepieces or Gitea. The Recorder is a backend component, not a self-contained application — it needs a companion MQTT broker, a mobile app, and optionally a reverse proxy.

Minimum viable stack:

  1. An MQTT broker — Eclipse Mosquitto is the standard choice, available as a Docker container [1][README]
  2. The Recorder itself, configured to subscribe to the broker [README]
  3. OwnTracks app on your phone, configured to publish to the broker’s IP [1][2]
  4. Optional: a reverse proxy (nginx or Caddy) for HTTPS access from outside your home network [README]

What’s documented: The README covers installation, configuration, and the REST API in reasonable depth. The project also includes separate docs for Lua hooks (HOOKS.md), storage layout (STORE.md), and design decisions (DESIGN.md). This is more documentation than many self-hosted tools provide [README].

What can go sideways:

The MakeUseOf reviewer [2] notes that getting location data into the stack when you’re away from home — not just on your local network — requires a reverse proxy setup, and calls this “another project for another time.” Most people’s first OwnTracks instance only syncs when the phone is on the home Wi-Fi, which defeats the purpose of continuous tracking.

The tekimobile reviewer [1] flags that the MQTT configuration is the main friction point: setting up Mosquitto with correct ports, volumes, and authentication requires reading the Mosquitto documentation separately, not just the OwnTracks docs.

The XDA Developers piece [3] is the most pointed: the author concluded OwnTracks’ lack of polish was a dealbreaker and moved to Reitti instead. That’s a legitimate data point — if you want Google Timeline equivalence, OwnTracks Recorder alone doesn’t get you there.

Realistic time estimates:

  • Technical user who has run Docker before: 1–3 hours to a working local-only setup, 3–5 hours to full remote access with HTTPS.
  • Someone new to self-hosting: half a day to a full day, with a real chance of getting stuck on MQTT broker configuration or NAT/firewall issues.
  • Someone who has never touched a Linux server: this is not the place to start. Use a managed service until you’ve deployed something simpler.

Pros and Cons

Pros

  • No database required. Location data lives in plain files on disk. You can rsync your entire location history, inspect it with a text editor, and never touch SQL [README]. This dramatically simplifies backup and migration.
  • Runs on genuinely low-end hardware. A Raspberry Pi, a spare NAS, a $5 VPS — the C binary footprint is tiny compared to Electron-based or JVM-based alternatives [README].
  • MQTT-first design means it integrates naturally with Home Assistant and other IoT-adjacent tools in a self-hosted stack [2].
  • HTTP mode as an alternative to MQTT lowers the barrier for simpler setups where you don’t want to run a broker [README].
  • Lua hooks for custom logic — forward location to a webhook, filter out positions while at home, trigger home automation events [README].
  • REST API and GeoJSON output make it a useful data source for other tools like Dawarich or custom maps [3][README].
  • Zero vendor risk. The software is compiled C with no cloud dependency. Even if the project went dark tomorrow, your data stays readable in plain files and the binary keeps running [README].
  • Works as a component rather than demanding to own the whole stack — plays well with Dawarich for dashboards, Reitti for advanced visualization, PhoneTrack via Nextcloud [2][3].

Cons

  • No polished dashboard out of the box. The built-in web UI shows last positions and basic track maps. There’s no trip clustering, no visit recognition, no stats. If you want Google Timeline aesthetics, you’re adding another tool [3].
  • MQTT setup friction. Running Mosquitto adds a second service to configure and secure. Authentication, TLS, and port forwarding all need attention separately [1][README].
  • Remote access requires extra work. Without a reverse proxy and domain setup, you only get syncing on your local network [2].
  • License is technically “NOASSERTION.” The project is open-source in practice but the SPDX license identifier wasn’t detected in the merged profile. Worth checking the LICENSE file directly before embedding this in a commercial product [merged profile].
  • Low GitHub star count (1,143) signals a niche community. If you hit an obscure bug, you may be debugging C source code rather than finding a Stack Overflow answer [merged profile].
  • Not a complete solution — it’s infrastructure, not an application. Non-technical users will find it incomplete without significant additional setup [3].
  • Travis CI build badge in the README points to a CI service that’s been largely deprecated for open-source projects, suggesting CI hygiene isn’t a priority. Minor, but indicative of maintenance pace [README].

Who Should Use This / Who Shouldn’t

Use OwnTracks Recorder if:

  • You’re a self-hoster who already runs Docker services on a NAS or VPS and wants to add location history to the stack without a new SaaS subscription.
  • You care about data sovereignty over UX polish — your priority is “data on my hardware,” not “pretty timeline.”
  • You want to feed location data into Home Assistant, Dawarich, or a custom geo-analytics pipeline, and you need a reliable ingest layer.
  • You’re migrating off Google Timeline and want a durable archive solution, not just a viewer.
  • You’re technically comfortable with MQTT, Docker networking, and reverse proxies — or willing to learn.

Skip it (use Dawarich instead) if:

  • You want a self-hosted Google Timeline replacement with actual stats, visit detection, and import from Google Takeout. Dawarich is purpose-built for this and can use OwnTracks as a data source [3].

Skip it (use Reitti instead) if:

  • You want a polished, professional-looking dashboard with geo-coding, trip visualization, and journey reconstruction. The XDA reviewer chose Reitti over OwnTracks explicitly for this reason [3].

Skip it (use Nextcloud + PhoneTrack instead) if:

  • You’re already running Nextcloud. PhoneTrack handles location storage and visualization inside your existing setup without a separate MQTT stack [2].

Skip it entirely if:

  • You’ve never deployed a self-hosted service before. Start with something with a friendlier setup experience, then come back to OwnTracks once you’re comfortable with Docker and reverse proxies.
  • You need family tracking with sharing, notifications, and a mobile-first experience. OwnTracks doesn’t do real-time sharing in a consumer-friendly way — Life360 or similar is the honest answer.

Alternatives Worth Considering

  • Dawarich — the most direct self-hosted Google Timeline replacement. Imports from Google Takeout, OwnTracks, GPX, and others. Has stats, visit detection, and a proper dashboard. Uses OwnTracks as a data source, so the two can co-exist [3].
  • Reitti — newer, Docker-based, PostGIS-powered. Clusters raw GPS points into visits and journeys automatically. The XDA reviewer explicitly preferred it to OwnTracks for this capability [3]. Requires more server resources (PostgreSQL + PostGIS + RabbitMQ + Redis).
  • Nextcloud + PhoneTrack — if you’re already on Nextcloud, this adds location tracking inside your existing infrastructure without an MQTT broker [2].
  • GPSLogger (Android) — logging-only app that can push to OwnTracks Recorder or any HTTP endpoint. Useful if you want something simpler than the full OwnTracks client [3].
  • Life360 — the SaaS option for family tracking. Better UX, real-time sharing, mobile notifications. $7.99–$14.99/mo. Your data lives on their servers [4].
  • Traccar — a more fully-featured open-source GPS tracking server aimed at fleet management, but usable for personal tracking. Supports more device protocols than OwnTracks but is heavier to run.

For a non-technical founder who just wants “my location history, my server,” the realistic path is: OwnTracks mobile app + OwnTracks Recorder for ingestion + Dawarich for the dashboard. That combination covers the full Google Timeline replacement.


Bottom Line

OwnTracks Recorder does one thing well: it reliably receives location data from your phone and stores it where you can find it, forever, in plain files, on hardware you control. That’s a small promise, but it’s a real one — and after Google’s Timeline changes, it’s a promise worth more than it sounds. The product isn’t for non-technical founders looking for a polished experience. It’s infrastructure for people who want to own their location data and are willing to do some plumbing to get there. If the plumbing sounds like work, pair it with Dawarich for dashboards and you’ll have something that actually competes with Google Timeline aesthetics. If it sounds like too much work, that’s honest — Life360 or waiting for a more finished product is a legitimate answer. But if you’re the kind of person who reads self-hosting reviews and already has a few Docker services running, adding OwnTracks Recorder costs you an afternoon and pays you back in years of location history that no vendor can delete.

If the setup is the blocker, that’s exactly what upready.dev deploys for clients — one-time fee, configured and running, you own the data.


Sources

  1. André Luiz, tekimobile.com“Google desativa Timeline do Maps, mas há alternativa para armazenar seu histórico” (Jun 22, 2025). https://tekimobile.com/noticia/google-desativa-timeline-maps-mas-ha-alternativa-armazenar-seu-historico/
  2. Yadullah Abidi, MakeUseOf“I started self-hosting my location history (and I actually love it)” (Mar 3, 2026). https://www.makeuseof.com/self-hosting-location-history-love-it/
  3. Dhruv Bhutani, XDA Developers“I built my own self-hosted location tracker and ditched Google Timeline” (Sep 8, 2025). https://www.xda-developers.com/self-hosted-google-timeline-location-history-alternative/
  4. AlternativeTo“Location Share Alternatives” (last updated Apr 7, 2026). https://alternativeto.net/software/location-share/

Primary sources:

Features

Integrations & APIs

  • Plugin / Extension System
  • REST API

Mobile & Desktop

  • Mobile App