Jak hostować Fathom Lite samodzielnie w 2026 roku: skrypt śledzący, SQLite i prywatność
Praktyczny poradnik samodzielnego hostowania Fathom Lite obejmujący Docker, porty, trwałość danych, TLS, bezpieczeństwo, backupy i problemy blokujące użycie produkcyjne.
Istnieją dwie wersje „uruchomienia Fathom Lite”: istnieje kontener albo usługa wykonuje swoje rzeczywiste zadanie. Liczy się tylko ta druga. Dowodem jest dodanie witryny, załadowanie skryptu śledzącego na stronie testowej, wygenerowanie wizyt i potwierdzenie, że dashboard rejestruje je bez cookies.
Fathom Lite służy do bezcookiesowej, samodzielnie hostowanej analityki odsłon. Wdrożenie musi zachować elementy, które odpowiadają za to działanie; port, volume i certyfikat to dane wejściowe, a nie rezultat.
Dane uwierzytelniające, role i powierzchnie ekspozycji
W przypadku Fathom Lite najważniejszą powierzchnią niekoniecznie jest landing page. Najczęstszy błąd to ponowne użycie przykładowego sekretu albo udostępnienie logowania administratora bez TLS. Przeciwdziałaj temu celowo: zabezpiecz logowanie do analityki, zachowaj stabilność application secret i publikuj skrypt wyłącznie z oczekiwanego hosta HTTPS.
Traktuj FATHOM_SECRET zgodnie z jego rolą w Fathom Lite: przechowuj wrażliwe wartości poza Git, opisz skutki rotacji i nigdy nie zastępuj publicznego przykładu wartością produkcyjną. Używaj nieuprzywilejowanego użytkownika kontenera, jeśli image go obsługuje, i nie montuj niezwiązanych z usługą danych uwierzytelniających. Stosuj limity rate lub rozmiaru na ingress, gdy niezaufane operacje mogą zużywać limit zapisu odsłon, indeksy bazy danych, retencję i ścieżkę sieciową z przeglądarek odwiedzających.
Oddziel Fathom Lite od zależności
Najmniejsza odpowiedzialna topologia Fathom Lite obejmuje jeden prywatny listener na porcie 8080, trasę ingress i udokumentowaną granicę stanu. Kontrakt sieciowy Fathom Lite obejmuje SQLite albo obsługiwaną zewnętrzną bazę danych oraz prawidłowe umieszczenie skryptu po stronie witryny klienta. Prywatne endpointy pozostaw w wewnętrznym DNS, zezwalaj tylko na wymagane połączenia wychodzące i nadaj Fathom Lite ograniczone uprawnienia service credential.
Zweryfikuj topologię, prosząc czystego klienta o dodanie witryny, załadowanie skryptu śledzącego na stronie testowej, wygenerowanie wizyt i potwierdzenie, że dashboard rejestruje je bez cookies. Obserwuj podczas działania limit zapisu odsłon, indeksy bazy danych, retencję i ścieżkę sieciową z przeglądarek odwiedzających. Wynik pokaże, czy kolejnego usprawnienia należy szukać w pamięci, storage, sieci czy osobnym workerze, zamiast zachęcać do arbitralnego dobierania rozmiaru kontenera.
Bazowa konfiguracja Docker dla Fathom Lite
Minimalne polecenie jest przydatne, gdy pokazuje, czym platforma będzie później zarządzać.
docker run -d \
--name fathom-lite \
--restart unless-stopped \
-p 127.0.0.1:8080:8080 \
-v fathom-lite-data:/app \
-e FATHOM_SECRET=replace-with-a-long-random-value \
-e FATHOM_SERVER_ADDR=:8080 \
-e FATHOM_DATABASE_DRIVER=sqlite3 \
-e FATHOM_DATABASE_NAME=/app/fathom.db \
usefathom/fathom:latest
Port 8080 pozostaje tutaj prywatny dla hosta, a każda wymagana ścieżka jest jawnie określona. Dodaj zweryfikowane ustawienia połączenia dla SQLite albo obsługiwanej zewnętrznej bazy danych oraz prawidłowe umieszczenie skryptu po stronie witryny klienta; dla prywatnych usług używaj prywatnych nazw. Zweryfikuj uruchomienie zarówno w logach, jak i za pomocą dowodu specyficznego dla aplikacji: dodaj witrynę, załaduj skrypt śledzący na stronie testowej, wygeneruj wizyty i potwierdź, że dashboard rejestruje je bez cookies. Po weryfikacji przypnij wersję image, aby zwykła podmiana nie zmieniła po cichu zachowania usługi.
Zweryfikuj wdrożenie Fathom Lite od początku do końca
Utwórz niewielkie, tymczasowe środowisko Fathom Lite i zachowaj je na potrzeby każdego release'u. Fixture powinno obejmować rzeczywisty workflow: dodanie witryny, załadowanie skryptu śledzącego na stronie testowej, wygenerowanie wizyt i potwierdzenie, że dashboard rejestruje je bez cookies. Zapisz digest image, zewnętrzny hostname, adres zależności i oczekiwany wynik, aby kolejny operator mógł powtórzyć test bez interpretowania tego poradnika.
Uruchom fixture trzy razy. Najpierw użyj świeżego wdrożenia. Następnie podmień kontener bez zmiany trwałego stanu. Na końcu odtwórz backup w pustym środowisku. Trzeci przebieg kończy się powodzeniem tylko wtedy, gdy witryny, użytkownicy i historyczne odsłony powrócą, a po odzyskaniu pojawi się nowa wizyta testowa. Podczas każdego przebiegu rejestruj opóźnienia i zużycie zasobów w kontekście limitu zapisu odsłon, indeksów bazy danych, retencji i ścieżki sieciowej z przeglądarek odwiedzających; stanie się to bazą dla alertów zamiast arbitralnego procentowego limitu CPU.
Na koniec celowo przetestuj ścieżkę błędu: tymczasowo odbierz testowej tożsamości dostęp do SQLite albo obsługiwanej zewnętrznej bazy danych i prawidłowego umieszczenia skryptu po stronie witryny klienta. Potwierdź, że Fathom Lite kończy działanie w widoczny sposób bez uszkodzenia stanu, przywróć prawidłowe warunki i powtórz pomyślną transakcję. Rekord release'u zawierający te cztery wyniki jest silniejszym dowodem niż zrzuty ekranu dashboardu albo jednorazowa odpowiedź curl.
Zachowaj porządek między wewnętrznymi i zewnętrznymi URL-ami
Publiczną granicą Fathom Lite powinien być jeden kanoniczny hostname, automatyczny TLS i jeden wewnętrzny target na porcie 8080. Ustaw adres serwera oraz publiczny endpoint HTTPS używany przez skrypt śledzący, aby klienci wracali pod adres rozpoznawany przez usługę.
Jeśli transakcja akceptacyjna kończy się niepowodzeniem, sklasyfikuj pierwszy błąd. Problemy z DNS, certyfikatem i 502 należą do listy kontrolnej walidacji TLS. Warunek „skrypt śledzący wskazuje niewłaściwy hostname albo ścieżka bazy danych jest efemeryczna” należy do strony aplikacji, gdy żądanie poprawnie dotarło już do Fathom Lite.
Ćwiczenia awarii dla Fathom Lite
Testy wydajnościowe powinny obejmować limit zapisu odsłon, indeksy bazy danych, retencję i ścieżkę sieciową z przeglądarek odwiedzających, a nie powtarzane żądanie do /. Uruchom scenariusz „dodaj witrynę, załaduj skrypt śledzący na stronie testowej, wygeneruj wizyty i potwierdź, że dashboard rejestruje je bez cookies” przy realistycznym poziomie równoległości oraz rejestruj opóźnienie, współczynnik błędów i wzrost storage.
Planowanie upgrade'u musi uwzględniać to ryzyko: schemat bazy danych Fathom oraz skrypt śledzący powinny być testowane razem, aby uniknąć cichej utraty zdarzeń. Przetestuj nowy release na reprezentatywnych danych wejściowych, a następnie powtórz transakcję akceptacyjną i porównaj jej wynik. Jeśli skrypt śledzący wskazuje niewłaściwy hostname albo ścieżka bazy danych jest efemeryczna, zarejestruj nieudaną transakcję i sprawdź pierwszą zaangażowaną granicę, zamiast zakładać, że odpowiada za to ingress.
Sprawdź, czy Fathom Lite przetrwa podmianę
Image kontenera można pobrać ponownie; bazy danych analitycznych, konfiguracji witryny i stanu administratora nie można odtworzyć w ten sam sposób. Zamontuj /app przed bootstrapem, zapisz nieszkodliwe dane przykładowe i podmień kontener, aby potwierdzić, że ta ścieżka rzeczywiście jest trwała. Sprawdź faktycznie używany mount zamiast ufać nazwie pliku Compose i upewnij się, że użytkownik runtime może zapisywać w miejscu oczekiwanym przez Fathom Lite.
Wybierz retencję i lokalizację poza hostem, a następnie przećwicz odzyskiwanie bez dotykania produkcji. Ćwiczenie kończy się powodzeniem tylko wtedy, gdy witryny, użytkownicy i historyczne odsłony powrócą, a po odzyskaniu pojawi się nowa wizyta testowa. W przypadku stanu opartego na bazie danych połącz snapshoty storage z eksportami spójnymi na poziomie aplikacji, zgodnie z opisem w artykule odzyskiwanie point-in-time a snapshoty.
Podłącz Fathom Lite do cyklu życia Dockup
Jednoklikowe wdrożenie Fathom Lite w Dockup powinno zapewniać bezpieczną podmianę: trasa nadal kieruje na port 8080, sekrety nie są zapisane w image, a trwałe ścieżki pojawiają się ponownie w nowym kontenerze. To samo wdrożenie może działać na infrastrukturze Dockup albo na podłączonej maszynie.
Wykonaj zadania specyficzne dla aplikacji, łącząc i testując SQLite albo obsługiwaną zewnętrzną bazę danych oraz prawidłowe umieszczenie skryptu po stronie witryny klienta, ustawiając kanoniczny publiczny adres i uruchamiając tę kontrolę akceptacyjną: dodaj witrynę, załaduj skrypt śledzący na stronie testowej, wygeneruj wizyty i potwierdź, że dashboard rejestruje je bez cookies. Dodaj wynik odtworzenia do runbooka, zanim pojawią się prawdziwi użytkownicy.
Często zadawane pytania
Czego Fathom Lite potrzebuje do wdrożenia produkcyjnego?
Skieruj kontener Fathom Lite na porcie 8080 przez jedno źródło HTTPS. Wymaganiem sieciowym jest SQLite albo obsługiwana zewnętrzna baza danych oraz prawidłowe umieszczenie skryptu po stronie witryny klienta. Nie uznawaj Fathom Lite za gotowy, dopóki nie możesz dodać witryny, załadować skryptu śledzącego na stronie testowej, wygenerować wizyt i potwierdzić, że dashboard rejestruje je bez cookies.
Które dane Fathom Lite powinny znaleźć się w backupie?
Zachowaj /app i uwzględnij bazę danych analitycznych, konfigurację witryny oraz stan administratora w tym samym manifeście odzyskiwania. Czyste odtworzenie Fathom Lite kończy się powodzeniem tylko wtedy, gdy witryny, użytkownicy i historyczne odsłony powrócą, a po odzyskaniu pojawi się nowa wizyta testowa.
Czy Fathom Lite wymaga HTTPS za reverse proxy?
Używaj HTTPS dla publicznego źródła Fathom Lite, a port 8080 pozostaw na trasie wewnętrznej. Zastosuj prawidłowo ustawienie Fathom Lite: skonfiguruj adres serwera i publiczny endpoint HTTPS używany przez skrypt śledzący. W przypadku Fathom Lite HTTPS chroni dane uwierzytelniające lub treści użytkowników podczas przesyłania i zapewnia spójność zachowania klienta zależnego od origin.
Jak należy testować upgrade Fathom Lite?
Odtwórz aktualny stan Fathom Lite w odizolowanym wdrożeniu, zastosuj wersję kandydującą i powtórz jego transakcję akceptacyjną. Zwróć szczególną uwagę na to, że schemat bazy danych Fathom oraz skrypt śledzący powinny być testowane razem, aby uniknąć cichej utraty zdarzeń. Zachowaj poprzedni image Fathom Lite do czasu zrozumienia granic migracji danych i rollbacku.
