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: {}
seaweedfs-data dans la routine de sauvegarde. Sans ces données, le fonctionnement du serveur et la gestion des appareils ne peuvent pas être garantis.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.
- Se rendre sur
http://localhost:23646/dans un navigateur - Se connecter avec le mot de passe généré précédemment
- Dans la barre latérale, aller dans
Object Store→Users - Cliquer sur Create User (en haut à droite), saisir
relutioncomme nom d’utilisateur et confirmer - 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)
- Dans la barre latérale, aller dans
Object Store→Buckets - Cliquer sur Create Bucket, saisir
relutioncomme nom, sélectionnerrelutioncomme 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ètre | Valeur |
|---|---|
| Endpoint | http://seaweedfs:8333 |
| Access Key | (depuis l’étape 5) |
| Secret Key | (depuis l’étape 5) |
| Nom du bucket | relution |
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 :