S3 minIO (Optional)

1. Einleitung

minIO ist eine skalierbare, objektbasierte Speicherlösung mit hoher Performance. Bei Relution kann die Tabelle resource sehr groß werden (z. B. durch gespeicherte native Apps). Um die Datenbank zu entlasten, empfiehlt es sich, diese App-Dateien in ein S3 Bucket auszulagern.

Das minIO Image ist ein kompakter, leicht konfigurierbarer Docker-Container.

⚠️ Wichtig: Nehmen Sie das minIO-Verzeichnis in Ihre Backup-Routine auf. Ohne die Inhalte kann der Betrieb des Servers und die Verwaltung der Geräte nicht sichergestellt werden.


2. Vorbereitung der docker-compose.yml

Fügen Sie einen minIO-Container in Ihrer docker-compose.yml hinzu:

services:
  minio:
    image: "quay.io/minio/minio:latest"
    restart: always
    ports:
      - "9001:9001"
    expose:
      - 9000
    environment:
      - MINIO_ROOT_USER=%USERNAME%
      - MINIO_ROOT_PASSWORD=%PASSWORD%
    command: server --console-address ":9001" /data
    networks:
      relution-network:
        aliases:
          - minio
    volumes:
      - ./volumes/minio/data:/data
  • MINIO_ROOT_USER und MINIO_ROOT_PASSWORD durch eigene Werte ersetzen.
  • Daten werden lokal unter ./volumes/minio/data gespeichert.

3. minIO initial einrichten

  1. Starten Sie den Container und öffnen Sie das minIO Webinterface: 👉 http://localhost:9001

  2. Melden Sie sich mit den festgelegten Zugangsdaten an.

  3. Führen Sie folgende Schritte durch:

    • Neues Bucket mit dem Namen relution erstellen

4. Relution konfigurieren

Relution muss wissen, dass die Daten künftig im S3 Bucket gespeichert werden.

Variante A: in docker-compose.yml

Fügen Sie im Service relution diese Umgebungsvariablen hinzu:

services:
  relution:
    environment:
      - S3_ENDPOINT=http://minio:9000
      - STORAGE_TYPE=S3
      - STORAGE_S3_ACCESS_KEY=%ACCESS-KEY-ID%
      - STORAGE_S3_SECRET_KEY=%SECRET-KEY%
      - STORAGE_S3_BUCKET_NAME=relution
  • %ACCESS-KEY-ID% und %SECRET-KEY% durch die zuvor in der yml erzeugten Werte MINIO_ROOT_USER=%USERNAME% und MINIO_ROOT_PASSWORD=%PASSWORD% ersetzen.

Variante B: in application.yml

Alternativ können Sie diese Konfiguration dort einfügen:

relution:
  storage:
    resourceStorageType: S3
    s3:
      customEndpoint: http://minio:9000
      accessKey: %ACCESS-KEY-ID%
      secretKey: %SECRET-KEY%
      bucketName: relution
  • %ACCESS-KEY-ID% und %SECRET-KEY% durch die zuvor in der yml erzeugten Werte MINIO_ROOT_USER=%USERNAME% und MINIO_ROOT_PASSWORD=%PASSWORD% ersetzen.

5. Container starten

  1. Laden Sie die Images:

    docker compose pull
    
  2. Starten Sie die Container:

    docker compose up -d
    
  • minIO ist nach wenigen Sekunden einsatzbereit.
  • Relution beginnt automatisch, Inhalte aus der resource-Tabelle in das S3 Bucket zu verschieben.

6. Fortschritt überwachen

Den Kopiervorgang können Sie mit folgendem Befehl beobachten:

docker logs -f docker_relution

7. Hinweis

⚠️ Dieser Prozess ist nicht umkehrbar (Stand: Relution 5.31.2).