FerriShare

MIT
Platform
Docker Web Self-hosted
Licence
MIT Open source
FerriShare

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.

How the encryption works

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.

What you get

  • Drag-and-drop upload page with a choice of expiry: 1 hour, 1 day or 1 week.
  • Two links per upload — a public download link and a private administration link that shows download counts and lets the uploader delete the file early.
  • Password-protected, site-wide administration panel with usage statistics and early file deletion.
  • Built-in IP rate limiting, dual-stack aware: a full IPv4 address or a client’s /64 IPv6 subnet.
  • Configurable maximum file size and total storage quota.
  • Configurable privacy policy and legal notice, with a default template.
  • SQLite for metadata, so the whole application fits in a single container.

Running it

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.

Caveats

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.

Alternatives

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.

Explore More Categories

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.