Skip to main content

MinIO

MinIO gives you S3-compatible object storage locally. Any code that uses the AWS S3 SDK works against MinIO without changes — just point it at localhost:9000.

devstack add minio

Options

FlagDefaultDescription
-p, --port9000S3 API port
-c, --console-port9001Web console port
-u, --root-userminioadminRoot user (access key)
-P, --root-passwordminioadminRoot password (secret key)

Endpoints

PurposeURL
S3 APIhttp://localhost:9000
Web Consolehttp://localhost:9001

Open the console

devstack open minio

Opens the MinIO console at http://localhost:9001. Create buckets, upload files, manage policies — all from the browser.

Application config examples

.env
S3_ENDPOINT=http://localhost:9000
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin
S3_BUCKET=my-bucket
TypeScript (AWS SDK v3)
import { S3Client } from '@aws-sdk/client-s3';

const s3 = new S3Client({
endpoint: process.env.S3_ENDPOINT,
region: 'us-east-1',
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY,
secretAccessKey: process.env.S3_SECRET_KEY,
},
forcePathStyle: true, // required for MinIO
});
Python (boto3)
import boto3
s3 = boto3.client(
's3',
endpoint_url='http://localhost:9000',
aws_access_key_id='minioadmin',
aws_secret_access_key='minioadmin',
)

:::tip forcePathStyle Always set forcePathStyle: true (or addressing_style: 'path' in Python) when using MinIO. The default virtual-hosted-style URLs (bucket.localhost) don't work with a local server. :::