OwnTracks – eigener Tracking Server

OwnTracks ist ein Open-Source-Projekt zum privaten Aufzeichnen und Teilen von Standortdaten via HTTP – direkt von deinem Smartphone, an deinen eigenen Server.
Der Recorder ist der schlanke Server-Dienst, der die Positionsmeldungen speichert, verwaltet und eine API bereitstellt (ideal zum Self-Hosting).
Das Frontend ist die dazugehörige Web-Oberfläche, mit der du deine Wege, Aufenthaltsorte und Geofences komfortabel auf Karten ansehen und durchsuchen kannst.
Zusammen bilden Recorder + Frontend eine datenschutzfreundliche, selbstbetriebene Lösung für Live-Tracking und Standort-Historie.

Wofür kann OwnTracks genutzt werden?
  • Familie & Freunde: Kurz den Standort teilen, sehen, ob jemand gut angekommen ist.
  • Eigene Kinder: Mit Zustimmung: Schulweg im Blick behalten, Hinweis bekommen „ist angekommen/ist losgegangen“.
  • Treffen & Ausflüge: Leichter zueinander finden, sehen, wer schon in der Nähe ist.
  • Sport & Outdoor: Lauf-, Rad- oder Wanderstrecken mitschneiden und später auf der Karte ansehen.
  • Kleine Teams: Überblick, wo sich alle gerade ungefähr befinden.
Voraussetzungen:
  • Linux-Grundkenntnisse an der Konsole
    (SSH, Dateien bearbeiten, Dienste/Logs prüfen)
  • Eigener VPS/Server mit Domain
  • Öffentliche Domain mit Zugriff auf die DNS-Einträge (A/AAAA, optional CNAME)
  • Feste öffentliche IP empfohlen (VPS / Homeserver)
  • Docker & Docker Compose installiert

Schnelltest:

  • Nginx Proxy Manager (NPM) installiert und konfiguriert
    – für Let’s-Encrypt-Zertifikate (HTTPS) und Zugriffsschutz (Basic Auth/Access Lists)
  • Zugriff auf DNS – Domain/Subdomain für das OwnTracks-Frontend (z. B. tracks.yourdomain.com / maps.yourdomain.com) zeigt auf deinen Server
1. docker-compose.yml und Projektordner

Lege einen neuen Ordner in deinem Projektordner an. Zum Beispiel:

In dem Ordner /home/owntracks wird dann eine docker-compose.yml angelegt

In die docker-compose.yml kommt folgender Inhalt hinein:

Als Erklärung:

Der OwnTracks-Recorder ist unter Port 8083 verfügbar. Diesen Port machen wir später öffentlich unter https://tracks.yourdomain.com

Das OwnTracks-Webinterface ist unter Port 8101 verfügbar. Diesen Port machen wir später öffentlich unter https://maps.yourdomain.com

In dem Ordner /home/owntracks/ legen wir noch einen unterordner „config“ an:

Und in den config ordner kommen noch folgende Datei hinein: recorder.conf mit folgendem inhalt

Inhalt:

Nun kehren wir in den Ordner /home/owntracks/ zurück und starten die docker-compose.yml

Der OwnTracksRecorder und der OwnTracksFronted(Webseite) dürften jetzt schon laufen.

2. DNS Namen einrichten

Wir richten bei dem VPS Anbieter (zum Beispiel Hetzner.com) jweils zwei A und AAAA-DNS Einträge ein:

  • maps.yourdomain.com
  • tracks.yourdomain.com

Die erste Seite dient dazu sich anzuschauen wo die einzelnen Personen sich aufhalten und die zweite Seite ist die URL, wohin die Android App zum Beispiel die Daten meldet.

3. Nginx Proxy Manager (NPM) konfigurieren:

Auch im NPM richten wir diese Domains jetzt mit SSL Zertifikat ein:

Wichtig bei unserer Konfiguration:

maps.yourdomain.com = 127.0.0.1 und Port 8101
tracks.yourdomain.com = 127.0.0.1 und Port 8083

Alles so wie wir es oben in der docker-compose.yml konfiguriert haben. Voraussetzung: NPM und Owntracks laufen auf dem gleichen System.

Damit keine Unbefugten auf Standortdaten zugreifen können schützen wir die Url „maps.yourdomain.com“ noch mit einem Benutzernamen und Passwort.

Das geht einfach über NPM und den „Access Lists“:

Dann auf „Save“ klicken und alles ist gespeichert.

4. GANZ WICHTIG ! (Leaks verhindern) !!

Keine Leaks zulassen oder das dritte Personen auf eure Bewegungsdaten (Familie/Freunde/Kinder) zugreifen können. Dazu müsst ihr den recorder noch weiter einschränken im NPM (tracks.yourdomain.com):

Nur /pub durchlassen (nur POST), und /api/ & /ws/ blockieren bzw. schützen. Außerdem solltest du den Recorder nicht direkt am Host veröffentlichen, damit niemand NPM umgehen kann (oder per Firewall die Ports nicht durchlassen).

Folgende „Custom Locations“ (tracks.yourdomain.com) sind nötig:

Diesen Custom-Code noch eingeben (siehe auch Screenshot):

Jeweils noch eingeben (siehe Screenshot):

Der Schritt ist ganz wichtig, so dass man als Dritter keine Daten über eure „tracks.yourdomain.com“ Seite einsehen kann.

Und im „Advanced Tab“ der „tracks-Domain“ noch:

Fertig: Serverseitig ist jetzt alles erledigt.

5. Android App / IOS App installieren

Die App installieren:

Alle Berechtigungen erteilen und vergeben:

Auf Einstellungen klicken:

Und die Verbindungsdaten bearbeiten:

Mode = HTTP
Host = https://tracks.yourdomain.com/pub (Wichtig: nicht maps.yourdomain.com!)
Port = Weglassen bei HTTP
ClientID = Weglassen bei HTTP
DeviceID = Name z.B. tomphone
TrackerID = 1 (fortlaufende Nummern wählen oder z.B. tp)
Username und Passwort ebenfalls weglassen

Das war es schon. 😀

Die App meldet nun die aktuellen Standortdaten an euren eigenen Server und unter https://maps.yourdomain.com kann alles nachgesehen und live verfolgt werden:


bc1q8dxp9mlt3mkvaklu2vn8j6jteqyv53kschc90v

Lightning: itsc@strike.me