ferrobucket is a lightweight, self-hosted S3-compatible object storage server with a built-in web UI. Drag-drop multipart uploads, presigned links, prefix navigation — from one static Rust binary that idles around 6 MB of RAM, with credentials that never touch the browser.
docker run -p 9000:9000 -v "$PWD/data:/data" litvancom/ferrobucket --anonymous
linux/amd64 & linux/arm64.
--anonymous for local use). Signing happens on the server — keys never reach the browser.scratch Docker image that idles around 6 MB of RAM. No database, no sidecars.amd64 & arm64, on a scratch base. No build step./data for persistence and expose port 9000. Pass keys via env, or --anonymous for local use.--endpoint-url on the aws CLI (or any S3 SDK), and open the web UI at /ui.# run it — objects persist in ./data $ docker run -p 9000:9000 -v "$PWD/data:/data" \ litvancom/ferrobucket --anonymous # S3 API + web UI → http://127.0.0.1:9000 (UI at /ui) # with credentials instead of --anonymous $ docker run -p 9000:9000 -v "$PWD/data:/data" \ -e FERROBUCKET_ACCESS_KEY=dev -e FERROBUCKET_SECRET_KEY=devsecret \ litvancom/ferrobucket # point any S3 client at it (path-style) $ aws --endpoint-url http://127.0.0.1:9000 s3 ls
Free forever, MIT licensed. Star the repo, file an issue, send a PR — it's all out in the open.