Was ist MinIO?
MinIO ist ein hochperformanter Objektspeicher, der die S3-API von Amazon Web Services vollständig kompatibel implementiert. Das bedeutet: Jede Applikation, die S3 unterstützt (und das sind heutzutage fast alle), funktioniert ohne Code-Änderung mit MinIO.
Ich nutze MinIO auf typoniels.dev als Storage-Backend für Strapi (CMS-Medien) und Loki (Log-Archivierung).
Warum nicht einfach AWS S3?
AWS S3 ist hervorragend – aber:
- Kosten: Bei intensiver Nutzung können S3-Kosten schnell steigen
- Datenschutz: Daten liegen auf US-Servern (DSGVO-Grauzone)
- Vendor Lock-in: Abhängigkeit von einem einzigen Anbieter
- Latenz: Für europäische Nutzer kann Frankfurt oder Dublin trotzdem träge sein
Mit MinIO auf eigenem Server: volle Kontrolle, keine Transferkosten, DSGVO-konform.
MinIO aufsetzen in 5 Minuten
Docker Compose (einfachster Einstieg)
version: '3'
services:
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: supersecretpassword
ports:
- "9000:9000" # S3 API
- "9001:9001" # Web Console
volumes:
- ./minio-data:/data
docker compose up -d
Fertig. Die Web-Console ist unter http://localhost:9001 erreichbar.
Kubernetes mit Helm
helm repo add minio https://charts.min.io/
helm install minio minio/minio --set rootUser=admin --set rootPassword=supersecretpassword --set persistence.size=50Gi
Integration in bestehende Projekte
Mit Strapi (als Media Provider)
Strapi v5 unterstützt S3-kompatible Anbieter nativ. In der Strapi-Konfiguration:
// config/plugins.js
module.exports = {
upload: {
config: {
provider: 'aws-s3',
providerOptions: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_ACCESS_SECRET,
endpoint: 'https://minio.deine-domain.de',
params: { Bucket: 'strapi-media' },
s3ForcePathStyle: true, // Wichtig für MinIO!
},
},
},
};
Mit AWS CLI
aws s3 ls s3://mein-bucket --endpoint-url https://minio.deine-domain.de
Performance und Grenzen
MinIO ist für Single-Node-Setups sehr schnell – auf normaler SSD erreicht es problemlos mehrere GB/s Durchsatz. Für Multi-Node distributed Mode skaliert MinIO linear mit der Anzahl der Nodes.
Grenzen beachten:
- Erasure Coding (Redundanz) braucht mindestens 4 Nodes
- Single-Node: Kein Redundanzschutz (Backup trotzdem pflicht!)
- Keine automatischen Lifecycle-Policies in der kostenlosen Version
Mein Fazit
MinIO ist meine erste Empfehlung für alle, die S3 selbst hosten wollen. Die S3-Kompatibilität ist hervorragend, die Performance überraschend gut, und der Betrieb ist unkompliziert.
Wer bereits eine S3-Infrastruktur hat, kann mit einem endpoint-Parameter nahtlos wechseln. Wer noch keine Objekt-Storage-Infrastruktur hat: MinIO ist der einfachste Einstieg.
Kombiniert mit einer Backup-Strategie (z.B. tägliches Sync in ein Off-Site-Bucket) ist MinIO eine vollwertige S3-Alternative für Self-Hosted-Projekte.