How to Share Files from Your Home PC Without Clouds and Drum Dancing
Picture this: you need to send a friend a 50 GB photo folder or a disk image that's half the size of your SSD. Upload it to Telegram? Slow and inconvenient. Google Drive or Yandex.Disk? You won't have enough space, you'll have to pay for a subscription. Set up a full FTP server or dig into Nginx settings? Too much hassle for a one-off task.
That's where HFS (HTTP File Server) comes in. This is a project that turns your computer into a full-featured web server for file sharing in literally one click. And this isn't some new hobby project: the original HFS in Delphi was an internet legend of the 2000s. Now the project has been reborn in TypeScript and Node.js, becoming cross-platform and modern.
What It Is
HFS is a compact web server that lets you expose your local files through a browser. You run the binary, drop in the folders you need, and anyone with the link can download them.
The main difference from something like the Python http.server module is that you get a full admin panel, user management, resumable downloads, and even the ability to upload files back to your PC. And everything works out of the box without complex config setup.
What It's Useful for in Practice
I often need to quickly view videos or listen to music from my home server on my phone. HFS solves this elegantly.
Virtual File System
You don't need to copy files to a special folder www. In the HFS interface, you create a virtual structure. For example, a file C:\Work\Project\final_report.pdf can be shared via the link ваш-айпи/report.pdf. The original file stays in place, you just give it a "pseudonym" for the web.
Instant Heavy Data Handling
If you need to share a 100 GB folder, HFS won't make you wait while it creates an archive. As soon as the user clicks "Download as ZIP," the server starts generating the archive on the fly and immediately streams the data to the browser. This saves both time and disk space.
Access Control and Limits
If you're sharing files in a public network, you can limit the upload speed (throttling) so HFS doesn't eat up your entire bandwidth. It's also easy to create accounts: for example, let friends only download, while a colleague can also upload files to a specific folder.
Geographic Firewall and Security
In the settings, you can block access from certain countries or configure HTTPS. Certificate generation is built-in, so you won't have to mess with OpenSSL manually.
The Technical Side
The project is written in TypeScript. If you don't want to download pre-built binaries, you can run it via npx hfs@latest. This is convenient for a quick check on a server that already has Node.js installed.
HFS works practically everywhere: Windows (from version 10), Linux, macOS, and even FreeBSD. For containerization enthusiasts, there's an official Docker image.
An interesting detail: the admin panel and frontend are completely separate. You can customize the appearance with HTML and CSS or write your own plugin. Currently, there are plugins for thumbnail generation, LDAP authentication, and brute-force protection.
How to Get Started
The simplest way for most people is to download the archive from the releases page for your OS. After launching, the server opens the admin panel at localhost by default.
If you're working in the console or via SSH, you can quickly create an admin with this command:
echo "create-admin: ВАШ_ПАРОЛЬ" > config.yaml
After that, HFS will pick up the settings, and you'll be able to log into the control panel from another device via browser.
Who This Is For
HFS is a tool for those who value self-hosting. It's perfect for:
- Quickly transferring large files over a local network or the internet.
- Creating a temporary file exchange for a team.
- Organizing a home media library (HFS has a built-in player for audio and video).
- Collecting files from other users (the Upload function).
The project wins you over with its simplicity. You don't need to be a system administrator to spin up a server in 2 minutes that looks and works professionally. If you're tired of being dependent on cloud service limitations, HFS is one of the least painful ways to regain control over your data.
You can try the project on GitHub. There's also a detailed Wiki with API documentation and hidden gems like URL parameters for automatic login or search.
Related projects