Pamiętasz ten artykuł o bezpieczeństwie, który czytałeś dwa tygodnie temu? Albo przepis kulinarny, który zniknął z ulubionego bloga? To uczucie frustracji, gdy Google nie potrafi odnaleźć czegoś, co na pewno widzieliśmy, jest powszechne. Rozwiązaniem jest stworzenie własnej, prywatnej wyszukiwarki, która działa jak osobista pamięć cyfrowa. Właśnie to zrobimy w tym poradniku.

Przedstawiamy Hister — darmowe i otwartoźródłowe narzędzie, które pozwala zbudować prywatny indeks wyszukiwania ze stron internetowych, które odwiedzasz, i plików, które przechowujesz na dysku 1 2 3. Działa na Twoim komputerze lub serwerze, co oznacza, że masz pełną kontrolę nad swoimi danymi 4 5. Hister nie zbiera telemetrii i nie wysyła niczego do chmury bez Twojej zgody 6 7. W ciągu około 30 minut przeprowadzimy Cię przez cały proces instalacji i konfiguracji, abyś mógł zacząć budować swoją osobistą bazę wiedzy.

Co będzie potrzebne (5 min)

Zanim zaczniemy, upewnijmy się, że mamy wszystko, czego potrzebujemy. Lista jest krótka:

  • Komputer z systemem Windows, macOS lub Linux.
  • Zainstalowany Docker. To najprostsza i najszybsza metoda uruchomienia Histera. Docker to narzędzie, które pozwala uruchamiać aplikacje w izolowanych środowiskach zwanych kontenerami. Jeśli go nie masz, znajdziesz instrukcje instalacji na oficjalnej stronie Docker.
  • Przeglądarka internetowa Google Chrome lub Mozilla Firefox.
  • Około 30 minut wolnego czasu.

Krok 1: Uruchomienie serwera Hister

Zaczniemy od serca całego systemu — serwera Hister. Użyjemy do tego Dockera, ponieważ oszczędza to czas na konfiguracji.

  1. Otwórz terminal. W systemie Windows będzie to PowerShell lub Wiersz polecenia, w macOS — Terminal, a w Linuksie — dowolny emulator terminala.

  2. Upewnij się, że Docker jest uruchomiony. Wpisz komendę docker --version i naciśnij Enter. Jeśli zobaczysz numer wersji, wszystko jest w porządku.

  3. Wklej poniższą komendę do terminala i naciśnij Enter. Spowoduje ona pobranie i uruchomienie kontenera z Histerem.

    docker run -d -p 7070:7070 -v hister_data:/data --name hister asciimoo/hister:latest
  4. Poczekaj chwilę. Docker musi pobrać obraz aplikacji (jeśli robisz to pierwszy raz), a następnie ją uruchomić. Gdy proces się zakończy, terminal wróci do normalnego trybu wpisywania poleceń.

    Co właśnie zrobiliśmy?

    • docker run: Uruchomiliśmy nowy kontener.
    • -d: Uruchomiliśmy go w tle (detached mode).
    • -p 7070:7070: Przekierowaliśmy port 7070 z kontenera na port 7070 naszego komputera. Dzięki temu będziemy mogli połączyć się z Histerem przez przeglądarkę.
    • -v hister_data:/data: Stworzyliśmy tzw. wolumen (hister_data), czyli wydzielone miejsce na dysku, gdzie Hister będzie przechowywał wszystkie swoje dane (indeks, zapisane strony). Dzięki temu dane przetrwają nawet jeśli usuniemy kontener.
    • --name hister: Nadaliśmy naszemu kontenerowi nazwę „hister”.
    • asciimoo/hister:latest: Wskazaliśmy, który obraz aplikacji ma zostać użyty.

Jeśli coś poszło nie tak… Najczęstszy problem to zajęty port 7070 przez inną aplikację. Jeśli zobaczysz błąd mówiący o konflikcie portów (np. „port is already allocated”), możesz zmienić pierwszy numer w komendzie na inny, np. 7071. Wtedy komenda będzie wyglądać tak: docker run -d -p 7071:7070 ..., a Hister będzie dostępny pod adresem http://localhost:7071.

Krok 2: Pierwsza konfiguracja w przeglądarce

Serwer już działa, więc pora się do niego zalogować i stworzyć konto administratora.

  1. Otwórz przeglądarkę internetową.

  2. W pasku adresu wpisz http://localhost:7070 i naciśnij Enter.

  3. Powinieneś zobaczyć ekran powitalny i formularz tworzenia nowego użytkownika. Hister przy pierwszym uruchomieniu prosi o założenie konta, które będzie miało uprawnienia administratora.

    [SCREENSHOT: Ekran tworzenia użytkownika w Hister z polami na nazwę użytkownika i hasło.]

  4. Wpisz wybraną nazwę użytkownika (np. admin) i silne, unikalne hasło. Zapisz je w menedżerze haseł!

  5. Kliknij przycisk „Create User”. Zostaniesz zalogowany do głównego panelu Histera. Na razie będzie on pusty, ale zaraz to zmienimy.

