serve
Quickly serve and receive files to/from anyone on your local network, using an easy web ui

Features
- 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
Installation
Using cargo:
From source:
# build frontend
&& &&
&&
Using 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.
Usage
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
# you can combine these options
# add username & password
# file of logins formatted as user:pass separated by newlines
Feature Plan
- 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