Dernièrement je vous ai parlé de RustFS, depuis quelques semaines je test le système s3 maison. Dernièrement je suis passé sous MinIO, un tutoriel arrivera justement pour MinIO, en deux temps. Vous comprendrez pourquoi.
Ils devaient sortir avant cet article, mais comme je suis très bien organisé, c'est tout l'inverse qui se produit.
Maintenant que j'ai un s3 stable, j'ai eu envie de monter ce système sur mon desktop Debian 13 et sur une VM multimédia.
- Sur le desktop, de façon à pouvoir avoir accès à mes fichiers.
- Sur ma VM multimédia, pour que mes applications docker comme Navidrome ou Jellyfin puissent accéder au contenu dont elles vont s'occuper.
Pour le montage, j'étais partit sur fstab comme j'en avais l'habitude avec NFS/SMB. Mais ici ce n'est pas du tout conseillé, il vaut mieux un bon Rclone/fuse3, le tout, géré avec un service qui va s'occuper de monter tout ça au démarrage.
Il m'a fallu un bon bout de temps de recherches et de tests pour avoir quelque chose de convenable et je vais vous partager ça dans quelques instants, en espérant que ça puisse vous aider.
Créer le point de montage
Connaître son ID
Pour commencer, faites cette commande dans votre terminal :
id
Cela va retourner quelque chose qui ressemble à ça :

Prenez note de votre uid et votre gid.
Créer le dossier pour le point de montage
Dans notre exemple, nous allons créer dans le dossier /mnt, le dossier minio, qui va contenir les dossiers montés de notre S3.
Créons notre dossier de montage :
mkdir /mnt/minio
Ajuster le groupe et les permissions
Reste à effectuer ces deux commandes pour avoir les bonnes permissions afin de lire et écrire dans le dossier minio :
sudo chown 1000:1000 /mnt/minio
chmod 755 /mnt/minio
- sudo chown 1000:1000 /mnt/minio => Remplacez 1000:1000 par votre uid et gid.
Installer et configurer fuse3
Fuse3 va vous permettre de monter un bucket S3, Google Drive, MinIO comme si c’était un dossier Linux.
Installer fuse3
sudo apt update
sudo apt install fuse3
Configurer fuse.conf
Par défaut, seul l’utilisateur qui a fait le montage peut accéder au contenu, avec allow-other, tous les utilisateurs du système peuvent accéder au montage.
S'il n'y a que votre utilisateur qui va utiliser ce service, inutile de suivre cette procédure.
Si vous n'êtes pas le seul utilisateur, faites ceci :
nano /etc/fuse.conf
Supprimez le # de
user_allow_other
Installer et configurer Rclone
Installer Rclone
curl https://rclone.org/install.sh | sudo bash
Créez, s'ils ne sont pas existants, ces deux dossiers :
mkdir -p ~/.config/rclone
Créer le fichier config
Avant de créer le fichier config, s'ils n'existent pas déjà, on va créer les deux dossiers nécessaires pour placer le rclone.config.
Rendez-vous dans le dossier votre utilisateur, dans /home/votre_utilisateur. Créez les dossiers, attention, .config est un dossier caché, pour le voir, il faut faire la commande ls -a.
Créons ces dossiers :
mkdir -p ~/.config/rclone
Vérifions que tout est bon :
ls -ld ~/.config/rclone
Vous devriez voir ceci :

Créez maintenant le fichier config :
nano ~/.config/rclone/rclone.conf
Collez ça dedans :
[minio]
type = s3
provider = Minio
access_key_id = xxxxx
secret_access_key = xxxxxxx
endpoint = https://s3.mondomaine.com
acl = private
Dans ce cas, dans région, ajoutez ceci : us-east-1
- type => Laissez sur s3.
- provider => Si vous utilisez MinIO, mettez Minio, dans le cas de RustFS par exemple, mettez Custom.
- access_key_id => Indiquez l'access key.
- secret_access_key => Indiquez la secret accesds key.
- endpoint => Soit le nom de votre domaine qui pointe sur l'API de votre s3, ou sous cette forme sans domaine : http://192.168.1.62:9000. Adaptez l'IP de votre serveur et le port de l'API.
- acl => Access Control List, lorsque qu'on crée un bucket, on doit définir public ou private. Dans l'immense majorité des cas, choisissez bien entendu private, sans quoi votre bucket est exposé.
Créer un service pour le montage automatique
Dans ce type de configuration, oubliez fstab. Ce n'est pas très adapté. Optez pour un service qui va s'occuper de monter tout ça au démarrage.
Créer le fichier de service pour un montage automatique au démarrage du serveur :
nano /etc/systemd/system/rclone-minio.service
Collez ça dedans :
[Unit]
Description=Mount MinIO via rclone
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=1000
Group=1000
ExecStartPre=/bin/mkdir -p /mnt/minio
ExecStart=/usr/bin/rclone mount minio: /mnt/minio \
--vfs-cache-mode full \
--vfs-cache-max-age 1s \
--vfs-cache-max-size 10G \
--dir-cache-time 10s \
--allow-other \
--rc \
--log-level INFO
ExecStop=/bin/fusermount -uz /mnt/minio
Restart=always
RestartSec=10
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target
- ExecStart=/usr/bin/rclone mount minio: /mnt/minio \ => Paramètres très important. Il va définir si vous allez monter la racine de votre s3 (minio: /mnt/minio), et donc voir tous les buckets, ou au contraire, si vous voulez restreindre l'accès, imaginons que vous vouliez juste le bucket videos, indiquez le nom de votre bucket après les :, comme ceci : minio:videos /mnt/mini.
- vfs-cache-mode full => Permet lecture et écriture/modification comme si le FS était local.
- vfs-cache-max-age 1s => Cette option définit pendant combien de temps les fichiers mis en cache par Rclone sont conservés localement avant d’être supprimés du cache.
- vfs-cache-max-size 10G => Limite le cache local à 10 Go pour éviter de remplir ton disque.
- dir-cache-time 10s => Cette option contrôle pendant combien de temps Rclone garde en cache l’arborescence des dossiers.
Ensuite, on recharge le daemon, on active et démarre le service :
sudo systemctl daemon-reload
sudo systemctl enable rclone-minio
sudo systemctl start rclone-minio
Vous devriez voir vos dossiers :
