FerriShare is a small, self-hostable file-sharing web app written in Rust. You drag a file onto a page in the browser, pick how long it should live, and get back a download link you can paste anywhere — with the twist that the file and its filename are encrypted in the browser before they ever leave your machine.
Uploads are encrypted client-side with the WebCrypto API. The key lives in the fragment of the download link — the part after the # — which browsers never send to the server. The server therefore stores a blob it cannot open, and anyone holding the complete link can decrypt it. It is the same general idea as Mozilla’s retired Firefox Send, rebuilt as a single small service you run yourself.
FerriShare ships as a Docker image with an example compose file and an interactive configuration wizard (docker compose run --rm -it ferrishare --init) that writes its config into a ./data subdirectory. A source build works too, but the repository keeps large assets in Git LFS, so a plain clone is not enough.
The one hard requirement is a reverse proxy. WebCrypto needs a secure context, so the app must be served over HTTPS or from localhost, and TLS termination is deliberately left to Traefik, Caddy or nginx — FerriShare does not terminate HTTPS itself.
If you want to try it before deploying, the author runs a public demo at ferrishare-demo.tobiasm.dev.
The author is candid that the project has not been independently audited and says so in the README rather than burying it: the cryptographic design is documented and the encrypt/decrypt code is short and readable, but “I cannot guarantee that the implementation or design of the system is secure.” For a personal file drop that is a reasonable trade; for regulated data, have the crypto reviewed first.
If you want a self-hosted file manager rather than a one-off drop, FileGator and DumbDrop cover the other shape. The rest of the field is in File Sharing and Transfer.