Installer SeaweedFS

SeaweedFS → est un backend de stockage objet open source sous licence Apache, avec une API compatible S3. Il offre de bonnes performances, une bonne scalabilité et un processus d’installation simple. Il peut être déployé via Kubernetes, Docker, ou directement sur Linux, FreeBSD, macOS ou Windows.

Ce guide explique comment déployer SeaweedFS aux côtés de Relution à l’aide de Docker Compose sous Linux.

SeaweedFS a été testé de manière approfondie, mais il s’agit d’un logiciel tiers. Aucune garantie de sécurité ou de fiabilité ne peut donc être donnée à son sujet.
Pour un hébergement géré, contacter notre équipe commerciale →.
Plus d’informations : Relution Cloud →

Ce guide utilise SeaweedFS en mode mini, qui regroupe tous les composants avec des paramètres par défaut adaptés aux déploiements mono-nœud de taille moyenne.
Pour plus d’informations : Wiki SeaweedFS →.


Prérequis

  • Une installation Relution fonctionnelle avec Docker Compose
  • Un accès pour modifier le fichier compose.yaml

Préparer le compose.yaml

Générer un mot de passe alphanumérique de 24 caractères à l’aide d’un gestionnaire de mots de passe, ou depuis la ligne de commande Linux :

pwgen -snc 24 1

Dans le compose.yaml Relution (sur les installations plus anciennes : docker-compose.yml), ajouter le service suivant sous services: :

services:
  seaweedfs:
    image: chrislusf/seaweedfs:4.05 # Vérifier les versions plus récentes ici : https://github.com/seaweedfs/seaweedfs/releases
    restart: unless-stopped
    ports:
      - "127.0.0.1:23646:23646" # Interface web, accessible uniquement sur le serveur lui-même
    expose:
      - 8333 # API S3, accessible uniquement dans le réseau Docker
    command: ["mini", "-dir=/data", "-admin.dataDir=/data/admin", "-admin.password=%GENERATED-PASSWORD%"]
    networks:
      - object-storage # ajouter aussi ce réseau au service relution
    volumes:
      - seaweedfs-data:/data

L’API S3 (port 8333) n’est pas publiée sur l’hôte, car Relution y accède via http://seaweedfs:8333 dans le réseau Docker. L’interface web n’est accessible que sur le serveur lui-même. Sur un serveur distant sans navigateur, elle est ouverte via un tunnel SSH, par exemple avec ssh -L 23646:localhost:23646 <server>.

Relution et SeaweedFS doivent se trouver dans un réseau commun, sinon l’endpoint http://seaweedfs:8333 n’est pas accessible pour Relution. Dans le service relution, ajouter le réseau object-storage aux réseaux existants :

services:
  relution:
    networks:
      - reverse-proxy
      - database
      - object-storage

Dans la section networks:, créer le réseau object-storage :

networks:
  reverse-proxy: {}
  database:
    internal: true
  object-storage: {}

Le réseau object-storage n’est pas créé en tant que réseau internal, sinon l’interface web ne serait pas accessible via le port publié.

Dans la section volumes:, ajouter le volume seaweedfs-data :

volumes:
  postgresql: {}
  seaweedfs-data: {}

Démarrer SeaweedFS

Télécharger l’image et démarrer le service :

docker compose pull
docker compose up -d seaweedfs

SeaweedFS est prêt en quelques secondes.


Créer l’utilisateur et le bucket

SeaweedFS propose une interface web pour l’administration.

  1. Se rendre sur http://localhost:23646/ dans un navigateur
  2. Se connecter avec le mot de passe généré précédemment
  3. Dans la barre latérale, aller dans Object Store → Users
  4. Cliquer sur Create User (en haut à droite), saisir relution comme nom d’utilisateur et confirmer
  5. Noter l’Access Key et la Secret Key affichées (elles peuvent être récupérées plus tard via l’icône 🔑 sous Actions)
  6. Dans la barre latérale, aller dans Object Store → Buckets
  7. Cliquer sur Create Bucket, saisir relution comme nom, sélectionner relution comme propriétaire du bucket et confirmer

Relution ne crée pas le bucket lui-même. Celui-ci doit donc exister avant que Relution ne passe au stockage objet.


Noter les valeurs de configuration

Ces valeurs seront nécessaires pour configurer Relution :

ParamètreValeur
Endpointhttp://seaweedfs:8333
Access Key(depuis l’étape 5)
Secret Key(depuis l’étape 5)
Nom du bucketrelution

Aucune région ne doit être indiquée pour SeaweedFS. Relution accède au stockage objet en mode path-style et utilise la région eu-west-1 si aucune n’est définie.


Prochaines étapes

Configurer maintenant Relution pour utiliser le nouveau stockage objet :

Connecter le stockage →

Top