In dieser Anleitung erfährst du, wie du deinen eigenen Object Storage auf deinem Server betreiben kannst. Hierzu verwenden wir MinIO, das eine leistungsfähige Open-Source-Alternative zu kommerziellen Object Storages wie z. B. AWS S3 ist. Mit MinIO bist du API kompatibel zu S3 und hast dazu noch die volle Kontrolle über deine eigenen Daten.
Ein Object Storage speichert Daten als Objekte statt in einem traditionellen Dateisystem. Jedes Objekt besteht aus den eigentlichen Daten, Metadaten und einer eindeutigen Kennung. Diese Objekte werden in Buckets organisiert. Sie fungieren als Container, in denen deine Objekte liegen. Object Storages sind gut für die Speicherung sehr großer Mengen an unstrukturierten Daten geeignet.
Verbinde dich per SSH mit deinem Server:
ssh user@dein-server
Erstelle ein neues Verzeichnis für MinIO:
mkdir minio && cd minio
Erstelle eine docker-compose.yml Datei mit folgendem Inhalt (bitte Passwort ändern):
services:
minio:
image: quay.io/minio/minio:latest
container_name: minio
volumes:
- ./data:/data
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=supergeheimespasswort
command: server --console-address ":9001" /data
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 5s
timeout: 5s
retries: 5
caddy:
image: caddy:latest
container_name: caddy
ports:
- "80:80" # for Let's Encrypt
- "443:443" # for Let's Encrypt
- "9000:9000"
- "9001:9001"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
Erstelle ein Caddyfile mit folgendem Inhalt:
deine-domain.de:9000 {
reverse_proxy minio:9000
}
deine-domain.de:9001 {
reverse_proxy minio:9001
}
Starte die Container:
docker compose up -d
MinIO ist nun über https://deine-domain.de:9001 erreichbar.
Die Weboberfläche kann mit den von dir vergebenen Benutzernamen und Passwort geöffnet werden.
MinIO kann über die MinIO Console (Weboberfläche) oder MinIO CLI (mc) konfiguriert werden. Du kannst die CLI lokal auf deinen Rechner installieren oder die mit dem Docker-Container ausgelieferte verwenden:
docker exec -it minio /bin/bash
Du kannst deine MinIO Instanz mit folgendem Befehl als Alias hinzufügen:
mc alias set myminio http://localhost:9000 admin supergeheimespasswort
Mithilfe der CLI:
mc mb myminio/mein-bucket
Oder per Weboberfläche:
Du kannst Access Keys generieren, um Zugriff auf deine Buckets über die API zu bekommen.
Über die CLI:
Wir lassen uns hierfür von MinIO temporär einen Access Key für das Admin Konto einrichten, damit wir zufällige Zugangsdaten generiert bekommen. Diesen entfernen wir auf dem Admin Konto wieder und verwenden ihn anstatt dessen für die Erstellung eines neuen Nutzers, der weniger Rechte bekommt als der Admin:
docker exec minio mc admin accesskey create myminio/ | tee /tmp/keys.txt
ACCESS_KEY=$(awk '/Access Key:/ {print $3}' /tmp/keys.txt)
SECRET_KEY=$(awk '/Secret Key:/ {print $3}' /tmp/keys.txt)
docker exec minio mc admin accesskey rm myminio $ACCESS_KEY
docker exec minio mc admin user add myminio $ACCESS_KEY $SECRET_KEY
docker exec minio mc admin policy attach myminio readwrite --user $ACCESS_KEY
rm /tmp/keys.txt && unset ACCESS_KEY SECRET_KEY
Dieser Nutzer kann jetzt lesend und schreibend auf alle deine Buckets zugreifen.
Merke dir ACCESS_KEY und SECRET_KEY, da du vor allem letzteren nicht wieder angezeigt bekommst.
Über die Weboberfläche:
Wir gehen auf Access Keys, lassen uns Zugangsdaten generieren und kopieren sie uns heraus:
Dann gehen wir unter Identity auf Users und erstellen mit diesen Zugangsdaten einen neuen User mit den Rechten readwrite:
Fertig!
MinIO beherrscht noch viele weitere nützliche Features:
MinIO bietet dir neben der Replikation noch weitere Möglichkeiten zur Datensicherung, wie Erasure Coding. Falls du einen ausfallsicheren Storage benötigst, solltest du dir die offizielle Dokumentation zu diesen Themen anschauen: MinIO Erasure Coding
Mit dieser Anleitung hast du MinIO auf deinem eigenen Server aufgesetzt. Du kannst jetzt deinen Object Storage nutzen, ohne dich um unvorhersehbare Kosten oder mangelnde Kontrolle über deine Daten sorgen zu müssen. Weitere Informationen zu MinIO findest du in der MinIO Dokumentation.
Falls diese Anleitung hilfreich für dich war, dann lasse es uns gerne wissen!
From Marcus Wojtusik | 2. April 2025
If you are looking for more: We offer powerful root servers, game servers, web hosting, TeamSpeak servers and reseller options.
Find out more about our products