W dzisiejszych czasach wiele osób korzysta z aplikacji do śledzenia lokalizacji, takich jak Life360, aby wiedzieć, gdzie są członkowie rodziny. Są one wygodne, ale wiążą się z oddaniem swoich danych o lokalizacji firmie zewnętrznej. OwnTracks to alternatywa typu open-source, która pozwala na stworzenie własnego, prywatnego serwera lokalizacji, dając Ci pełną kontrolę nad Twoimi danymi.
W tym przewodniku pokażemy, jak zainstalować i skonfigurować OwnTracks na serwerze TrueNAS SCALE, używając funkcji „Custom App”. Skupimy się na prostszym trybie komunikacji HTTP, który okazał się mniej problematyczny w środowiskach kontenerowych niż MQTT z WebSocket. Skonfigurujemy również bezpieczny dostęp z zewnątrz za pomocą Nginx Proxy Manager i Cloudflare.
OwnTracks vs. Life360: Krótkie Porównanie
Zanim zaczniemy, warto zrozumieć kluczowe różnice:
OwnTracks:
- Zalety:
- Prywatność: Twoje dane o lokalizacji są przechowywane tylko na Twoim serwerze. Nikt inny nie ma do nich dostępu.
- Kontrola: Pełna kontrola nad serwerem, danymi i sposobem ich wykorzystania.
- Darmowy i Open Source: Brak opłat abonamentowych, kod źródłowy jest otwarty.
- Elastyczność: Możliwość integracji z innymi systemami automatyki domowej (np. Home Assistant).
- Wady:
- Wymaga własnego serwera: Konieczność posiadania i zarządzania serwerem (np. TrueNAS).
- Konfiguracja: Instalacja i konfiguracja wymagają pewnej wiedzy technicznej (którą zdobędziesz w tym przewodniku!).
- Brak niektórych funkcji społecznościowych: Mniej „wypolerowany” interfejs i brak niektórych funkcji znanych z Life360 (np. raporty jazdy, wykrywanie wypadków – choć to może być też zaleta pod względem prywatności).
Life360:
- Zalety:
- Łatwość użycia: Bardzo prosta instalacja i konfiguracja.
- Bogactwo funkcji: Dodatkowe opcje, takie jak wykrywanie wypadków, raporty jazdy, przyciski SOS.
- Nie wymaga własnego serwera: Wszystko działa w chmurze.
- Wady:
- Prywatność: Twoje dane o lokalizacji są przechowywane i przetwarzane przez firmę zewnętrzną, która może je analizować lub udostępniać.
- Koszty: Wiele zaawansowanych funkcji wymaga płatnej subskrypcji.
- Brak kontroli: Jesteś zależny od polityki prywatności i działania usług firmy.
Jeśli cenisz sobie prywatność i masz już serwer TrueNAS, OwnTracks jest doskonałym wyborem.
Wymagania Wstępne
Zanim zaczniesz, upewnij się, że masz:
- System TrueNAS SCALE: Ten przewodnik dotyczy wersji SCALE.
- Domenę internetową: Będziesz potrzebować własnej domeny (np.
twojadomena.com). - Dostęp do zarządzania DNS domeny: W tym przewodniku użyjemy Cloudflare.
- Nginx Proxy Manager: Zainstalowany i działający jako aplikacja na TrueNAS.
- Publiczny adres IP: Lub skonfigurowany Dynamiczny DNS (DDNS).
- (Zalecane) Przekierowane porty: Porty 80 i 443 przekierowane na adres IP Twojego Nginx Proxy Manager w Twojej sieci lokalnej.
Krok 1: Instalacja Komponentów na TrueNAS
W tej konfiguracji potrzebujemy dwóch aplikacji działających jako kontenery:
- Mosquitto: Broker MQTT. Mimo że będziemy używać trybu HTTP do wysyłania danych z telefonów,
owntracks/recordernadal wymaga połączenia z brokerem MQTT do swojego wewnętrznego działania. Skonfigurujemy go tak, aby zezwalał na anonimowe połączenia z sieci lokalnej. - OwnTracks Recorder: Aplikacja odbierająca dane (przez HTTP) i udostępniająca interfejs webowy z mapą.
Instalacja Mosquitto
- Przejdź do Aplikacji: W interfejsie TrueNAS przejdź do
Apps. - Znajdź Mosquitto: Wyszukaj aplikację
Mosquitto(najczęściej dostępna w katalogu TrueCharts) i kliknijInstall. - Konfiguracja Mosquitto:
Application Name: np.mosquitto- Eclipse Mosquitto Configuration:
Timezone: Wybierz swoją strefę czasową.Enable Persistence: Zaznacz, aby zachować dane między restartami.Allow Anonymous: Zaznacz. Ponieważ Mosquitto nie będzie wystawiony na zewnątrz, a komunikacja z OwnTracks Recorder odbywa się w sieci lokalnej, możemy uprościć konfigurację, zezwalając na anonimowe połączenia.
- User and Group Configuration: Możesz zostawić domyślne (np.
568). - Network Configuration:
- Broker Port: Upewnij się, że
Port Numberto1883. Nie wystawiaj tego portu na zewnątrz (nie przekierowuj go na routerze ani nie konfiguruj w NPM). - Web Sockets Port: Możesz zostawić domyślne lub wyłączyć. Nie jest potrzebny w tej konfiguracji.
- Broker Port: Upewnij się, że
- Storage Configuration:
- Skonfiguruj
Host PathdlaMosquitto Data StorageiMosquitto Config Storage, tworząc wcześniej odpowiednie datasety (np./mnt/TWOJA_PULA/apps/mosquitto/datai/mnt/TWOJA_PULA/apps/mosquitto/config). Upewnij się, że grupaappsma do nich uprawnienia zapisu.
- Skonfiguruj
- (Pomiń) Sekcja
Security Configurationlub dodawanie użytkowników nie jest potrzebna, jeśli zaznaczyłeśAllow Anonymous. - Resources Configuration: Ustaw niskie limity:
Limits CPUs:0.25Memory (in MB):128
- Kliknij
Install. Po chwili aplikacjamosquittopowinna mieć statusRunning.
Instalacja OwnTracks Recorder (Custom App)
- Wybierz Custom App: Wróć do
Apps->Discover Apps->Custom App. - Podstawowa Konfiguracja:
Application Name:owntracks
- Image Configuration:
Repository:owntracks/recorderTag:latestPull Policy:Pull image if not already present...
- Container Configuration:
Timezone: Wybierz swoją strefę czasową.- Environment Variables: Kliknij
Addcztery razy, aby dodać zmienne:- Do połączenia z Mosquitto (tryb anonimowy):
- Name: OTR_MQTT_HOSTValue: Wpisz adres IP Twojego serwera TrueNAS (np. 192.168.0.13). Nie localhost!
- Name: OTR_MQTT_PORTValue: 1883
- (Usuń/Nie dodawaj)
OTR_MQTT_USERiOTR_MQTT_PASSnie są potrzebne.
- Do uwierzytelniania HTTP
/pub:- Name: OTR_USERValue: Wybierz nazwę użytkownika dla HTTP (np. admin_owntracks). Ważne: Używaj tylko liter i cyfr!
- Name: OTR_PASSValue: Wybierz silne hasło dla HTTP. Ważne: Używaj tylko liter i cyfr!
- Do połączenia z Mosquitto (tryb anonimowy):
Restart Policy: Zmień naAlways.
- Network Configuration:
- Kliknij
AddprzyPorts. Container Port:8083Node Port: np.38083(upewnij się, że jest wolny).Protocol:TCP
- Kliknij
- Storage Configuration:
- Utwórz Datasety:
/mnt/TWOJA_PULA/apps/owntracks/configi/mnt/TWOJA_PULA/apps/owntracks/store. - Ustaw Uprawnienia: Grupa
appsmusi mieć prawo zapisu. - Dodaj Woluminy:
/config->Host Pathdo datasetuconfig./store->Host Pathdo datasetustore.
- Utwórz Datasety:
- Resources Configuration:
Enable Resource Limits: Zaznaczone.Limits CPUs:0.5lub1.Memory (in MB):256lub512.
- (Opcjonalnie) Portal Configuration: Skonfiguruj jak poprzednio, używając Node Port (np. 38083).*
- Instalacja: Kliknij
Install. Aplikacjaowntrackspowinna uruchomić się i połączyć anonimowo zmosquitto. Sprawdź logi obu aplikacji, aby upewnić się, że nie ma błędówConnection refused. W logach Mosquitto powinieneś zobaczyć połączenie bez nazwy użytkownika.
Krok 2: Konfiguracja Cloudflare
Upewnij się, że masz rekord DNS typu A dla subdomeny (np. owntracks), wskazujący na Twój publiczny adres IP.
- Proxy status: Ustaw na
DNS only(szara chmurka).
Krok 3: Konfiguracja Nginx Proxy Manager (NPM)
Konfiguracja pozostaje taka sama jak poprzednio:
- Utwórz Listę Dostępu (
Access Lists) z użytkownikiem i hasłem do ochrony mapy. - Utwórz Proxy Host:
- Details: Domena (
owntracks.twojadomena.com), Schemehttp, Forward IP (TrueNAS IP), Forward Port (38083), włączBlock Common ExploitsiWebsockets Support. - SSL: Wybierz ważny certyfikat (najlepiej przez
DNS Challenge), włączForce SSL,HTTP/2,HSTS. - Access List: Wybierz utworzoną listę dostępu.
- Zapisz.
- Details: Domena (
Krok 4: Konfiguracja Aplikacji Mobilnej (iOS/Android)
Konfiguracja aplikacji mobilnej również pozostaje taka sama:
- Pobierz i zainstaluj aplikację OwnTracks.
- Ustawienia Połączenia:
- Mode:
HTTP. - URL:
https://owntracks.twojadomena.com/pub - Authentication: Włączone.
- UserID: Nazwa użytkownika z
OTR_USER. - Password: Hasło z
OTR_PASS(tylko litery/cyfry).
- Mode:
- Ustawienia Identyfikacji:
- UserID: Unikalna nazwa osoby (np.
jan). - DeviceID: Unikalna nazwa urządzenia (np.
telefon_jana). - (Opcjonalnie) TrackerID (tid): Krótki identyfikator (np.
J).
- UserID: Unikalna nazwa osoby (np.
- Zapisz Ustawienia.
Krok 5: Wybór Trybu Pracy (Monitoring Mode)
Aplikacja OwnTracks oferuje kilka trybów raportowania lokalizacji, które różnią się częstotliwością aktualizacji i zużyciem baterii. Możesz je dostosować w ustawieniach aplikacji mobilnej (zazwyczaj w sekcji Preferences -> Reporting lub podobnej):
- Significant Location Change Mode (Tryb Znaczącej Zmiany Lokalizacji):
- Działanie: Aplikacja polega na systemie operacyjnym telefonu (iOS/Android), aby powiadomić ją o znaczącej zmianie lokalizacji (np. zmiana masztu komórkowego). System decyduje, co jest „znaczące”.
- Zalety: Najbardziej oszczędny pod względem zużycia baterii. Idealny, jeśli nie potrzebujesz śledzenia w czasie rzeczywistym, a jedynie ogólnej informacji o przemieszczaniu się.
- Wady: Aktualizacje mogą być rzadkie i mniej precyzyjne. Lokalizacja może nie być aktualizowana przez dłuższy czas, jeśli telefon nie uzna zmiany za „znaczącą”.
- Move Mode (Tryb Ruchu):
- Działanie: Aplikacja używa czujników ruchu telefonu (akcelerometr), aby wykryć, że urządzenie się porusza. Kiedy wykryje ruch, częściej sprawdza lokalizację GPS i wysyła aktualizacje. Kiedy urządzenie jest nieruchome, przechodzi w tryb oszczędzania energii.
- Zalety: Dobry kompromis między dokładnością a zużyciem baterii. Zapewnia częstsze aktualizacje podczas podróży.
- Wady: Zużywa więcej baterii niż tryb Significant Change, zwłaszcza jeśli często się poruszasz.
- Manual Mode (Tryb Ręczny):
- Działanie: Aplikacja wysyła aktualizację lokalizacji tylko wtedy, gdy ręcznie naciśniesz przycisk „Publish” (Publikuj) w interfejsie aplikacji.
- Zalety: Daje pełną kontrolę nad tym, kiedy Twoja lokalizacja jest udostępniana. Minimalne zużycie baterii związane ze śledzeniem.
- Wady: Brak automatycznego śledzenia. Wymaga interakcji użytkownika.
Wybór trybu zależy od Twoich potrzeb. Dla większości użytkowników Move Mode oferuje najlepszy balans.
Aspekty Bezpieczeństwa
Skoro hostujesz własny serwer lokalizacji, bezpieczeństwo jest kluczowe. Oto jak zadbaliśmy o nie w tej konfiguracji:
- Szyfrowanie Transportu (TLS/SSL):
- Używając Nginx Proxy Manager z certyfikatem Let’s Encrypt, cała komunikacja odbywa się przez HTTPS, chroniąc dane przed podsłuchem.
- Włącz
Force SSLw NPM.
- Uwierzytelnianie Punktu Końcowego (
/pub):- Zmienne
OTR_USERiOTR_PASSw kontenerzeowntracks/recorderwłączają HTTP Basic Auth, wymagając loginu i hasła do wysyłania danych. - Używaj silnego hasła bez znaków specjalnych.
- Zmienne
- Ochrona Dostępu do Mapy:
- Access List w Nginx Proxy Manager dodaje drugą warstwę uwierzytelniania wymaganą do przeglądania mapy.
- Komunikacja Lokalna Mosquitto:
- Broker Mosquitto skonfigurowany jest do akceptowania anonimowych połączeń, ale nie jest wystawiony na zewnątrz. Dostęp do niego ma tylko kontener
owntracks/recorderw tej samej sieci wewnętrznej TrueNAS, co minimalizuje ryzyko.
- Broker Mosquitto skonfigurowany jest do akceptowania anonimowych połączeń, ale nie jest wystawiony na zewnątrz. Dostęp do niego ma tylko kontener
- Kontrola nad Danymi:
- Twoje dane nigdy nie opuszczają Twojego serwera. Masz pełną kontrolę.
- (Opcjonalnie) Szyfrowanie End-to-End (Payload Encryption):
- Możesz włączyć szyfrowanie danych lokalizacji w aplikacji mobilnej (
Secret encryption key). Dane będą przechowywane na serwerze w postaci zaszyfrowanej. Wymaga to ręcznego odszyfrowania po stronie klienta lub w zintegrowanych systemach.
- Możesz włączyć szyfrowanie danych lokalizacji w aplikacji mobilnej (

Informacja o Quick Setup
W dokumentacji OwnTracks możesz znaleźć metodę instalacji o nazwie „Quick Setup”. Jest to zestaw skryptów do szybkiego wdrożenia kompletnego środowiska OwnTracks (MQTT + Recorder) na standardowym serwerze VPS.
Dlaczego nie użyliśmy Quick Setup na TrueNAS?
- Zarządzanie Kontenerami: TrueNAS SCALE ma własny system zarządzania aplikacjami. Używanie „Custom App” i oficjalnych aplikacji (jak Mosquitto z TrueCharts) jest bardziej zintegrowane i natywne.
- Elastyczność: Metoda „Custom App” daje większą kontrolę nad konfiguracją poszczególnych komponentów i zasobów.
- Środowisko: Skrypty Quick Setup są optymalizowane dla typowych systemów Linux, a nie specyficznego środowiska TrueNAS SCALE.
Instalacja przez „Custom App” i aplikacje z katalogów jest bardziej odpowiednia dla TrueNAS SCALE.
Dodawanie Członków Rodziny
Powtórz Krok 4 na telefonie członka rodziny:
- Użyj tych samych danych w sekcji Połączenie (URL,
OTR_USER,OTR_PASS). - Ustaw unikalne wartości w sekcji Identyfikacja (
UserID,DeviceID,TrackerID).
Rozwiązywanie Problemów
- Aplikacja nie łączy się (HTTP):
- Sprawdź URL (
/pub!), UserID, Password (bez znaków specjalnych!). - Sprawdź status rekordu DNS w Cloudflare („DNS only”).
- Sprawdź logi
owntracksi aplikacji mobilnej.
- Sprawdź URL (
- Błędy
Connection refusedw logachowntracks:- Upewnij się, że kontener
Mosquittodziała. - Sprawdź, czy zmienne
OTR_MQTT_HOSTiOTR_MQTT_PORTw konfiguracjiowntrackswskazują poprawny adres IP TrueNAS i port (1883). Sprawdź, czy nie ma zmiennychOTR_MQTT_USERiOTR_MQTT_PASS.
- Upewnij się, że kontener
- Nie widać mapy (błąd 401, 403):
- Loguj się do mapy danymi z Access List w NPM.
- Nie widać mapy (błąd 502, 504):
- Sprawdź, czy kontener
owntracksdziała. - Sprawdź konfigurację Proxy Host w NPM.
- Sprawdź, czy kontener
Podsumowanie
Gratulacje! Skonfigurowałeś swój własny, prywatny serwer lokalizacji OwnTracks na TrueNAS. Uproszczona konfiguracja Mosquitto z dostępem anonimowym w sieci lokalnej, w połączeniu z komunikacją przez HTTP i zabezpieczeniami Nginx Proxy Manager, zapewniają wygodne i bezpieczne rozwiązanie. Ciesz się kontrolą nad swoimi danymi o lokalizacji!





Dodaj komentarz