>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

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

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.

logo and motto

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