Hanzo Storage is a high-performance, S3-compatible object storage server for AI workloads.
Category: Hanzo Ecosystem Related Skills: hanzo/hanzo-platform.md, hanzo/hanzo-kms.md, hanzo/hanzo-universe.md
Hanzo Storage is a high-performance, S3-compatible object storage server for AI workloads. Derived from SeaweedFS and optimized for the Hanzo ecosystem. Written in Go. Live in production on Hanzo K8s clusters.
s3 binary's own shell — 153 commands covering fs, cluster, ec, volume, and mqgithub.com/hanzoai/s3)Derived from SeaweedFS (Apache-2.0), attribution retained in LICENSE. Repo: hanzoai/s3. go.mod names zero MinIO modules; the checksum libraries are our Apache-2.0 forks under hanzos3/ (crc64nvme, md5-simd, go).
There is no separate CLI or console repo. mc and the MinIO console are not part of this stack — use the s3 shell for administration.
| Item | Value | |------|-------| | Repo | github.com/hanzoai/s3 | | Module | github.com/hanzoai/s3 | | Go Version | 1.26.5 | | License | Apache-2.0 (SeaweedFS-derived) | | S3 API Port | 9000 | | Filer / Master / Volume | 8888 / 9333 / 8080 | | Docker Image | ghcr.io/hanzoai/s3:v1.0.14 (pin a semver; never :latest) | | CLI | the s3 shell (in-binary) |
docker run -p 9000:9000 -v s3-data:/data ghcr.io/hanzoai/s3:v1.0.14 \
server -dir=/data -filer -s3 -s3.port=9000
git clone https://github.com/hanzoai/s3.git
cd s3 && go build -o s3 .
./s3 server -dir=/data -filer -s3 -s3.port=9000
s3 shellThe shell is the CLI. There is no mc.
s3 shell
> s3.bucket.create -name my-bucket
> s3.bucket.list
> s3.accesskey.create -user alice
> fs.ls /buckets/my-bucket
> cluster.status
fs. walks the filer namespace, s3. manages buckets and access keys, cluster. and ec. cover topology and erasure coding.
# compose.yml
services:
s3:
image: ghcr.io/hanzoai/s3:v1.0.14
ports:
- "9000:9000"
command: server -dir=/data -ip.bind=0.0.0.0 -filer -s3 -s3.port=9000
environment:
AWS_ACCESS_KEY_ID: "${S3_ACCESS_KEY}"
AWS_SECRET_ACCESS_KEY: "${S3_SECRET_KEY}"
volumes:
- s3-data:/data
volumes:
s3-data:
S3 clients (any SDK) ──> s3 gateway (:9000)
│
filer (:8888) ──> master (:9333) ──> volume (:8080)
Master tracks topology, volume stores chunks, filer holds the namespace, and the S3 gateway maps buckets onto filer paths.
Standard AWS SDKs (aws-sdk-go, boto3, @aws-sdk/client-s3) work without modification — prefer them. For Go, github.com/hanzos3/go is our Apache-2.0 client.
s3/
main.go # Entry point (calls cmd.Main)
cmd/ # CLI commands and server logic
internal/
auth/ # Authentication
bucket/ # Bucket management
config/ # Configuration
crypto/ # Encryption (SSE-S3, SSE-KMS)
event/ # Event notification
grid/ # Internal RPC grid
hash/ # Content hashing
http/ # HTTP server
jwt/ # JWT handling
kms/ # KMS integration
s3select/ # S3 Select queries
store/ # Object store backend
helm/ # Helm charts
workers/ # Background workers
buildscripts/ # Build automation
dockerscripts/ # Docker entry scripts
# S3 credentials (standard AWS names)
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
# Admin identities
S3_ADMIN_USER=...
S3_ADMIN_PASSWORD=...
S3_ADMIN_READONLY_USER=...
S3_ADMIN_READONLY_PASSWORD=...
# Optional
S3_BUCKET=...
S3_EXTERNAL_URL=...
Credentials come from KMS, never from literals in a manifest.
ec.encode / ec.rebuild / ec.balance / ec.scrubs3.bucket.access, s3.bucket.owner, s3.anonymous.*s3.bucket.lifecycle (expiration and tiering rules)s3.bucket.quota, s3.bucket.lockremote.mount / remote.cache against a backing store| Issue | Cause | Solution | |-------|-------|----------| | Reaching for mc | Habit from the MinIO era | Use s3 shell; mc is not part of this stack | | Build fails | Go version mismatch | Requires Go 1.26+ | | S3 API refuses a bucket | Bucket has no filer path yet | s3.bucket.create -name <bucket> in the shell | | Volume full | volumeSizeLimitMB reached | Raise -master.volumeSizeLimitMB or add volume servers |
hanzo/hanzo-platform.md - PaaS deployment platformhanzo/hanzo-kms.md - Secret management (SSE-KMS integration)hanzo/hanzo-universe.md - Production K8s infrastructurehanzo/hanzo-pubsub.md - Event notification targets (NATS)Category: Hanzo Ecosystem Related: s3, storage, object-storage, seaweedfs, ai-data Prerequisites: Go 1.26+, Docker