S3 minIO (optionnel)

Introduction

minIO est une solution de stockage objet évolutive et performante. Dans Relution, la table resource peut devenir très volumineuse (par ex. à cause des applications natives enregistrées). Pour soulager la base de données, il est recommandé de déplacer ces fichiers d’application dans un bucket S3.

L’image minIO est un conteneur Docker compact et facilement configurable.

⚠️ Important : Incluez le répertoire minIO dans votre routine de sauvegarde. Sans son contenu, le fonctionnement du serveur et la gestion des appareils ne peuvent pas être garantis.

Préparation du docker-compose.yml

Ajoutez un conteneur minIO dans votre docker-compose.yml :

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
  • Remplacez MINIO_ROOT_USER et MINIO_ROOT_PASSWORD par vos propres valeurs.
  • Les données seront stockées localement sous ./volumes/minio/data.

Configuration initiale de minIO

  1. Démarrez le conteneur et ouvrez l’interface web de minIO : 👉 http://localhost:9001

  2. Connectez-vous avec vos identifiants configurés.

  3. Effectuez les étapes suivantes :

    • Créez un nouveau bucket nommé relution.

Configurer Relution

Relution doit être informé que les données seront désormais stockées dans le bucket S3.

Option A : dans docker-compose.yml

Ajoutez ces variables d’environnement au service relution :

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
  • Remplacez %ACCESS-KEY-ID% et %SECRET-KEY% par les valeurs définies précédemment MINIO_ROOT_USER=%USERNAME% et MINIO_ROOT_PASSWORD=%PASSWORD%.

Option B : dans application.yml

Vous pouvez également ajouter cette configuration :

relution:
  storage:
    resourceStorageType: S3
    s3:
      customEndpoint: http://minio:9000
      accessKey: %ACCESS-KEY-ID%
      secretKey: %SECRET-KEY%
      bucketName: relution
  • Remplacez %ACCESS-KEY-ID% et %SECRET-KEY% par les valeurs définies précédemment MINIO_ROOT_USER=%USERNAME% et MINIO_ROOT_PASSWORD=%PASSWORD%.

Démarrer les conteneurs

  1. Téléchargez les images :

    docker compose pull
    
  2. Démarrez les conteneurs :

    docker compose up -d
    
  • minIO sera prêt en quelques secondes.
  • Relution commencera automatiquement à transférer le contenu de la table resource vers le bucket S3.

Suivi de la progression

Vous pouvez surveiller le processus de copie avec la commande suivante :

docker logs -f docker_relution

Remarque

⚠️ Ce processus est irréversible (à partir de Relution 5.31.2).