Selbstgehostete Standortverfolgung: Apps im Vergleich
Wählen Sie zwischen Dawarich, Traccar, OwnTracks oder Home Assistant für Ihre private GPS-Historie. Wir zeigen, wie Sie den Ingest-Endpunkt sicher vom Internet trennen.
Welche selbstgehostete App zur Standortverfolgung passt zu Ihrem Anwendungsfall
Die Wahl einer selbstgehosteten Lösung zur Standortverfolgung hängt von einer zentralen Frage ab: Möchten Sie einen Verlauf für sich selbst speichern oder gemeinsam mit anderen Personen eine Live-Position verfolgen? Dawarich ist die Antwort auf die erste Frage. Es ist ein selbstgehosteter Ersatz für die Google Maps Zeitachse und importiert den Verlauf, den Sie bereits besitzen. Traccar ist die Antwort auf die zweite Frage. Es wurde für GPS-Hardware und Fahrzeugflotten entwickelt und behandelt ein Smartphone wie einen weiteren Tracker. OwnTracks fungiert bei beiden als Smartphone-App und Nachrichtenformat. Home Assistant erkennt bereits den Standort Ihres Smartphones, sofern Sie es ausführen, löscht den Verlauf jedoch standardmäßig nach zehn Tagen.
Wählen Sie basierend darauf, was Sie im nächsten Monat auswerten möchten:
- Eine Karte aller Orte, die Sie im letzten März besucht haben, inklusive Aufenthaltsorten und Reisen: Dawarich.
- Eine Live-Karte mehrerer Geräte mit Geofences und Ereignisregeln: Traccar.
- Ein Smartphone, das seine Position an ein bereits betriebenes System übermittelt: OwnTracks im HTTP-Modus.
- Automatisierungen für Anwesenheit und Abwesenheit ohne Interesse an einem Verlauf: Home Assistant allein.
Nichts davon funktioniert, solange das Smartphone keinen von Ihnen kontrollierten HTTPS-Endpunkt erreichen kann; daher erhält die Serverseite weiter unten einen eigenen Abschnitt. Falls Sie noch klären, was sonst noch auf den Server gehört, zeigt die umfassendere Liste der empfehlenswerten Self-Hosting-Anwendungen für dieses Jahr, wo sich ein Tracker im Vergleich zu anderen Diensten einordnet.
Traccar: GPS-Hardware, Flotten und Live-Positionen
Traccar ist ein Tracking-Server. Er unterstützt die Protokolle, die dedizierte GPS-Tracker verwenden, wobei jedes Protokoll auf einem eigenen TCP- und UDP-Port im Bereich von 5000 bis 5150 lauscht. Er bietet eine Live-Karte, Geofences, Ereignisregeln und Berichtsfunktionen. Das Web-Interface lauscht standardmäßig auf Port 8082.
Für Smartphones gibt es die Traccar Client App für Android und iOS. Sie überträgt Daten über das OsmAnd-Protokoll, das standardmäßig auf Port 5055 lauscht. Die Einstellungen in der App bestimmen die Akkulaufzeit und die Anzahl der Datensätze. Distance fordert während der Bewegung alle N Meter ein Update an. Interval ermöglicht zeitbasierte Berichte, wenn die Distanz 0 ist. Angle löst ein Update bei einer Richtungsänderung in Grad aus. Stationary Heartbeat definiert das Verhalten, wenn sich das Gerät nicht bewegt. Die Dokumentation von Traccar weist darauf hin, dass das exakte Ergebnis für keine dieser Einstellungen garantiert ist, da das Smartphone die Entscheidung trifft.
Traccar wird mit einer eingebetteten H2-Datenbank ausgeliefert, damit die Installation ohne Konfigurationsaufwand funktioniert; das Projekt empfiehlt H2 jedoch nicht für den produktiven Einsatz. Für kleinere Server wird MySQL oder MariaDB empfohlen, für große Instanzen PostgreSQL, optional mit TimescaleDB. Migrieren Sie die Datenbank, bevor sich Verlaufsdaten ansammeln, da die Konvertierung einer H2-Datei nachträglich eine manuelle Aufgabe ohne unterstützte Werkzeuge ist.
Wo Traccar weniger gut geeignet ist: Es ist eine Konsole zur Echtzeitüberwachung. Die Berichte sind auf Flotten, Fahrten, Stopps und Zusammenfassungen ausgelegt, sodass die eigenen Aktivitäten eines Jahres eher wie ein Abfrageergebnis und weniger wie eine Zeitachse wirken.
OwnTracks: eine Smartphone-App und ein Endpunkt, sonst nichts
OwnTracks ist das klassische Minimal-Setup. Die App veröffentlicht bei jeder erkannten Ortsveränderung des Geräts eine kleine JSON-Nutzlast; dies kann über MQTT (Message Queuing Telemetry Transport) oder einfaches HTTP erfolgen. Im HTTP-Modus ist der Endpunkt eine URL im Format http[s]://[user[:password]@]host[:port]/path, die mittels HTTP Basic authentifiziert wird. Das Projekt empfiehlt nachdrücklich das Schema https://. Gegenüber dem OwnTracks Recorder lautet der Pfad /pub.
Der Überwachungsmodus ist wichtiger als jede Servereinstellung. Quiet veröffentlicht nur auf explizite Anforderung. Manual ergänzt eine Regionsüberwachung sowie eine stromsparende Standortabfrage. Significant ist der normale Automatikmodus. Move veröffentlicht, sobald das Gerät locatorDisplacement Meter zurückgelegt hat oder locatorInterval Sekunden vergangen sind – je nachdem, was zuerst eintritt; die Standardwerte liegen bei 100 Metern und 300 Sekunden. OwnTracks dokumentiert, dass der Modus Move den Akku auf dem Niveau einer Navigations-App belastet, und empfiehlt ihn eher für Reisen oder während des Ladevorgangs als für den täglichen Gebrauch.
Der OwnTracks Recorder speichert die eingehenden Daten und stellt eine einfache Karte bereit. Viele Nutzer installieren ihn nie, da die Nutzlast identisch ist, unabhängig davon, ob die App auf den Recorder, auf Dawarich oder auf Home Assistant verweist. Genau deshalb ist dies der richtige Ausgangspunkt: Die App ist ein stabiler, unaufgeregter Datenlieferant, und Sie können sich später jederzeit für einen anderen Konsumenten entscheiden.
Dawarich: Eine selbst gehostete Google Maps Timeline
Dawarich steht unter der Lizenz AGPL-3.0 und wird über eine Docker Compose-Datei betrieben. Eine funktionierende Installation besteht aus vier Containern: der Rails-Anwendung, einem Sidekiq-Worker für Hintergrundaufgaben, PostgreSQL und Redis. Die Anwendung nutzt Port 3000. Zu den Importquellen gehören Google Maps Timeline, OwnTracks, Strava, Immich, GPX- und GeoJSON-Dateien sowie die EXIF-Daten Ihrer Fotos. Diese Importliste macht es zu einer Timeline und nicht nur zu einer Live-Karte, da sie historische Daten verarbeiten kann, die vor der Server-Einrichtung liegen.
Der Ingest erfolgt über einen HTTP-Endpunkt, der einen API-Key von Ihrer Kontoseite benötigt. OwnTracks sendet Daten an /api/v1/owntracks/points?api_key=... und Overland an /api/v1/overland/batches?api_key=.... GPSLogger verwendet denselben Endpunkt wie OwnTracks.
Beachten Sie, wie dieser Key übertragen wird. Er ist Teil des Query-Strings, und das Standard-Logformat von nginx schreibt die vollständige Request-Zeile mit. Dadurch landet der Key bei jedem einzelnen Datenpunkt im Klartext in /var/log/nginx/access.log. Behandeln Sie dieses Log wie ein Geheimnis, rotieren Sie den Key, falls Sie Logs an einen zentralen Ort übertragen, und fügen Sie niemals eine funktionierende URL in einen Support-Thread ein.
Für die Compose-Datei selbst, die Volumes und die Restart-Policy, verwenden Sie die Container-Mechaniken zum Ausführen von Compose auf einem VPS. Diese Seite endet bei dieser Entscheidung.
Home Assistant: gut für Anwesenheitserkennung, ungeeignet für Historien
Wenn Sie Home Assistant bereits betreiben, verfügen Sie bereits über ein Device-Tracking. Die Companion-App meldet die Position, und die OwnTracks-Integration stellt Ihnen eine Webhook-URL sowie einen Verschlüsselungs-Key bereit, die Sie in der App hinterlegen. Bei konfigurierter MQTT-Anbindung empfängt diese Integration MQTT-Nachrichten anstelle von HTTP-Anfragen.
Die Einschränkung liegt in der Aufbewahrungsdauer. Der Recorder von Home Assistant ist standardmäßig auf purge_keep_days: 10 eingestellt, und die automatische Bereinigung (Auto Purge) läuft jede Nacht um 04:12 Uhr lokaler Zeit, um ein unbegrenztes Anwachsen der Datenbank zu verhindern. Diese Standardeinstellung ist für eine Datenbank zur Hausautomatisierung korrekt, für ein Standortarchiv jedoch ungeeignet. Home Assistant beantwortet die Frage „Ist jemand zu Hause“. Die Frage „Wo war ich am 14. März“ kann das System nicht beantworten, es sei denn, Sie leiten denselben Datenstrom an ein System weiter, das diese Daten dauerhaft speichert.
Kontinuierliche Nachverfolgung oder gelegentliche Freigabe?
Kontinuierliche Nachverfolgung bedeutet, dass die App den ganzen Tag über Daten sendet, unabhängig davon, ob Sie sich bewegen oder nicht; das dabei entstehende Archiv ist der eigentliche Zweck. Gelegentliche Freigabe bedeutet, dass sich Personen während einer Reise gegenseitig beobachten, wobei das Archiv ein ungewolltes Nebenprodukt ist. Dieselbe Software deckt beide Szenarien mit unterschiedlichen Einstellungen ab.
Für kontinuierliche Nachverfolgung sollten Sie die distanzbasierte Berichterstattung einem kurzen Zeitintervall vorziehen, die Datenbank auf einem Datenträger speichern, den Sie tatsächlich sichern, und die Aufbewahrungsdauer am ersten Tag festlegen, anstatt erst dann, wenn der Speicherplatz erschöpft ist. Für gelegentliche Freigaben erhöhen Sie die Berichtsrate nur für den relevanten Zeitraum und versetzen das Telefon danach wieder in einen Energiesparmodus. OwnTracks bietet hierfür eine entsprechende Einstellung in der App, und Traccar Client ermöglicht dies über die Felder für Distanz und Intervall.
Wenn Sie einen Freigabelink mit einer Gültigkeit von zwei Stunden für eine einzelne Reise benötigen, lesen Sie die Release Notes des gewählten Servers, bevor Sie sich festlegen. Diese Funktion ändert sich zwischen den Versionen am häufigsten und stellt bei allen hier genannten Optionen den schwächsten Punkt dar.
Benötigen Sie überhaupt einen MQTT-Broker?
Beginnen Sie ohne einen solchen. Der HTTP-Modus erfordert lediglich eine URL, ein Passwort und TLS (Transport Layer Security); jeder der oben genannten Server unterstützt dies. Ein Broker ist sinnvoll, wenn mehrere Instanzen gleichzeitig denselben Datenstrom benötigen, etwa wenn Home Assistant auf eine Zone reagiert, während ein Recorder den Verlauf schreibt, oder wenn Familienmitglieder ihre Standorte gegenseitig einsehen.
MQTT ist ein Publish-Subscribe-Protokoll, und Mosquitto ist der Standard-Broker. Er lauscht auf Port 1883 im Klartext und auf 8883 für TLS; Sie sollten ausschließlich 8883 verwenden. Die Zugriffskontrolle erfolgt themenbezogen (per Topic), sodass ein Konto beispielsweise berechtigt sein kann, unter owntracks/alice/phone zu publizieren, ohne andere Daten lesen zu können. Das ist das entscheidende Argument für MQTT in einer häuslichen Umgebung: Wer wen sieht, wird durch den Broker unterhalb der Anwendungsebene erzwungen, sodass ein Anwendungsfehler die Berechtigungen nicht ausweiten kann.
Der Preis dafür ist ein zusätzlicher Dienst mit eigenem Zertifikat, eigener Benutzerliste und eigenen Fehlerquellen. Ein Broker, der keine Verbindungen mehr annimmt, verhält sich wie ein Telefon ohne Empfang – in beiden Fällen erhalten Sie keine Fehlermeldung.
Wie viele Positionsdatensätze erzeugt ein Telefon?
Die folgenden Zahlen sind arithmetische Werte, keine Messungen. Sie setzen ein festes Berichtsintervall voraus, einen Datensatz pro Bericht und sonst nichts.
The data behind this chart
[
{
"label": "Every 30 seconds",
"points_30d": "86,400",
"points_365d": "1,051,200"
},
{
"label": "Every 60 seconds",
"points_30d": "43,200",
"points_365d": "525,600"
},
{
"label": "Every 5 minutes",
"points_30d": "8,640",
"points_365d": "105,120"
},
{
"label": "Every 15 minutes",
"points_30d": "2,880",
"points_365d": "35,040"
}
]Ein Telefon, das einmal pro Minute berichtet, schreibt 43,200 Datensätze pro Monat und 525,600 Datensätze pro Jahr. Erhöht man das Intervall auf fünfzehn Minuten, belaufen sich die Kosten pro Jahr auf 35,040 Datensätze. Echte Anwendungen sind unordentlicher als diese Rechnung, da sie sowohl zeit- als auch bewegungsbasiert berichten und bei Stillstand des Telefons keine Daten senden. Betrachten Sie die obere Zeile daher eher als Obergrenze denn als Prognose.
Eine halbe Million Datensätze pro Jahr ist für PostgreSQL eine geringe Menge. Die Kosten, die zuerst ins Gewicht fallen, entstehen bei der Darstellung: Eine Karte, die ein Jahr an Punkten in voller Auflösung rendern soll, bringt den Browser lange vor der Datenbank zum Stillstand. Deshalb fassen diese Anwendungen die Historie in Fahrten und Orte zusammen. Messen Sie die tatsächliche Anzahl auf Ihrem eigenen System, anstatt einer Zahl aus einem Blogbeitrag zu vertrauen:
SELECT pg_size_pretty(pg_total_relation_size('tc_positions'));Dies ist die Tabelle positions von Traccar auf PostgreSQL. Führen Sie den entsprechenden Befehl für den von Ihnen gewählten Server nach einem Monat normaler Nutzung aus und multiplizieren Sie das Ergebnis mit zwölf. Keiner dieser Server löscht alte Punkte von selbst. Sie behalten, was Sie senden, bis Sie es entfernen. Legen Sie daher eine Aufbewahrungsregel fest, solange die Tabelle noch klein ist, und stellen Sie sicher, dass das Backup die Datenbank umfasst und nicht nur die Konfiguration, da ein Standortverlauf aus nichts anderem rekonstruiert werden kann.
Der Batterieverbrauch ist eine Entscheidung Ihres Telefons, nicht Ihres Servers
Diesen Aspekt kann Self-Hosting nicht beeinflussen. Das Betriebssystem entscheidet, wann das GPS aktiviert wird, wie lange eine Hintergrund-App laufen darf und ob sie über Nacht aktiv bleibt. Das Energiemanagement von Android unterbricht Hintergrundprozesse aggressiv, und iOS übermittelt bei Standortänderungen eher punktuelle Daten statt eines kontinuierlichen Datenstroms. Ihr Server hat darauf keinen Einfluss; ein kürzeres Berichtsintervall in der App ist lediglich eine Anfrage, die das Telefon nach eigenem Ermessen beantwortet.
Sie haben die Kontrolle über die Einstellungen auf dem Telefon: Erteilen Sie die Berechtigung für den Standortzugriff im Hintergrund für die gesamte Zeit, schließen Sie die Tracking-App von der Batterieoptimierung aus und passen Sie den Berichtsmodus an den jeweiligen Tag an. Der Modus "Move" für die ganze Woche führt dazu, dass der Akku des Telefons bereits am Nachmittag leer ist.
Das serverseitige Symptom ist ein plötzlicher Schub von Datensätzen mit alten Zeitstempeln. Sowohl Traccar Client als auch OwnTracks puffern Standortdaten, während sie offline sind, und senden diese gesammelt, sobald das Netzwerk wieder verfügbar ist. Daher unterscheiden sich der Schreibzeitpunkt und der tatsächliche Zeitpunkt der Standortbestimmung. Wenn Ihre Karte eine gerade Linie quer durch eine Stadt zeichnet, handelt es sich um eine Lücke in den Standortdaten, nicht um eine Straße.
Die Serverseite: TLS und ein authentifizierter Ingest-Pfad
Das Telefon benötigt einen Hostnamen, den es auflösen kann, sowie ein Zertifikat, dem es vertraut. Ein selbstsigniertes Zertifikat ist der häufigste Grund dafür, dass eine Neuinstallation überhaupt keine Daten empfängt: Die App bricht den TLS-Handshake ab und gibt auf, während das Server-Log leer bleibt, da die Anfrage nie vollständig übertragen wurde. Ein leeres Log wirkt wie ein Problem des Telefons, ist aber keines.
Es gibt zwei saubere Wege. Terminieren Sie TLS in nginx mit einem echten Zertifikat, wie unter ein Let's Encrypt-Zertifikat vor nginx beschrieben, und öffnen Sie nur Port 443. Alternativ können Sie gar keinen eingehenden Port öffnen, indem Sie einen Cloudflare Tunnel verwenden, sodass auf der öffentlichen IP nichts lauscht; dies eignet sich für Dawarich und OwnTracks, da deren Ingest auf gewöhnlichem HTTP basiert.
Es gibt eine Einschränkung für den Tunnel-Weg. Das OsmAnd-Protokoll von Traccar ist HTTP, daher passiert ein Telefon-Client einen Reverse Proxy oder Tunnel problemlos. Die binären Protokolle, die dedizierte GPS-Hardware verwendet, sind rohes TCP auf eigenen Ports. Diese erfordern einen tatsächlich offenen Port, der sowohl in der VPS-Firewall als auch in der separaten Netzwerk-Firewall Ihres Anbieters freigeschaltet sein muss – letztere finden Sie bei den meisten Hostern in einem separaten Kontrollzentrum.
Sobald der Server antwortet, überprüfen Sie den Pfad mit einer einzelnen Anfrage, anstatt in der App zu raten:
curl -si -u alice:secret -H 'Content-Type: application/json' \
-d '{"_type":"location","lat":51.5,"lon":-0.12,"tst":1788480000}' \
https://track.example.com/pub | head -1Ein funktionierender Endpunkt antwortet mit einem 2xx-Status. Ein 401 bedeutet, dass die Anmeldedaten falsch sind, die Übertragung jedoch funktioniert. Ein curl-Fehler vor einer Statuszeile deutet auf DNS- oder TLS-Probleme hin; beheben Sie also das Zertifikat, bevor Sie Änderungen an der App vornehmen.
Ein offener Ingest-Endpunkt verrät Ihren Standort
Eine Ingest-URL ohne Authentifizierung gibt Ihren Standort an jeden weiter, der sie findet – und sie wird gefunden.
- Jeder, der die URL besitzt, kann Datenpunkte in Ihren Verlauf schreiben. Falsche Punkte sind schwer zu erkennen und mühsam zu entfernen.
- Eine URL ist kein Geheimnis. Sie befindet sich in den App-Einstellungen des Telefons, in den Access-Logs Ihres Reverse Proxys, im Browserverlauf, falls Sie sie jemals in einem Tab getestet haben, und auf jedem Screenshot, den Sie bei einer Support-Anfrage anhängen.
- Ein Endpunkt, der nicht authentifizierte GET-Anfragen beantwortet, liefert Ihre letzte Position an jeden Crawler, der den Pfad errät.
- Der Hostname ist ohnehin öffentlich. Ein neu ausgestelltes Zertifikat erscheint innerhalb von Minuten in Certificate-Transparency-Logs; eine Adresse, die Sie nie veröffentlicht haben, ist also dennoch auffindbar.
Verwenden Sie HTTP Basic über TLS für OwnTracks, den API-Key für Dawarich und das Kontomodell von Traccar mit einer eindeutigen Gerätekennung. Schützen Sie die Admin-Oberfläche mit derselben Authentifizierung wie den Ingest-Pfad, da dort der gesamte Verlauf einsehbar ist. Prüfen Sie nach der ersten Woche, wer angeklopft hat:
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20Die mobilen IP-Adressen Ihres Telefons sollten diese Liste dominieren. Alles andere mit einer hohen Anzahl an Zugriffen erfordert eine Überprüfung; ein Rate-Limit für den Ingest-Standort in Nginx kostet nichts.
Ein Tracker fällt zudem oft unbemerkt aus. Der Container stoppt, das Telefon puffert weiter, und Sie bemerken den Ausfall erst Wochen später, wenn eine Reise im Verlauf fehlt. Richten Sie einen Container-Healthcheck oder einen systemd OnFailure= auf Ihren eigenen ntfy-Server ein, damit Sie die Stille auf demselben Telefon erreicht, das die Daten sendet.
Wer den Verlauf einsehen kann und wie dies durchgesetzt wird
Traccar setzt den Zugriff über Benutzer- und Geräteberechtigungen durch: Ein Konto sieht nur die Geräte, die ihm von einem Administrator zugewiesen wurden, und die API verwendet eine Sitzung oder ein Token. OwnTracks über MQTT setzt dies im Broker mittels Topic-ACLs durch. Dies ist die sicherste Methode, da ein Konto, das ein Topic nicht abonnieren kann, dieses auch nicht lesen kann – unabhängig davon, was eine Anwendung versucht. OwnTracks über HTTP besitzt keine vergleichbare Ebene; hier hängt die gesamte Zugriffskontrolle ausschließlich von der Komponente ab, die hinter dem Endpunkt steht. Dawarich ist darauf ausgelegt, dass eine Person ihre eigene Historie einliest. Wenn mehrere Personen sich gegenseitig live verfolgen sollen, sind Traccar oder ein Broker die passendere Wahl.
Familien-Tracking ist sowohl eine Frage der Zustimmung als auch eine technische Entscheidung. Jeder, dessen Telefon Daten veröffentlicht, sollte darüber informiert sein, dass dies geschieht und wie es unterbunden werden kann. Ein Tracker, den eine Person nicht selbst deaktivieren kann, ist kein Feature für die Familie.
Was Self-Hosting nicht löst
- Das Betriebssystem des Telefons entscheidet, wann das GPS aktiviert wird. Daher liegen der Akkuverbrauch und Lücken in der Aufzeichnung meist an diesem und nicht an Ihrem Server.
- Google hat das Exportformat für Timeline-Daten geändert. Lesen Sie die aktuelle Import-Dokumentation von Dawarich, bevor Sie eine Migration planen, da die Datei, die Google heute bereitstellt, nicht mit der übereinstimmt, die vor 2 Jahren importiert wurde.
- Ihr Endpunkt sieht bei jeder Anfrage Ihre mobile IP-Adresse, ebenso wie jedes dazwischenliegende Netzwerk. Self-Hosting ändert lediglich, wer diesen Datensatz speichert. Es entfernt den Datensatz nicht.
- Ein Standortverlauf ist unersetzlich. Sichern Sie die Datenbank, stellen Sie diese einmal wieder her, um die Funktionsfähigkeit des Backups zu prüfen, und bewahren Sie die Kopie verschlüsselt auf, da es sich um die sensibelste Datei auf dem Server handelt.
FAQ
Welche selbst gehostete Anwendung ersetzt die Google Maps Zeitachse?
Dawarich. Es wurde als selbst gehostete Alternative zur Google Zeitachse entwickelt. Es importiert Exporte der Google Maps Zeitachse sowie Daten von OwnTracks, Strava, Immich, GPX, GeoJSON und EXIF-Daten von Fotos. Die Historie wird als Orte und Reisen dargestellt, nicht als Live-Karte. Traccar kann dieselben Punkte speichern, aber die Benutzeroberfläche ist für Flottenmanagement ausgelegt und die Berichte sind entsprechend auf Fahrzeugflotten zugeschnitten. Prüfen Sie die Import-Dokumentation von Dawarich auf das erwartete Exportformat, bevor Sie die Migration planen, da sich das Exportformat von Google geändert hat.
Kann ich OwnTracks ohne einen MQTT-Broker verwenden?
Ja. Stellen Sie die App auf den HTTP-Modus um und geben Sie eine URL im Format http[s]://[user[:password]@]host[:port]/path an, was für den OwnTracks Recorder /pub entspricht. Die App sendet dieselbe JSON-Nutzlast, authentifiziert über HTTP Basic. OwnTracks empfiehlt dringend das https://-Schema. Fügen Sie später einen Broker hinzu, wenn zwei Dienste gleichzeitig denselben Datenstrom benötigen oder wenn Sie eine zugriffsbasierte Steuerung pro Topic wünschen, bei der der Broker entscheidet, wer welche Daten sehen darf.
Wie viel Speicherplatz benötigt ein Jahr Standortverlauf?
Planen Sie in Zeilen statt in Gigabyte. Ein Bericht pro Minute entspricht 525,600 Zeilen pro Jahr und Telefon; ein Bericht alle fünfzehn Minuten entspricht 35,040. Beides ist für PostgreSQL eine geringe Datenmenge. Die praktische Grenze liegt beim Browser, der ein Jahr an Punkten auf einer Karte darstellen muss; deshalb aggregieren diese Anwendungen die Daten. Messen Sie Ihre eigene Tabelle nach einem Monat mit pg_total_relation_size und multiplizieren Sie den Wert mit zwölf.
Warum weist mein Standortverlauf Lücken auf?
Das Betriebssystem des Telefons entscheidet, wann das GPS aktiviert wird und wann eine Hintergrundanwendung gestoppt wird; dort entstehen die meisten Lücken. Erteilen Sie der App die Berechtigung für den Standortzugriff im Hintergrund für die gesamte Zeit, schließen Sie sie von der Batterieoptimierung aus und prüfen Sie den Berichtsmodus. Im OwnTracks-Modus "Move" erfolgt die Übertragung alle locatorDisplacement Meter oder locatorInterval Sekunden (Standard sind 100 Meter und 300 Sekunden). Dies verbraucht so viel Akku wie eine Navigations-App. Wenn Zeilen verspätet in einem Schwung mit alten Zeitstempeln eintreffen, handelt es sich um das Leeren des Offline-Puffers; die Standortdaten wurden also erfasst, nur der Upload war verzögert.
Reicht eine geheime URL aus, um einen Standort-Endpunkt zu schützen?
Nein. Ein nicht authentifizierter Ingest-Endpunkt erlaubt jedem, der die URL kennt, falsche Punkte in Ihre Historie zu schreiben. Eine URL ist kein Geheimnis: Sie steht in den App-Einstellungen, in Ihrem Reverse-Proxy-Zugriffslog, in Ihrem Browserverlauf und auf jedem Screenshot, den Sie teilen. Der Hostname ist zudem leicht auffindbar, da ein neues Zertifikat kurz nach der Ausstellung in den Certificate-Transparency-Logs erscheint. Verwenden Sie HTTP Basic über TLS oder einen API-Key, begrenzen Sie die Rate für den Ingest-Pfad und schützen Sie die Admin-Oberfläche mit derselben Authentifizierung.