Krok 3: Instalacja rozszerzenia do przeglądarki

Teraz potrzebujemy sposobu, aby Hister automatycznie zapisywał strony, które odwiedzamy. Służą do tego oficjalne rozszerzenia.

  1. Przejdź do sklepu z rozszerzeniami dla swojej przeglądarki:
    • Dla Google Chrome (i przeglądarek opartych na Chromium, jak Brave, Opera, Vivaldi): Chrome Web Store.
    • Dla Mozilla Firefox: Firefox Browser ADD-ONS.
  2. W wyszukiwarce sklepu wpisz „Hister”.
  3. Znajdź oficjalne rozszerzenie (autorem powinien być asciimoo lub podobny) i kliknij przycisk „Dodaj do Chrome” lub „Dodaj do Firefoksa”. 8 9
  4. Potwierdź instalację, akceptując wymagane uprawnienia. Rozszerzenie potrzebuje dostępu do treści stron, aby móc je indeksować.

Krok 4: Połączenie rozszerzenia z serwerem

Samo rozszerzenie nic nie zrobi, dopóki nie wskażemy mu, gdzie ma wysyłać dane. Musimy je połączyć z naszym lokalnym serwerem Hister.

  1. Kliknij ikonę Hister, która pojawiła się na pasku narzędzi przeglądarki (zwykle w prawym górnym rogu).

  2. W małym okienku, które się pojawi, kliknij ikonę koła zębatego, aby wejść do ustawień.

  3. Zobaczysz formularz konfiguracyjny. Musimy wypełnić trzy pola:

    • Server URL: Wpisz adres swojego serwera Hister. Ponieważ uruchomiliśmy go lokalnie, będzie to http://localhost:7070.
    • Username: Wpisz nazwę użytkownika, którą stworzyłeś w kroku 2.
    • Password: Wpisz hasło dla tego użytkownika.

    [SCREENSHOT: Ustawienia rozszerzenia Hister z wypełnionymi polami Server URL, Username i Password.]

  4. Kliknij przycisk „Save” lub „Zapisz”.

  5. Jeśli wszystko poszło dobrze, ikona rozszerzenia powinna zmienić kolor lub pokazać status połączenia. Od tej pory każda nowo odwiedzona strona będzie automatycznie wysyłana do Twojego serwera Hister w celu zindeksowania. 10 Co ważne, treść stron jest wysyłana tylko i wyłącznie na wskazany przez Ciebie adres serwera. 11

Jeśli coś poszło nie tak… Jeśli rozszerzenie nie może się połączyć, sprawdź trzy rzeczy: czy kontener Dockera na pewno jest uruchomiony, czy adres serwera jest poprawny (pamiętaj o zmianie portu, jeśli modyfikowałeś go w kroku 1) oraz czy nazwa użytkownika i hasło nie zawierają literówek.

Krok 5: Przeszukiwanie własnej bazy wiedzy

Czas na najprzyjemniejszą część — testowanie naszej nowej wyszukiwarki. Odwiedź kilka różnych stron internetowych: artykuł na portalu informacyjnym, przepis na blogu, dokumentację jakiegoś narzędzia.

  1. Wróć do interfejsu webowego Hister, czyli na adres http://localhost:7070.
  2. Powinieneś zobaczyć, że na liście pojawiły się właśnie odwiedzone przez Ciebie strony.
  3. Skorzystaj z paska wyszukiwania na górze strony. Wpisz słowo lub frazę, która na pewno znajduje się w treści jednego z artykułów, ale niekoniecznie w jego tytule.
  4. Naciśnij Enter. Hister powinien błyskawicznie znaleźć odpowiedni dokument, ponieważ indeksuje pełną treść stron, a nie tylko ich metadane. 12
  5. Możesz też używać zaawansowanych zapytań. 13 Spróbuj na przykład:
    • cyberbezpieczeństwo -bank — znajdzie strony zawierające słowo „cyberbezpieczeństwo”, ale nie zawierające słowa „bank”.
    • title:"Poradnik RODO" — znajdzie strony, które mają dokładnie taką frazę w tytule.

Co najważniejsze, Hister przechowuje kopię treści strony. 14 Oznacza to, że nawet jeśli oryginalna strona zostanie usunięta lub zmieniona, Ty wciąż będziesz miał dostęp do informacji w swojej prywatnej bazie. 14

Co dalej i na co uważać

Gratulacje! Masz działającą, prywatną wyszukiwarkę. To jednak dopiero początek. Hister ma znacznie więcej możliwości, ale wiążą się z nimi pewne pułapki, o których warto wiedzieć.

  • Indeksowanie plików lokalnych: Hister potrafi również indeksować pliki z Twojego komputera (np. PDF, dokumenty tekstowe). 15 Robi się to za pomocą narzędzi wiersza poleceń, a nie przez interfejs webowy. Jest to funkcja dla bardziej zaawansowanych użytkowników, a szczegółowe instrukcje znajdziesz w oficjalnej dokumentacji projektu.

  • Wyszukiwanie semantyczne: Oprócz standardowego wyszukiwania pełnotekstowego, Hister oferuje opcjonalne wyszukiwanie semantyczne. 16 Pozwala ono znajdować dokumenty na podstawie znaczenia, a nie tylko konkretnych słów kluczowych. Aby je włączyć, musisz skonfigurować tzw. embeddings endpoint — czyli usługę (często zewnętrzną), która będzie analizować tekst i przekształcać go w wektory matematyczne. Pamiętaj, że włączenie tej opcji może oznaczać wysyłanie treści Twoich dokumentów do tej usługi, co może mieć implikacje dla prywatności. 17 Wybieraj dostawcę tej usługi rozważnie.

  • Dostęp z zewnątrz i bezpieczeństwo: Obecna konfiguracja sprawia, że Hister jest dostępny tylko na Twoim komputerze. Jeśli chcesz mieć do niego dostęp z innych urządzeń (np. z telefonu) lub spoza domu, musisz wystawić go na publiczny adres IP. To bardzo ryzykowne bez odpowiednich zabezpieczeń! Absolutnym minimum jest skonfigurowanie serwera proxy (np. Nginx Proxy Manager) i włączenie szyfrowania HTTPS za pomocą certyfikatu SSL (np. z Let’s Encrypt). Bez tego Twoje hasło i wszystkie dane będą przesyłane przez internet otwartym tekstem.

  • Kopie zapasowe: Wszystkie Twoje cenne dane znajdują się w wolumenie Dockera o nazwie hister_data. Regularnie twórz jego kopię zapasową! To jedyna ochrona przed awarią dysku lub przypadkowym usunięciem danych.

Hister to potężne narzędzie dla każdego, kto ceni sobie prywatność i chce mieć kontrolę nad informacjami, z którymi obcuje na co dzień. To Twoja cyfrowa pamięć podręczna, która nigdy nie zapomina i zawsze jest pod ręką. 5

Źródła

Zobacz też

Przypisy

  1. Hister to prywatna wyszukiwarka dla stron internetowych i plików użytkownika. — github.com › hister ↩

  2. Hister buduje osobisty indeks wyszukiwania z wybranych przez użytkownika stron internetowych i plików. — github.com › hister ↩

  3. Hister jest darmową, otwartą wyszukiwarką, która indeksuje całe cyfrowe życie użytkownika, w tym historię przeglądania, pliki lokalne i całe strony internetowe. — zeli.app ↩

  4. Hister nie zbiera telemetrii ani nie wymaga obowiązkowej usługi chmurowej, działa lokalnie lub na kontrolowanej przez użytkownika infrastrukturze. — github.com › hister ↩

  5. Zawartość użytkownika pozostaje na jego serwerze Hister, co pozwala na znajdowanie informacji bez polegania na zewnętrznym dostawcy wyszukiwania. — github.com › hister ↩ ↩2

  6. Domyślnie Hister nie ma telemetrii ani synchronizacji z chmurą. — github.com › hister ↩

  7. Hister jest w pełni samoobsługowy, bez telemetrii i synchronizacji z chmurą. — zeli.app ↩

  8. Hister automatycznie indeksuje przeglądane strony za pomocą rozszerzeń dla Firefoxa lub Chrome. — github.com › hister ↩

  9. Rozszerzenia dla Chrome i Firefoxa automatycznie przechwytują strony podczas przeglądania. — zeli.app ↩

  10. Hister to indeksator pełnotekstowy dla stron internetowych i plików lokalnych, który automatycznie zapisuje wszystkie odwiedzone strony renderowane przez przeglądarkę. — discuss.privacyguides.net ↩

  11. Rozszerzenie przeglądarki Hister wysyła indeksowaną zawartość strony tylko do skonfigurowanego serwera Hister, z wyjątkiem pobierania favicon. — github.com › hister ↩

  12. Hister oferuje pełnotekstowe indeksowanie, przeszukując rzeczywistą zawartość odwiedzanych stron i plików lokalnych, a nie tylko tytuły i adresy URL. — github.com › hister ↩

  13. Hister obsługuje zaawansowane zapytania, w tym filtry pól, frazy, symbole wieloznaczne, negacje, aliasy i priorytety wyników. — github.com › hister ↩

  14. Hister przechowuje wyodrębnioną zawartość z podglądami wyników offline, dzięki czemu informacje pozostają dostępne do wyszukiwania, nawet jeśli oryginalna strona się zmieni lub zniknie. — zeli.app ↩ ↩2

  15. Hister umożliwia importowanie historii przeglądarki, zakładek oraz indeksowanie lokalnych katalogów i plików. — github.com › hister ↩

  16. Hister posiada opcjonalne wyszukiwanie semantyczne, które pozwala znaleźć dokumenty na podstawie znaczenia poprzez konfigurowalny punkt końcowy osadzania (embeddings endpoint). — github.com › hister ↩

  17. Opcjonalne wyszukiwanie semantyczne wysyła tekst dokumentu do wybranego punktu końcowego osadzania (embeddings endpoint). — github.com › hister ↩