Jak udostępniać pliki z domowego PC bez chmur i zbędnego zachodu
Wyobraź sobie: musisz wysłać znajomemu folder ze zdjęciami o pojemności 50 GB lub obraz dysku zajmujący połowę Twojego SSD. Wysłać przez Telegram? Wolne i niewygodne. Google Drive czy Yandex.Disk? Nie starczy Ci miejsca, trzeba będzie wykupić subskrypcję. Konfigurować pełny serwer FTP albo grzebać w ustawieniach Nginx? Zbyt dużo zachodu jak na jednorazowe zadanie.
W tym miejscu pojawia się HFS (HTTP File Server). To projekt, który zamienia Twój komputer w pełnoprawny serwer WWW do udostępniania plików dosłownie jednym kliknięciem. I nie jest to żaden nowy projekt-hobbystyczny: oryginalny HFS napisany w Delphi był legendą internetu lat 2000. Teraz projekt odrodził się w TypeScript i Node.js, stając się wieloplatformowy i nowoczesny.
Czym jest HFS
HFS to kompaktowy serwer WWW, który pozwala udostępniać lokalne pliki przez przeglądarkę. Uruchamiasz plik binarny, wrzucasz potrzebne foldery i każdy, kto ma link, może je pobrać.
Główna różnica w porównaniu z czymś takim jak moduł Pythona http.server polega na tym, że otrzymujesz pełny panel administracyjny, zarządzanie użytkownikami, wznawialne pobieranie, a nawet możliwość wysyłania plików z powrotem na Twój PC. I wszystko działa od razu bez skomplikowanej konfiguracji.
Do czego przydaje się w praktyce
Często muszę szybko obejrzeć filmy lub posłuchać muzyki z mojego domowego serwera na telefonie. HFS rozwiązuje to elegancko.
Wirtualny system plików
Nie musisz kopiować plików do specjalnego folderu www. W interfejsie HFS tworzysz strukturę wirtualną. Na przykład plik C:\Work\Project\final_report.pdf może być udostępniony przez link ваш-айпи/report.pdf. Oryginalny plik zostaje na swoim miejscu, tylko nadajesz mu „pseudonim" dla sieci.
Błyskawiczna praca z dużymi danymi
Jeśli musisz udostępnić folder o pojemności 100 GB, HFS nie zmusza Cię do czekania, aż utworzy się archiwum. Gdy tylko użytkownik kliknie „Pobierz jako ZIP", serwer zaczyna generować archiwum w locie i natychmiast przesyła dane do przeglądarki. Oszczędza to zarówno czas, jak i miejsce na dysku.
Kontrola dostępu i limity
Jeśli udostępniasz pliki w sieci publicznej, możesz ograniczyć szybkość wysyłania (throttling), żeby HFS nie zajął całej przepustowości. Łatwo jest też tworzyć konta: na przykład znajomi mogą tylko pobierać, a koleżanka może dodatkowo wysyłać pliki do określonego folderu.
Geograficzna zapora i bezpieczeństwo
W ustawieniach możesz zablokować dostęp z określonych krajów lub skonfigurować HTTPS. Generowanie certyfikatów jest wbudowane, więc nie musisz grzebać w OpenSSL ręcznie.
Strona techniczna
Projekt jest napisany w TypeScript. Jeśli nie chcesz pobierać prekompilowanych plików binarnych, możesz uruchomić go przez npx hfs@latest. To wygodne przy szybkim sprawdzeniu na serwerze, na którym jest już zainstalowany Node.js.
HFS działa praktycznie wszędzie: Windows (od wersji 10), Linux, macOS, a nawet FreeBSD. Dla entuzjastów konteneryzacji dostępny jest oficjalny obraz Docker.
Ciekawe szczegóły: panel administracyjny i frontend są całkowicie oddzielone. Możesz dostosować wygląd za pomocą HTML i CSS lub napisać własną wtyczkę. Obecnie dostępne są wtyczki do generowania miniaturek, uwierzytelniania LDAP i ochrony przed atakami brute-force.
Jak zacząć
Najprostsza metoda dla większości użytkowników to pobranie archiwum ze strony releases dla Twojego systemu operacyjnego. Po uruchomieniu serwer domyślnie otwiera panel administracyjny pod adresem localhost.
Jeśli pracujesz w konsoli lub przez SSH, możesz szybko utworzyć admina tym poleceniem:
echo "create-admin: ВАШ_ПАРОЛЬ" > config.yaml
Po tym HFS załaduje ustawienia i będziesz mógł zalogować się do panelu kontrolnego z innego urządzenia przez przeglądarkę.
Dla kogo to jest
HFS to narzędzie dla osób ceniących sobie self-hosting. Idealnie nadaje się do:
- Szybkiego przesyłania dużych plików przez sieć lokalną lub internet.
- Tworzenia tymczasowej wymiany plików dla zespołu.
- Organizacji domowej biblioteki mediów (HFS ma wbudowany odtwarzacz audio i wideo).
- Zbierania plików od innych użytkowników (funkcja Upload).
Projekt podbija swoją prostotą. Nie musisz być administratorem systemu, żeby w 2 minuty uruchomić serwer, który wygląda i działa profesjonalnie. Jeśli masz dość bycia uzależnionym od ograniczeń usług chmurowych, HFS to jeden z najmniej bolesnych sposobów odzyskania kontroli nad swoimi danymi.
Możesz wypróbować projekt na GitHub. Jest też szczegółowa Wiki z dokumentacją API i ukrytymi perełkami, jak parametry URL do automatycznego logowania czy wyszukiwania.
Powiązane projekty