Skip to main content
Guyun
Language 简体 繁體 English

MinIO / self-hosted

About ten minutes, and the MinIO software itself is free — the cost is your own server and bandwidth. Here is how to prepare one bucket and one key pair on your MinIO for Guyun.

The endpoint is your own address — Guyun cannot guess it. Always use HTTPS: the app only connects over HTTPS. For a self-signed certificate on a private network, trust that certificate on the device first.

Step by step

  1. Step 1

    Install and sign in to MinIO

    • Install the server from min.io and start it; the official docs cover the install options.
    • The S3 API listens on port 9000 by default, while the console port is set at startup (many installs use 9001) — use the address printed in the startup log and sign in with the root account.
  2. Step 2

    Create the bucket

    • In the console open Buckets (the object browser) and choose Create Bucket.
    • Enter a name that follows the S3 rules (3–63 lowercase letters, numbers, hyphens or periods, starting and ending with a letter or number), keep the other options at their defaults and create it.
  3. Step 3

    Create an access key

    • Open Identity → Users → Create User, and attach a policy that covers only this bucket.
    • You can also add a service account to an existing user: open that user → Service Accounts → Create service account to get an access key and a secret key, shown once — save them right away.
  4. Step 4

    Note the endpoint

    • The endpoint is your own S3 API address, e.g. https://minio.example.com (include the port if you use one, e.g. https://your-server:9000). Always use HTTPS; trust a self-signed certificate on the device first.
    • Write the scheme and host only (add the port if you use one) and no bucket name or path; 9001 is the console, not the endpoint.
  5. Step 5

    Fill it in and test

    • In Guyun, Add storage → MinIO / self-hosted, then enter the bucket name, endpoint and key from the table below.
    • Then choose Test connection & save.

A policy that covers only this bucket

  1. In the console open Access → IAM Policies → Create Policy and paste the JSON below (MinIO uses the same policy schema as AWS IAM), replacing your-bucket-name with your bucket name.
  2. Then open Identity → Users and attach only that policy to your user: MinIO denies everything that is not explicitly allowed.
  3. Do not use the root account's key — it can do anything on the whole server.

The minimal policy for this bucket

Paste this when you create the policy under IAM Policies:

json
{ "Version": "2012-10-17",
  "Statement": [
    { "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads"], "Resource": "arn:aws:s3:::your-bucket-name" },
    { "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts"], "Resource": "arn:aws:s3:::your-bucket-name/*" }
  ] }

Replace your-bucket-name inside it with your real bucket name (two places). Do not narrow the resource to a single directory — Guyun writes its recycle-bin manifest, device connection log and handover records under the .guyun/ prefix.

Other cases (skip if not needed)

The console and the S3 API are two different ports: 9001 is the web console, and 9000 is the API Guyun connects to (check your startup flags).

Cost

  • The MinIO software is free: see the MinIO website for the open-source and commercial licence terms.
  • The cost is your own server, disks and bandwidth; Guyun charges nothing extra.

Copy these values

They go into the matching fields on Guyun's "Add storage" screen: Endpoint: MinIO has no preset place — type your own service address into the app's HTTPS endpoint field (e.g. https://minio.example.com); the bucket name and key go in as the table above says.

This valueWhere it goes in Guyun
Bucket name
The name you just created, e.g. your-bucket-name.
Bucket name
Endpoint
Your own API address, e.g. https://minio.example.com.
Endpoint
Key
The access key and secret key from the step above.
Access key and secret key

How to tell it worked

  • The connection test passes, which means the bucket name, endpoint and key all fit together and Guyun can reach your MinIO.
  • The storage then appears in Guyun's list, and you can open it to see the files in the bucket.
  • If it fails, see common errors.

Go back to Guyun and choose Test connection & save.