abuckit fa2f0483a4 feat(packaging): add install-linux-binary.sh for standalone binary installs
install-linux.sh downloads a native package and registers a systemd
service, which is the wrong shape for deployments that run the server
binary directly -- a hand-run process, a non-systemd supervisor, or a
MinIO deployment being migrated in place.

Add a Linux counterpart to install-mac.sh that fetches only the binary:
resolve the current release from the gh-pages pointer, download the
matching asset, verify its SHA-256, chmod it, and leave ./buckit in the
working directory. It does not touch PATH and does not install a service.

The checksum is verified against both the release-host .sha256sum and the
digest published in the gh-pages pointer, and the two must agree. The
binary and its adjacent checksum share an origin, so that digest alone
only proves the transfer was not corrupted; the pointer is served from a
different origin and turns the check into something an attacker must
defeat in two places. A pinned BUCKIT_VERSION skips the cross-check,
since the pointer only ever describes the latest release.

Publish the script to gh-pages alongside the others, and advertise it in
the README and the generated release-notes install table.
2026-08-03 22:15:30 -04:00
2026-07-14 16:40:09 -04:00
2026-06-09 16:57:37 -04:00
2026-07-27 20:05:40 -04:00
2026-07-27 20:05:40 -04:00
2021-04-23 11:58:53 -07:00
2026-07-08 23:02:18 -04:00

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

Build status Vulnerability check Buckit website Join Buckit on Discord

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.

Buckit web console

Learn More

Watch demo videos
Getting Started
FAQ
Documentation
Blog: Why I Forked MinIO to Keep It Open, and Made It Faster

What Buckit Provides

  • S3-compatible object storage server working with existing S3 SDKs and tools.
  • Standalone single-node mode for development and small deployments.
  • Distributed cluster mode supporting hundreds of petabytes.
  • Browser console for bucket and object management.
  • CLI tool for admin and object automation.
  • Web-based cluster and node management.

Quickstart

Note

This quickstart demonstrates building and running the Buckit server manually for learning purposes. For real-world service deployments, follow the Getting Started guide.

Build and run a local Buckit server:

make build
mkdir -p /tmp/buckit-data
./buckit server /tmp/buckit-data --console-address :9001

The S3 API listens on http://127.0.0.1:9000. The console listens on http://127.0.0.1:9001.

Default development credentials are:

Access key: buckitadmin
Secret key: buckitadmin

For any non-throwaway deployment, set explicit root credentials before starting the server:

export MINIO_ROOT_USER=myadmin
export MINIO_ROOT_PASSWORD=mysecretpassword
./buckit server /data --console-address :9001

The root credential environment variable names remain MINIO_ROOT_USER and MINIO_ROOT_PASSWORD for compatibility with the storage engine and existing deployment tooling.

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, prefer bm web so host discovery, disk selection, preflight checks, service setup, and generated credentials are handled by the manager instead of hand-written shell commands.

Install Buckit

For detailed installation instructions, see the Deployment Guide.

Linux release packages are available as .deb, .rpm, and .apk artifacts. The helper script downloads the package for the current system, verifies its SHA-256 checksum, and prints the package-manager command to run:

curl -fsSL https://buckit-io.github.io/buckit/install-linux.sh | sh

Linux Standalone Binary

To run the server without a package or a systemd service — for example when taking over an existing deployment that is started by hand — download the binary on its own. The helper script verifies its SHA-256 checksum and leaves an executable buckit in the current directory:

curl -fsSL https://buckit-io.github.io/buckit/install-linux-binary.sh | sh

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:

go install github.com/buckit-io/buckit@latest

When building manually, include the kqueue build tag:

go build -tags kqueue -trimpath --ldflags "$(go run buildscripts/gen-ldflags.go)" -o buckit

Build Docker Image

Buckit publishes container images for normal Docker usage. To build a custom image, use the release workflow or adapt the root Dockerfile for your own artifact pipeline.

Run the published image:

docker run -p 9000:9000 -p 9001:9001 \
  -v "$HOME/buckit-data:/data" \
  ghcr.io/buckit-io/buckit:latest server /data --console-address :9001

Run 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" \
  ghcr.io/buckit-io/buckit:latest server /data --console-address :9001

Use Buckit With bm

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 bm on macOS or Linux:

curl -fsSL https://buckit-io.github.io/bm/install.sh | sh
bm --help

Install bm on Windows PowerShell:

irm https://buckit-io.github.io/bm/install.ps1 | iex
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:

S
Description
Buckit Object Storage application
Readme AGPL-3.0 140 MiB
Languages
Go 98.8%
Shell 1%
Makefile 0.1%