Amazon S3 est pratique, jusqu'à ce qu'arrive la facture de transfert de données, car c'est le transfert, et non le simple stockage, qui peut le plus surprendre. MinIO est un stockage objet open source qui parle le même langage que S3, c'est-à-dire la même API. Ainsi, la bibliothèque boto3 ou aws-sdk que tu as déjà dans ton projet fonctionne sans modifier une seule ligne de code, hormis l'adresse de l'endpoint. La différence, c'est que tu installes MinIO sur ton propre Box une seule fois et que tu ne paies que pour le Box, sans facture séparée pour chaque gigaoctet transféré. Voici ci-dessous, étape par étape, comment installer MinIO sur Saplo.
Pourquoi MinIO plutôt qu’Amazon S3
Amazon S3 présente deux caractéristiques qui, en pratique, sont les plus pénibles pour les projets en croissance :
- la facturation des transferts de données sortants - le simple stockage des fichiers est peu coûteux, mais chaque fichier téléchargé, chaque photo affichée à un utilisateur est facturé séparément et peut quickly dominer la facture lorsque le trafic augmente,
- une facturation dépendant du nombre d’opérations - chaque action, comme lister des fichiers, écrire ou lire, a son propre tarif, ce qui rend le coût difficile à anticiper.
MinIO implémente le même protocole S3, la migration de l’un à l’autre consiste donc généralement à modifier l’adresse de l’endpoint et les clés d’accès, sans avoir à réécrire le code de l’application. Tu l’installes sur ton propre Box, tu paies uniquement pour le Box, indépendamment du nombre de téléchargements, et les données restent physiquement sur ta propre infrastructure.
Exigences
Pour installer MinIO sur Saplo, tu as besoin de :
- un Box avec Docker activé (le moteur l'active automatiquement lors de l'installation depuis le catalogue, l'imbrication dans un conteneur est nécessaire, et Saplo l'active par défaut),
- au moins 512 MB de RAM libre sur ton Box et 5 GB d'espace disque pour les données, la quantité finale dépendant du nombre de fichiers que tu prévois de conserver,
- un domaine ou un sous-domaine
*.saploapp.pl, inclus dans le tarif de chaque offre, sur lequel la console d'administration sera déployée.
MinIO expose deux interfaces différentes qu'il convient de distinguer dès le départ. La première est la console web, un panneau permettant de parcourir les fichiers, de créer des buckets et de gérer les clés d'accès, accessible sous un domaine comme toute autre application du catalogue. La seconde est l'API S3 elle-même, c'est-à-dire l'endpoint auquel le code de l'application se connecte via boto3 ou une bibliothèque similaire. Le moteur attribue à l'application un seul port pour le domaine public, si bien que l'API S3 fonctionne uniquement à l'intérieur du Box, en loopback, et n'est pas visible depuis l'extérieur.
Installation étape par étape
- Dans le Panneau Saplo, accède au Catalogue d'applications et sélectionne MinIO (catégorie « Serveur »).
- Indique le Box sur lequel il doit être installé, ainsi que le domaine ou le sous-domaine sous lequel la console d'administration sera accessible.
- Confirme l'installation. Le moteur déploie un conteneur Docker avec l'image officielle
minio/minio, prépare un volume distinct pour les données, génère un compte administrateur aléatoire et expose la console sous le domaine indiqué via nginx avec un SSL gratuit. - Le moteur vérifie que le conteneur a bien démarré avant de considérer l'installation comme terminée. Si l'image ne se lance pas, tu verras donc une erreur plutôt qu'un domaine inactif.
- Une fois l'installation terminée, tu trouveras dans le catalogue d'applications du Box le fichier
MINIO-SETUP.txt, avec l'identifiant et le mot de passe générés pour la console.
Première configuration
MinIO, tout comme Directus ou Vaultwarden, génère automatiquement un compte administrateur lors de l’installation, au lieu de te le demander dans l’assistant d’installation.
- Connecte-toi à la console avec les données du fichier
MINIO-SETUP.txtet change le mot de passe dans Identity -> Users, avant de faire quoi que ce soit d’autre. - Crée le premier seau (bucket) dans l’onglet Buckets -> Create Bucket, par exemple un pour les fichiers des utilisateurs et un autre pour les sauvegardes.
- Dans Identity -> Service Accounts, génère une clé d’accès (Access Key et Secret Key) pour l’application qui doit enregistrer et lire les fichiers. N’utilise pas le compte administrateur dans le code de l’application.
- Le point de terminaison de l’API S3 fonctionne uniquement via la boucle locale du Box et n’est pas exposé publiquement. Si l’application utilisant MinIO se trouve sur le même Box, elle se connecte via
http://127.0.0.1sur le port attribué. L’accès depuis l’extérieur du Box, par exemple depuis ton ordinateur ou un autre serveur, nécessite un tunnel SSH disponible à partir de Box L, ou l’ajout d’un port TCP personnalisé depuis le catalogue des extensions.
MinIO sur Saplo contre Amazon S3
| Amazon S3 | MinIO sur Saplo | |
|---|---|---|
| Coût | stockage plus transfert plus opérations, facturés séparément | inclus dans le prix du plan Saplo, sans supplément pour le transfert |
| Où sont les données | infrastructure d'Amazon | Ton Box |
| Compatibilité API | norme S3 | le même protocole, les mêmes bibliothèques (boto3 et autres) |
| Accès à l'API depuis l'extérieur du serveur | endpoint public immédiatement | nécessite un tunnel SSH (Box L+) ou l'ajout d'un port TCP |
| Qui administre | Amazon | Toi, mais sans avoir à installer manuellement le serveur |
Questions fréquentes
Dois-je modifier le code de mon application pour passer de S3 à MinIO ?
En général, non. MinIO implémente le même protocole S3 : tu changes donc l'adresse du point de terminaison, la clé d'accès et le secret dans la configuration de l'application, et le reste du code qui utilise boto3 ou une bibliothèque similaire continue de fonctionner sans modification.
Pourquoi l'API S3 n'est-elle pas accessible immédiatement depuis l'extérieur de Box ? Le moteur Saplo expose, via un domaine public, exactement un port par application. Pour MinIO, il s'agit de la console web. L'API S3 reste sur le réseau loopback : les applications qui s'exécutent sur le même Box se connectent donc directement à MinIO, tandis que l'accès depuis l'extérieur de Box nécessite un tunnel SSH ou l'ajout d'un port TCP.
Puis-je avoir plus d'un bucket ? Oui, MinIO lui-même ne limite pas le nombre de buckets. La seule limite est l'espace disque de Box.
Comment sécuriser l'accès aux fichiers lorsque l'application se connecte depuis l'extérieur de Box ? Génère une clé d'accès distincte pour chaque application dans Identity -> Service Accounts, puis restreins-la à un bucket précis grâce à une politique, au lieu d'utiliser un compte administrateur. Pour une connexion depuis l'extérieur de Box, utilise un tunnel SSH (Box L et versions supérieures) ou achète l'option de port TCP personnalisé.
Les données de MinIO sont-elles automatiquement sauvegardées ? Cela dépend du plan Box que tu as souscrit. La sauvegarde fonctionne au niveau de l'ensemble de Box, comme pour les autres applications du Catalogue d'applications. Ce n'est pas une fonctionnalité propre à MinIO.
Si tu as des questions sur l'installation de MinIO sur ton propre Box ou sur la connexion de MinIO à ta propre application, écris-nous. Nous t'aiderons à réaliser la première configuration.
- #Backup
- #MinIO
- #Guide
- #Stockage de fichiers
- #S3
