A simple file server that lets you easily share many big files like photos and videos with friends (or between your devices) over a local network without requiring an internet connection. It starts an HTTP server that lists all files and directories in the directory where it is started from. Then anyone can then connect to the server and download files or automatically generated ZIP of whole directories (kind of like Google Drive.) The client can also upload files to the server via their browser, and clipboard card be shared both ways. A QR code is generated for convenience.
Features
- Local two-way transfers without going through the internet
- Send full quality photos and videos to others without needing a fast internet connection
- Handles really big files and directories
- Handles a LOT of files
- Auto ZIPs directories on-the-fly
- Two-way sharing of clipboard
- The web client works on all major platforms, including iOS and Android (server must run on a Mac/Windows/Linux computer)
Install (with Node.js / npm)
- Install Node.js and open a terminal:
npm install -g ezshare
Install (standalone)
If you don't want to install Node.js, you can download a zipped executable of ezshare
:
Then extract the executable and put it in a folder where you can run it from the command line. You may have to right click the icon and then press "Open" first (on Mac.)
Usage
- Open a terminal and run:
cd /path/to/your/shared/folder
ezshare
- Open the browser in the other end to the printed URL
- Start to upload or download files to/from this folder!
- Note that the two devices need to be on the same WiFi (or possibly personal hotspot)
Alternatively you can pass it the path you want to share:
ezshare /your/shared/folder
For more info run ezshare --help
Supported platforms
- The web client with all operating systems that have a modern browser. iOS, Android, Mac, Windows, ++
- The command line application works on all major desktop OS (Mac, Windows, Linux)
Share over internet without NAT
If you want to share a file over internet, you can use a service like Ngrok or Cloudflare tunnels.
Ngrok:
ngrok http http://ip.of.ezshare:8080/
Cloudflare tunnel:
cloudflared tunnel --url http://ip.of.ezshare:8080/ --no-autoupdate
Then just share the URL you are given from one of these services.
More alternatives:
Release
np
- Wait for GitHub Actions
- Edit created draft and add release notes
Credits
- Icon made by Freepik from www.flaticon.com
See also
Made with ❤️ in 🇳🇴
Follow me on GitHub, YouTube, IG, Twitter for more awesome content!