>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
TypeScript

Colota macht Android zum privaten GPS-Tracker für den eigenen Server

Colota Banner

Als Google die Einstellung der Web-Version von Timeline ankündigte und die Migration des gesamten Standortverlaufs ausschließlich in die mobile App zwang, begannen viele, nach Alternativen zu suchen. Jahrelange Reisehistorie in einer proprietären Datenbank auf dem Handy zu speichern, ohne properen Browser-Zugriff, ist ein zweifelhaftes Vergnügen.

Traccar, OwnTracks oder Dawarich auf einem Heimserver einzurichten, ist unkompliziert – Container sind in Minuten deployed. Die eigentliche Herausforderung ergibt sich bei der Auswahl eines mobilen Clients. Die meisten bestehenden Android-Lösungen sehen seit der Android-4.4-Ära entweder verlassen aus oder entladen den Akku durch übermäßiges GPS-Polling.

Ich habe kürzlich Colota entdeckt, das dieses Problem mit überraschender Eleganz angeht.

Was die App kann

Colota ist ein Open-Source-Android-Geolokalisierungs-Tracking-Client (AGPL-3.0). Anders als typische Tracker ist er nicht an einen einzelnen Dienst gebunden – er kann Koordinaten an OwnTracks, Dawarich, GeoPulse, Home Assistant, PhoneTrack, Traccar oder jedes beliebige Backend über die standardmäßige HTTP-REST-API senden.

Dashboard Location History (Map) Trip Details Trips
Dashboard Verlauf auf der Karte Reisedetails Reiseliste

Innerhalb der App gibt es keine Werbe-SDKs, Analysesysteme oder versteckte Telemetrie. Zwei Build-Varianten sind verfügbar: die Standardvariante mit Google Play Services und ein vollständig offener FOSS-Build für F-Droid, bei dem Google-Dienste komplett entfernt wurden.

Automatische Tracking-Profile

Die Kernherausforderung bei jedem Hintergrund-Tracker ist der Akkuverbrauch. GPS alle Sekunde abzufragen, entlädt das Handy bis zum Mittag, während das Abfragen alle zehn Minuten eckige, abgehackte Tracks auf der Karte erzeugt.

Colota begegnet dem durch Profile. Man definiert Regeln, die die Satelliten-Abfragefrequenz und Entfernungsfilterung basierend auf dem Kontext anpassen:

  • Beim Anschließen an ein Autoradio oder Ladegerät wird zu hochpräziser Aufzeichnung gewechselt;
  • Im stationären Zustand schläft die Aufzeichnung, um Akku zu sparen;
  • Bei Überschreiten eines Geschwindigkeitsschwellenwerts wird die Punktübertragungsfrequenz automatisch erhöht.

Datenschutzzonen und Geofences

Wenn man keine Bewegungen zu Hause oder im Büro verfolgen möchte, kann man Pausenzonen konfigurieren. Sobald man einen definierten Geofence-Radius betritt, stoppt die Koordinatenaufzeichnung automatisch. Das spart sowohl Datenbankplatz als auch Akku.

Settings TrackingProfiles Authentication Dark Mode
Einstellungen Tracking-Profile Authentifizierung Dunkles Design

Autarker Modus und lokale Karten

Ein Server ist nicht erforderlich. Colota kann als eigenständiger lokaler Logger betrieben werden:

  • Lädt Offline-Karten direkt auf das Gerät herunter;
  • Teilt Reisen nach Tagen mit manuellem Zusammenführen und Aufteilen von Tracks;
  • Exportiert Daten nach GPX, KML, GeoJSON und CSV nach Zeitplan;
  • Erstellt verschlüsselte Backups der gesamten Datenbank lokal oder nach Zeitplan in einen gewählten Ordner.

Wenn das Internet bei Roaming oder in abgelegenen Gebieten nicht verfügbar ist, sammeln sich Punkte in einer Warteschlange an und synchronisieren in Batches zum Server, sobald die Verbindung wiederhergestellt ist oder man sich mit dem Heim-WLAN verbindet.

Wie das Projekt aufgebaut ist

Das Repository ist als TypeScript-Monorepo mit React Native strukturiert.

Das Bauen aus dem Quellcode erfordert Node.js 24, Android SDK und JDK 17:

git clone https://github.com/dietrichmax/colota.git
cd colota
npm ci
npm run build -w @colota/shared
cd apps/mobile/android

# Сборка под Google Play
./gradlew assembleGmsRelease

# Чистая FOSS-сборка без сервисов Google
./gradlew assembleFossRelease

Bei der Sicherheit ist die Unterstützung von Mutual TLS (mTLS) eine willkommene Ergänzung. Das PKCS12-Zertifikat wird direkt im Android-Keystore gespeichert, sodass Server-Endpunkte auf TLS-Handshake-Ebene gesichert werden können.

Praktische Anwendungsfälle

Der unkomplizierteste Anwendungsfall ist die Kopplung mit Home Assistant. Die App sendet Zonenbetritts- und Zoneaustritts-Events, aktualisiert Gerätekoordinaten device_tracker und macht den schwergewichtigen offiziellen Smart-Home-Client überflüssig, der ständig im Hintergrund läuft.

Eine weitere Option ist das Ersetzen von Google Timeline durch Dawarich oder Traccar, um eine visuelle Karte aller Reisen über die Jahre, Heatmaps besuchter Städte und vollständige Kontrolle über die eigenen Daten zu erhalten.

Die Einrichtung des Telefons dauert nur wenige Minuten: APK installieren, dauerhaften Standortzugriff gewähren und Batterieoptimierung für die App deaktivieren. Für mehrere Geräte überträgt man die Konfiguration per QR-Code oder Schema colota://setup.

Für wen es geeignet ist

Colota spricht datenschutzbewusste Nutzer an, die ihr eigenes Homelab betreiben und von den Einschränkungen kommerzieller Dienste frustriert sind. Obwohl es noch relativ neu ist, ist die Kern-Tracking-Funktionalität bereits solide.

Ein Hinweis: Es gibt noch keine iOS-Version, da sich das Projekt ausschließlich auf Android konzentriert. Abgesehen davon ist es ein starkes Beispiel dafür, wie ein modernes Self-Hosted-Tool aussehen sollte.

Ähnliche Projekte