Proxmox VM minio Debian 13
minio est une solution de stockage d’objets open source, compatible avec Amazon S3, qui permet de stocker des données non structurées telles que des photos, des vidéos, des fichiers de sauvegarde et bien plus encore. minio est conçu pour être simple à utiliser et à déployer, tout en offrant des performances élevées et une grande fiabilité. Voici comment vous pouvez installer minio sur un système Linux.
- minio , un serveur de stockage S3 opensource !
- Hébergez votre propre S3 avec minio
- Créer son premier stockage S3 avec minio en mode Single-Node Single-Drive
- Le Stockage Objet MinIO
Proxmox MiniO serveur
Mise en place d’une instance MinIO en tant que machine virtuelle (VM) dans Proxmox pour donne une solution de stockage évolutive, fiable et compatible S3 directement dans votre home-lab.
VM - Serveur Debian 13
Machine virtuelle autonome pour séparer proprement MinIO des autres services.
- Connectez-vous à l’interface Web Proxmox.
- Créer une VM avec les spécifications suivantes:
- Nom: serveur MinIO
- Système d’exploitation: basé sur Debian
- CPU: Au moins 2 vCPUs
- RAM: 4 Go ou plus
- Stockage: Au moins 50 Go * Télécharger l’ISO d’Ubuntu ou Debian sur le serveur Proxmox et l’affecter à la VM. * Démarre la machine virtuelle et installe le système d’exploitation selon les procédures standard.
Installation Debian 13
- Machine: minio
- root/rtyuiop
- userminio/userminio49
Après l’installation, se connecter en “root” à la VM via la console noVNC et effectue quelques mises à jour et préparations de base:
1
2
apt update && apt upgrade -y
apt install curl wget -y
Réseau statique
Passer en adresse IP statique: 192.168.0.217

