What is DirIO?
DirIO is an S3-compatible object storage server where objects are just files on disk. No chunking, no encoding, no abstraction layers — just directories and files. It's built as a drop-in replacement for MinIO's discontinued single-node filesystem (FS) mode — the old mode where objects were stored as plain files.
Not related to MinIO's current erasure-coded/distributed backend. Modern MinIO (its default since FS mode was removed) splits objects into shards across drives — a completely different on-disk format that DirIO cannot read. DirIO only reads data from MinIO's legacy single-node FS-mode installs.
What it does
- Serves S3 API requests over HTTP
- Stores objects as regular files in
buckets/ - Maintains metadata in
.metadata/(JSON files) - Imports from a legacy MinIO FS-mode
.minio.sys/on first boot - Runs in a container on your NAS
What it doesn't do
- Distributed storage / clustering
- Built-in replication
- Advanced S3 features (yet)
- Replace production-grade S3 implementations
- Read MinIO's erasure-coded/distributed backend data
Downloads
Two binaries, no dependencies: dirio is the server, dio is the first-party CLI client.
Loading the latest release from GitHub…
Can't find your platform, or the list above didn't load? Browse all release assets on GitHub.
Use cases
- Homelab NAS storage — host S3 buckets on your NAS without MinIO overhead
- Static site assets — serve website media files via the S3 API
- Backup targets — use S3-compatible tools with local filesystem storage
- Development — test S3 integrations locally with real files
Quick start
# Run the server
dirio serve --data-dir /path/to/data --port 9000
# Talk to it with the aws CLI
aws --endpoint-url http://localhost:9000 s3 mb s3://test
aws --endpoint-url http://localhost:9000 s3 cp file.txt s3://test/
# Or with dio, the first-party client
dio cp file.txt dirio://test/