Quickly serve and receive files to/from anyone on your local network, using an easy web ui
- Easy and quick Uploads
- Zip Folder downloads
- Rename/Delete Files and Folders
- QR Code to connect
- Password Protection
- Sane Defaults
- Fast, thanks to rust backend
- Goodlooking UI
Using cargo:
cargo install nlfmt-serveserve --helpFrom source:
git clone https://github.com/nlfmt/serve
cd serve
# build frontend
cd app && pnpm i && pnpm build
cd .. && cargo install --path .serve --helpUsing the pre-built binaries: Go to the latest release and download the file for your operating system. Move it to any folder you want and add it to your PATH.
serve [args] [path]When running the serve command without any arguments, it will serve the current directory on port 3000, with all extra features like upload, file operations turned off.
Here is a list of flags available, or just run serve --help
serve -p 4001 # run on port 4001
serve -i 127.0.0.1 # only run on localhost (default is all interfaces - 0.0.0.0)
serve -u # enable uploads
serve -q # print QR Code when starting
serve -s # resolve symbolic links when serving files/folders
serve -r # allow renaming files
serve -d # allow deleting files
serve -o # allow overwriting files during upload
# you can combine these options
serve -uqs # enable upload & symlinks, print QR Code
# add username & password
serve -a user:pass
# file of logins formatted as user:pass separated by newlines
serve --auth-file ./mylogins.txt- add download folder as zip or tar.gz
- Uploads
- upload button in breadcrumbs, popup with drop zon
- drop zone anywhere in the window -> upload to current folder
- drop zone on folders => upload to that folder
- folder uploads (locked behind flag)
- dont download symlinks, unless specified with flag
- allow setting a password & username
--auth, -a, or--auth-file(maybe hashed?)
- show error message when path was not found with a button "back to root"
- add logging to file
- add progress bar popup
- add support for multiple interfaces via
-i,--interface - support for custom headers
- tls support via
--tls-certand--tls-key - context menu
- allow creating directories
- file/folder info popup
- delete/rename ? (secured behind flag)
- add right click action api & args
- rename
- delete
- create folder
- add qr code button on mobile
- lock zip generation behind flag, add tar/tar.gz
- show symlink symbol in UI
- add good error logging in cli
- automated compile pipeline with releases
- recursive file search (streamed)
- custom download ui & progress
- chunked uploads & download
- resumable uploads & downloads
- insert prev name in rename dialog and select the text
- allow moving files/folders using drag and drop
- add update command
- check install source, either use cargo or github release
- show update notice when running