Redémarrer le système réseau
1
systemctl restart networking
SSH
Générer une paire de clé sur l'ordinateur de bureau PC1
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) pour une liaison SSH avec le serveur.
1
2
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/minio-server
chmod 600 /home/yann/.ssh/minio-server
Envoyer les clés publiques sur le serveur userminio
1
ssh-copy-id -i ~/.ssh/minio-server.pub userminio@192.168.0.218
On se connecte sur le serveur proxmox debian 13
1
ssh userminio@192.168.0.218
Installer sudo
1
2
3
4
su -
apt install sudo
# donner les droits sudo
echo "userminio ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/userminio
Créer la configuration serveur SSH pour userminio
1
nano /etc/ssh/sshd_config.d/userminio.conf
Ajouter
1
2
Port = 55218
PasswordAuthentication no
Relancer le serveur
1
systemctl restart sshd
Connexion Proxmox via SSH depuis poste PC1
1
ssh -p 55218 -i ~/.ssh/minio-server userminio@192.168.0.218
Motd
Création nouveau motd
1
2
sudo apt install jq figlet -y
sudo rm /etc/motd && sudo nano /etc/motd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
__ __ __ __ ___
\ \ / /| \/ | | _ \ _ _ ___ __ __ _ __ ___ __ __
\ V / | |\/| | | _/| '_|/ _ \\ \ /| ' \ / _ \\ \ /
\_/ |_| |_| |_| |_| \___//_\_\|_|_|_|\___//_\_\
__ __ _ _ ___
| \/ |(_) _ _ (_) / _ \
| |\/| || || ' \ | || (_) |
|_| |_||_||_||_||_| \___/
___ _ _ _ ____
| \ ___ | |__ (_) __ _ _ _ / ||__ /
| |) |/ -_)| '_ \| |/ _` || ' \ | | |_ \
|___/ \___||_.__/|_|\__,_||_||_| |_||___/
_ ___ ___ _ __ ___ __ ___ _ ___
/ |/ _ \|_ ) / | / / ( _ ) / \ |_ )/ |( _ )
| |\_, / / / _ | |/ _ \/ _ \ _| () |_ / / | |/ _ \
|_| /_/ /___|(_)|_|\___/\___/(_)\__/(_)/___||_|\___/
Parefeu UFW
Installation
1
sudo apt install ufw
Les règles
1
2
3
sudo ufw allow 55218/tcp # port SSH
sudo ufw allow http # port 80
sudo ufw allow https # port 443
Activer le parefeu
1
sudo ufw enable
Alias fichier .bash_aliases
1
alias service='systemctl list-units --type=service --state=running'
OVH Domaine + Caddy
OVH domaine yick.eu
1
2
3
4
5
$TTL 3600
@ IN SOA dns200.anycast.me. tech.ovh.net. (2025102000 86400 3600 3600000 60)
IN NS dns200.anycast.me.
IN NS ns200.anycast.me.
* IN AAAA 2a01:e0a:9c8:2080:be24:11ff:fe4f:bda4
Caddy
Serveur web : installation et configuration de Caddy sur Debian 12
Caddy, serveur web avec HTTPS automatique, installation et configuration
1
2
3
4
5
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl gnupg2
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
En mode texte, la configuration de Caddy passe par l’édition du fichier “/etc/caddy/Caddyfile”. Dans ce fichier, un ou plusieurs sites web peuvent être déclarés et configurés.
1
sudo nano /etc/caddy/Caddyfile
1
2
3
4
5
6
7
8
9
10
minio.yick.eu {
# Racine du site web
root * /var/www/minio
# Activer la compression Zstandard et Gzip
encode zstd gzip
# Activer la distribution de fichiers statiques
file_server
}
Avant de redémarrer Caddy, créez le dossier du site web et attribuez l’utilisateur “caddy” comme propriétaire :
1
2
sudo mkdir -p /var/www/minio
sudo chown caddy:caddy /var/www/minio
Puis, créez une page web à la racine du site, le fichier “/var/www/minio/index.html”
1
sudo -u caddy /var/www/minio/index.html
avec le contenu suivant :
1
2
3
4
5
6
7
<html>
<head>
</head>
<body>
<h1>Caddy - MinIO</h1>
</body>
</html>
Redémarrez Caddy :
1
sudo systemctl restart caddy
Installation de MinIO
En mode su
1
2
3
4
5
6
7
8
9
10
11
# Téléchargeement dernière version directement depuis la source officielle
wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
chmod +x /usr/local/bin/minio
#Créer un utilisateur et un groupe pour Minio
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
mkdir -p /mnt/minio/data
chown -R minio-user:minio-user /mnt/minio
# Créer un fichier de configuration pour Minio
mkdir -p /etc/default/minio
chown minio-user:minio-user /etc/default/minio
La configuration
1
nano /etc/default/minio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Définir le volume utilisé par MinIO au démarrage
#
# Ce qui suit spécifie le chemin du lecteur ou du dossier
MINIO_VOLUMES="/mnt/minio/data"
# Définir toutes les options de ligne de commande du serveur MinIO
#
# Ce qui suit définit explicitement l'adresse d'écoute de MinIO Console à
# port 9001 sur toutes les interfaces réseau.
# Le comportement par défaut est la sélection dynamique du port.
# MINIO_OPTS="--console-address :9001 --certs-dir /opt/minio/certs"
MINIO_OPTS="--console-address :9001"
# Définir le nom d'utilisateur racine.
# Cet utilisateur a des permissions illimitées pour exécuter S3 et
# opérations d'API administratives sur n'importe quelle ressource dans le déploiement.
#
# Reportez-vous aux exigences de votre organisation pour le nom d'utilisateur superadmin.
MINIO_ROOT_USER=minio-user
# Définir le mot de passe racine
#
# Utilisez une chaîne longue, aléatoire, unique qui rencontre vos organisations
# exigences relatives aux mots de passe.
MINIO_ROOT_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxx
Pour que MinIO fonctionne de manière fiable, le configurer comme un service système
1
sudo nano /etc/systemd/system/minio.service
Contenu:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[Unit]
Description=MinIO Object Storage
After=network.target
[Service]
User=minio-user
Group=minio-user
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
# Spécifie le nombre maximal de descripteur de fichier
# qui peut être ouvert par ce processus
LimitNOFILE=65536
# Spécifie le nombre maximum de threads
# que ce processus peut créer
TasksMax=infinity
# Désactiver la logique de délai
# attendre que le processus soit arrêté
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
Après avoir enregistré (CTRL+X, Y, ENTER), activé et démarré le service:
1
2
sudo systemctl daemon-reload
sudo systemctl enable --now minio
Configurer le pare-feu et le réseau
Pour que MinIO soit accessible, des ports doivent être ouverts:
1
2
sudo ufw allow 9000/tcp
sudo ufw allow 9001/tcp
Accès minio web
Pour accéder à Minio, ouvrez votre navigateur et accédez à l’adresse http://<votre_ip>:9000 Utilisez les identifiants configurés (MINIO_ROOT_USER et MINIO_ROOT_PASSWORD) pour vous connecter.
Accès à l’interface Web MinIO via un navigateur: http://192.168.0.218:9001
Première opération, créer un bucket nommé data
Pour une utilisation en production, il est recommandé de sécuriser l’accès à Minio avec HTTPS.
Caddy - https://minio.yick.eu
Ajouter la ligne suivante au fichier enviironnement /etc/default/minio
1
MINIO_BROWSER_REDIRECT_URL='https://minio.yick.eu/minio/ui/'
Redémarrer le service
1
sudo systemctl restart minio
Le fichier /etc/caddy/Caddyfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile
minio.yick.eu {
handle /minio/ui/* {
uri strip_prefix /minio/ui
reverse_proxy localhost:9001
}
handle /robots.txt {
respond "User-agent: *
Disallow: /"
}
handle /favicon.ico {
respond 404
}
handle /* {
reverse_proxy localhost:9000
}
}
Redémarrer le service caddy
1
sudo systemctl restart caddy
Intégration dans les outils de sauvegarde
MinIO est maintenant prêt comme une mémoire compatible S3- et peut par ex. B. utilisé pour le Restic. Si vous avez lu mon article précédent, vous vous souvenez peut-être que j’ai configuré MinIO comme destination de sauvegarde pour Restic. Maintenant, nous faisons juste cela:
1
2
3
export RESTIC_REPOSITORY=s3:http://<IP>:9000/backups
export AWS_ACCESS_KEY_ID=admin
export AWS_SECRET_ACCESS_KEY=geheimes-passwort
Proxmox MiniO client
Installation du client en ligne de commande qui peut servir en local pour administrer le s3,
on va installer le client Minio Admin Client:
1
2
3
curl https://dl.min.io/client/mc/release/linux-amd64/mc --create-dirs -o $HOME/minio-binaries/mc
sudo mv minio-binaries/mc /usr/local/bin
sudo chmod +x /usr/local/bin/mc
On crée un alias pour les commandes minio :
1
mc alias set myminio http://localhost:9000 myminioadmin myniadpass
Création d’un bucket
1
mc mb myminio/test1
Lister les buckets :
1
mc ls myminio






