Sign inSign up

litvancom/ferrobucket

By litvancom

โ€ขUpdated 3 months ago

Self-hosted, S3-compatible object storage with a built-in web UI โ€” one tiny Rust binary.

Image
0

108

litvancom/ferrobucket repository overview

โ ferrobucket

Lightweight, self-hosted, S3-compatible object storage with a built-in web UI โ€” one static Rust binary.

ferrobucket is the S3 server (it stores objects on the local filesystem) โ€” point your existing S3 tooling at it. It ships as a single static binary on a scratch image that idles around 2 MB of RAM.

๐Ÿ”— Website: https://litvancom.github.io/ferrobucket/โ  ยท Source: https://github.com/litvancom/ferrobucketโ  ยท License: MIT


โ Quick start

# anonymous (local/dev โ€” skips SigV4)
docker run -p 9000:9000 -v ./data:/data \
  litvancom/ferrobucket --anonymous

# with a static credential
docker run -p 9000:9000 -v ./data:/data \
  -e FERROBUCKET_ACCESS_KEY=myaccesskey \
  -e FERROBUCKET_SECRET_KEY=mysecretkey \
  litvancom/ferrobucket

Then:

  • S3 API + web UI: http://127.0.0.1:9000โ  (UI at /ui)
  • Point any S3 client at it (path-style): aws --endpoint-url http://127.0.0.1:9000 s3 ls

โ Features

  • S3-compatible API โ€” bucket CRUD, get/put/head/delete, ListObjectsV2 (prefix + delimiter), DeleteObjects, multipart, presigned GET/PUT. Works with the aws CLI, boto3, rclone, s3fs and any SigV4 client.
  • Built-in web UI โ€” browse buckets/objects, drag-&-drop multipart uploads, image/text previews, presigned links, light & dark themes.
  • Credentials stay server-side โ€” SigV4 with a single static credential (or --anonymous). Keys never reach the browser.
  • Tiny & self-contained โ€” embedded assets, multi-arch scratch image, ~2 MB idle RAM. No database, no sidecars.

โ Configuration

Env varPurposeDefault
FERROBUCKET_DATAObject storage directory/data
FERROBUCKET_LISTENListen address0.0.0.0:9000
FERROBUCKET_ACCESS_KEYSigV4 access keyโ€”
FERROBUCKET_SECRET_KEYSigV4 secret keyโ€”
FERROBUCKET_REGIONRegion reported to clientsus-east-1
FERROBUCKET_ANONYMOUSSkip SigV4 entirely (local use)false
  • Volume: mount a host directory at /data for persistence.
  • Port: 9000 (S3 API + web UI on the same port).

โ Supported tags

  • latest, 0.1.0 โ€” linux/amd64, linux/arm64

โ Status

Pre-1.0. Targets local development and homelab use โ€” not production/distributed storage. See the READMEโ  for AWS-S3 behaviour deviations.

Tag summary

Content type

Image

Digest

sha256:8dbe357c8โ€ฆ

Size

8.3 MB

Last updated

3 months ago

docker pull litvancom/ferrobucket