Files
2026-02-18 08:39:21 +01:00

113 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "MinIO object storage"
weight: 50
aliases:
- /userguide/minio/
- /userguide/install/minio/
---
**Note:** As of February 13, 2026, MinIO is archived and no longer maintained,
so you are probably better off using a different option. This guide is left
online as reference for now.
[MinIO](https://min.io/) was a high-performance object storage that was API
compatible to Amazons [Simple Storage Service
(S3)](https://aws.amazon.com/de/s3/), but was open source and written in Go. It
could be used as a building block for applications involving file storage and
file transmission and while its native to the cloud, it turns out one can also
use it on gokrazy. :)
## Step 1: Install MinIO to your gokrazy device
Add the `minio` program to your gokrazy instance:
```bash
gok add github.com/minio/minio
# Automatically initialize a file system on the /perm partition on first boot:
gok add github.com/gokrazy/mkfs
```
## Step 2: Configuring the environment variables and command-line flags
Then, open your instances `config.json` in your editor:
```bash
gok edit
```
And configure [Package config: Command-line
flags](/userguide/package-config/#flags) and [Package config: Environment
variables](/userguide/package-config/#env):
{{< highlight json "hl_lines=11-26" >}}
{
"Hostname": "storage",
"Packages": [
"github.com/gokrazy/fbstatus",
"github.com/gokrazy/hello",
"github.com/gokrazy/serial-busybox",
"github.com/gokrazy/breakglass",
"github.com/minio/minio",
"github.com/gokrazy/mkfs"
],
"PackageConfig": {
"github.com/minio/minio": {
"CommandLineFlags": [
"server",
"--address",
":3001",
"--console-address",
":3002",
"/perm/minio/"
],
"Environment": [
"MINIO_ROOT_USER=minio",
"MINIO_ROOT_PASSWORD=minio-on-gokrazy"
]
}
}
}
{{< /highlight >}}
Then, deploy as usual:
```bash
gok update
```
A few things can be noted here:
* There are nice practical examples on the different options once you execute
`minio server --help` if you have it installed locally or more advanced use
cases in the official
[MinIO docs](https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html).
* The ports for the storage server and console do not have to be explicitly set,
but for me the default port collided with another service (Port 9000). If no
port is set the console just chooses an arbitrary free one.
* For some reason the `HOME` variable has to be set to the storage folder.
See [Issue #12641](https://github.com/minio/minio/issues/12641) on why that
is the case. As default gokrazy sets `HOME` to `HOME=/perm/<cmd>`, so if you
want to change your storage location to something different modify the
`Environment` field accordingly.
## Step 3: Test whether the setup was successful
If you have the [`mc`](https://github.com/minio/mc) command installed you can
check out whether your installation of MinIO really works:
```shell
$ mc alias set gokrazy http://gokrazy:3001 minio minio-on-gokrazy
Added `gokrazy` successfully.
$ mc ls gokrazy
$ mc mb gokrazy/testbucket
Bucket created successfully `gokrazy/testbucket`.
$ mc ls gokrazy
[2021-09-15 16:40:16 CEST] 0B testbucket/
```
Also check out the output in the logs on the gokrazy webinterface and login into
the MinIO management console ([http://gokrazy:3002](http://gokrazy:3002) in this
guide) to create service accounts view logs, bucket contents and more.