Note
Buckit is an independent project derived from the discontinued open source MinIO project. Buckit is not affiliated with or endorsed by MinIO, Inc.
Buckit Object Storage
Buckit is an open-source, S3-compatible object storage system you run on your own commodity servers. It gives your applications an Amazon S3-style API while keeping your data under your control, and it can scale from a small setup to hundreds of petabytes. Teams use Buckit when they want S3-like storage without sending all data to a public cloud or paying cloud storage bills at scale.
Learn More
Watch demo videos
Getting Started
FAQ
Documentation
Blog: Why I Forked MinIO to Keep It Open, and Made It Faster
Tip
Already running MinIO? Buckit is a drop-in replacement. Read MinIO to Buckit: Swap One File, Nothing Else.
What Buckit Provides
- S3-compatible object storage — works with existing S3 SDKs and tools.
- Standalone mode — single-node for small setups or homelabs.
- Distributed mode — multi-node clusters supporting hundreds of petabytes.
- Replication — keep remote sites in sync for high availability and disaster recovery.
- Single binary — one executable per node, with no external dependencies.
- Browser console — self-service bucket and object management for end users.
- Operations toolkit — CLI for admin and object automation, web-based cluster and node management.
Quickstart
Note
This quickstart runs the server by hand for learning purposes. For real-world deployments, use the guided deployment wizard.
Let's start the object storage server, create a bucket, upload a file into it, and verify using the web UI.
1. Download the server
# Linux or macOS
curl -fsSL https://buckit-io.github.io/buckit/install-binary.sh | sh
# Windows PowerShell
irm https://buckit-io.github.io/buckit/install-windows.ps1 | iex
2. Start the server
./buckit server /tmp/buckit-data --console-address :9001
Objects are stored in /tmp/buckit-data. The S3 API listens on port 9000 and
the console on 9001.
3. Create a bucket and upload a file using CLI
# Install the bm client on Linux or macOS
curl -fsSL https://buckit-io.github.io/bm/install.sh | sh
# Windows PowerShell
# irm https://buckit-io.github.io/bm/install.ps1 | iex
# bm installs to ~/.local/bin; skip this if that is already on your PATH
export PATH="$HOME/.local/bin:$PATH"
# Point bm at the server, naming this connection "local"
bm alias set local http://localhost:9000 buckitadmin buckitadmin
# Create a bucket called "mydata"
bm mb local/mydata
# Upload a file into it
bm cp ./hello.txt local/mydata/
4. See it in the web browser
Open http://127.0.0.1:9001 and sign in with buckitadmin / buckitadmin,
then go to Object Browser. Your mydata bucket is there with the file in
it.
Distributed Server Mode
For distributed deployments, run the same buckit server command on every
participating node with a shared set of drive endpoints and identical root
credentials.
Example pattern:
export MINIO_ROOT_USER=myadmin
export MINIO_ROOT_PASSWORD=mysecretpassword
buckit server \
http://node{1...4}.example.com/data{1...4} \
--console-address :9001
For new production clusters, use the guided deployment wizard instead of hand-written shell commands. It handles node deployment and configuration for the cluster.
Install Buckit
To install a production release, see the Deployment Guide.
Build From Source
Buckit requires Go 1.25 or newer. If Go is not installed, download and install it from the official Go installation page: https://go.dev/doc/install.
git clone https://github.com/buckit-io/buckit.git
cd buckit
make build
The build writes ./buckit.
You can also install directly with Go, though the resulting binary reports
DEVELOPMENT.GOGET rather than a version:
go install github.com/buckit-io/buckit@latest
Run with Docker
docker run -p 9000:9000 -p 9001:9001 \
-v "$HOME/buckit-data:/data" \
buckitio/buckit:latest server /data --console-address :9001
With explicit credentials:
docker run -p 9000:9000 -p 9001:9001 \
-e MINIO_ROOT_USER=myadmin \
-e MINIO_ROOT_PASSWORD=mysecretpassword \
-v "$HOME/buckit-data:/data" \
buckitio/buckit:latest server /data --console-address :9001
The same image is published to Docker Hub as buckitio/buckit and to GitHub
Container Registry as ghcr.io/buckit-io/buckit. For production, pin a release
tag instead of latest.
Access Buckit with the bm CLI
bm is the Buckit Manager CLI for Buckit and S3-compatible object storage.
It provides object commands such as ls, cp, cat, mirror, and rm, plus
Buckit administration and cluster-management workflows.
See the bm GitHub repository.
Install it:
# Linux or macOS
curl -fsSL https://buckit-io.github.io/bm/install.sh | sh
# Windows PowerShell
# irm https://buckit-io.github.io/bm/install.ps1 | iex
# bm installs to ~/.local/bin; skip this if that is already on your PATH
export PATH="$HOME/.local/bin:$PATH"
# Confirm the install
bm --help
Add an alias for a local Buckit server:
bm alias set local http://localhost:9000 buckitadmin buckitadmin
bm admin info local
Create a bucket and copy data:
bm mb local/mydata
bm cp --recursive ./mydata/ local/mydata/
bm ls local/mydata
Read, mirror, and remove objects:
bm cat local/mydata/object.txt
bm mirror ./mydata local/mydata
bm rm local/mydata/object.txt
Use --dry-run before large or recursive remove operations:
bm rm --recursive --dry-run local/mydata
Common bm commands:
| Command | Purpose |
|---|---|
bm alias set |
Add or update a Buckit or S3-compatible endpoint alias. |
bm admin info |
Show deployment information and verify connectivity. |
bm ls |
List buckets, prefixes, objects, or local files. |
bm mb |
Create a bucket or local directory. |
bm cp |
Copy files or objects. |
bm cat |
Print file or object contents. |
bm mirror |
Synchronize local and object storage paths. |
bm rm |
Remove files or objects. |
bm version |
Manage bucket versioning. |
bm retention |
Manage object retention. |
bm legalhold |
Manage object legal holds. |
bm tag |
Manage object tags. |
bm ilm |
Manage lifecycle rules and tiers. |
bm replicate |
Manage bucket replication. |
bm update |
Update the bm binary. |
Full bm CLI documentation: https://buckit.sh/docs/reference/bm-cli
Buckit Manager Web
bm also ships Buckit Manager Web, a local web UI for deploying and managing
Buckit clusters.
Start it with:
bm web
By default, Buckit Manager opens at http://127.0.0.1:9443/.
Use Buckit Manager Web to:
- Prepare a local single-node Buckit deployment on macOS or Windows.
- Deploy a managed Buckit cluster on one or more Linux servers over SSH.
- Import an existing Buckit or MinIO cluster.
- Monitor cluster health, nodes, pools, and drives.
- Run supported cluster and node operations.
Buckit Manager documentation: https://buckit.sh/docs/administration/buckit-manager
How Buckit Works Internally
Development
Common repository commands:
make build
make install
make test
make lint
make verifiers
go generate ./...
make check-gen
Build and test commands must include the kqueue tag when run manually:
CGO_ENABLED=0 go test -v -tags kqueue,dev ./...
Generated files ending in _gen.go or _string.go must be regenerated and
committed when their source types change.
License and Support
Buckit is licensed under the GNU AGPLv3.
All usage must comply with AGPLv3 obligations. The license provides no warranty, liability, or support obligation. Community support is available through GitHub and the Buckit Discord community.
See also:

