>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

Colota zamienia Androida w prywatny tracker GPS na własny serwer

Colota Banner

Kiedy Google ogłosił zamknięcie webowej wersji Timeline i wymusił migrację całej historii lokalizacji wyłącznie do aplikacji mobilnej, wiele osób zaczęło szukać alternatyw. Przechowywanie lat danych o podróżach w zastrzeżonej bazie na telefonie bez odpowiedniego dostępu przez przeglądarkę to wątpliwa przyjemność.

Skonfigurowanie Traccar, OwnTracks lub Dawarich na domowym serwerze jest proste — kontenery wdrażają się w kilka minut. Prawdziwe wyzwanie pojawia się przy wyborze klienta mobilnego. Większość istniejących rozwiązań na Androida wygląda na porzucone od czasów Androida 4.4 lub wyczerpuje baterię nadmiernym odpytywaniem GPS.

Niedawno odkryłem Colota, która rozwiązuje dokładnie ten problem z zaskakującą dbałością o szczegóły.

Co potrafi aplikacja

Colota to open-source'owy klient śledzenia geolokalizacji na Androida (AGPL-3.0). W przeciwieństwie do typowych trackerów, nie jest zablokowany na jedną usługę — może wysyłać współrzędne do OwnTracks, Dawarich, GeoPulse, Home Assistant, PhoneTrack, Traccar lub dowolnego niestandardowego backendu przez standardowy HTTP REST API.

Dashboard Location History (Map) Trip Details Trips
Dashboard Historia na mapie Szczegóły podróży Lista podróży

W aplikacji nie ma żadnych SDK reklamowych, systemów analityki ani ukrytej telemetrii. Dostępne są dwie warianty builda: standardowy z Google Play Services i w pełni otwarty build FOSS dla F-Droid z całkowicie usuniętymi usługami Google.

Automatyczne profile śledzenia

Głównym wyzwaniem przy każdym trackerze działającym w tle jest zużycie baterii. Odpytywanie GPS co sekundę rozładuje telefon do południa, podczas gdy odpytywanie co dziesięć minut tworzy poszarpane, kanciaste ślady na mapie.

Colota rozwiązuje to przez profile. Definiujesz reguły, które dostosowują częstotliwość odpytywania satelitów i filtrowanie odległości na podstawie kontekstu:

  • Połączenie ze stereo samochodowym lub ładowarką przełącza na nagrywanie o wysokiej dokładności;
  • Gdy jesteś w miejscu, nagrywanie przechodzi w stan uśpienia, oszczędzając baterię;
  • Przekroczenie progu prędkości automatycznie zwiększa częstotliwość transmisji punktów.

Strefy prywatności i geofence'y

Jeśli nie chcesz śledzić ruchów w domu lub biurze, możesz skonfigurować strefy pauzy. Po wejściu w zdefiniowany promień geofence, nagrywanie współrzędnych automatycznie się zatrzymuje. Oszczędza to miejsce w bazie danych i baterię.

Settings TrackingProfiles Authentication Dark Mode
Ustawienia Profile śledzenia Uwierzytelnianie Ciemny motyw

Tryb autonomiczny i lokalne mapy

Serwer nie jest wymagany. Colota może działać jako autonomiczny lokalny rejestrator:

  • Pobiera mapy offline bezpośrednio na urządzenie;
  • Dzieli podróże na dni z ręcznym scalanie i dzieleniem śladów;
  • Eksportuje dane do GPX, KML, GeoJSON i CSV według harmonogramu;
  • Tworzy szyfrowane kopie zapasowe całej bazy danych lokalnie lub według harmonogramu do wybranego folderu.

Gdy internet jest niedostępny podczas roamingu lub w odległych obszarach, punkty gromadzą się w kolejce i synchronizują z serwerem partiami po przywróceniu łączności lub połączeniu z domowym Wi-Fi.

Jak zbudowany jest projekt

Repozytorium jest zbudowane jako monorepo TypeScript z React Native jako silnikiem.

Budowanie ze źródeł wymaga Node.js 24, Android SDK i 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

Jeśli chodzi o bezpieczeństwo, wsparcie dla mutual TLS (mTLS) to mile widziany dodatek. Certyfikat PKCS12 jest przechowywany bezpośrednio w Android Keystore, umożliwiając zabezpieczenie endpointów serwera na poziomie uzgadniania TLS.

Praktyczne przypadki użycia

Najprostszym przypadkiem użycia jest sparowanie z Home Assistant. Aplikacja wysyła zdarzenia wejścia i wyjścia ze strefy, aktualizuje współrzędne urządzenia device_tracker i eliminuje potrzebę ciągłego działania w tle ciężkiego oficjalnego klienta smart home.

Inną opcją jest zastąpienie Google Timeline przez Dawarich lub Traccar, co daje wizualną mapę wszystkich podróży na przestrzeni lat, mapy ciepła odwiedzonych miast i pełną własność danych osobowych.

Konfiguracja telefonu zajmuje tylko kilka minut: instalacja APK, przyznanie stałego dostępu do lokalizacji i wyłączenie optymalizacji baterii dla aplikacji. W przypadku wielu urządzeń konfiguracja przenosi się przez kod QR lub schemat colota://setup.

Dla kogo to jest

Colota przyciąga użytkowników dbających o prywatność, którzy prowadzą własny homelab i są sfrustrowani ograniczeniami usług komercyjnych. Choć stosunkowo nowa, podstawowa funkcjonalność śledzenia jest już solidna.

Jedno zastrzeżenie: na razie nie ma wersji na iOS, ponieważ projekt koncentruje się wyłącznie na Androidzie. Poza tym to silny przykład tego, czym powinien być nowoczesny samohostowany tool.

Powiązane projekty