From e7e3e9a2b4523687b6282e4df96dfefb3ea4e68c Mon Sep 17 00:00:00 2001 From: Johnny Date: Tue, 30 Dec 2025 08:19:27 +0000 Subject: [PATCH] Ajouter Readme.md --- Readme.md | 321 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 Readme.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..0e82d13 --- /dev/null +++ b/Readme.md @@ -0,0 +1,321 @@ +# 🐳 Gestionnaire LXC Proxmox VE + +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Bash](https://img.shields.io/badge/Bash-5.0+-green.svg)](https://www.gnu.org/software/bash/) +[![Proxmox](https://img.shields.io/badge/Proxmox-VE%207%2B-orange.svg)](https://www.proxmox.com/) + +Script Bash professionnel et sĂ©curisĂ© pour gĂ©rer les conteneurs LXC sur Proxmox VE via l'interface en ligne de commande. + +![Screenshot](https://via.placeholder.com/800x400.png?text=Gestionnaire+LXC+Proxmox+VE) + +## ✹ FonctionnalitĂ©s + +### 🚀 Gestion des conteneurs +- ✅ **CrĂ©ation** de conteneurs avec configuration complĂšte (CPU, RAM, disque, rĂ©seau) +- ▶ **DĂ©marrage** / âč **ArrĂȘt** (normal ou forcĂ©) +- 🔄 **RedĂ©marrage** de conteneurs +- đŸ—‘ïž **Suppression** avec confirmation de sĂ©curitĂ© +- 🔓 **DĂ©verrouillage** de conteneurs bloquĂ©s +- 📊 **Affichage** des informations dĂ©taillĂ©es +- đŸ–„ïž **Connexion** directe au shell du conteneur +- 📋 **Clonage** avec gestion des conteneurs actifs + +### đŸ’Ÿ Sauvegarde et restauration +- 💿 **Sauvegarde** avec choix de compression (gzip, lzo, zstd) +- 🔄 **Modes de backup** : snapshot, stop, suspend +- 📂 **SĂ©lection** du stockage de destination +- 🔙 **Restauration** avec sĂ©lection numĂ©rotĂ©e des sauvegardes +- đŸ—„ïž **Support** de tous les stockages connectĂ©s (NFS, CIFS, local, etc.) + +### 🔒 SĂ©curitĂ© et protection +- đŸ›Ąïž **Protection par conteneur** (activation/dĂ©sactivation) +- 🔐 **Mode protection global** (confirmations renforcĂ©es) +- ✅ **Validation stricte** de toutes les entrĂ©es utilisateur +- 🚹 **DĂ©tection automatique** de la protection lors de la suppression +- 📝 **Confirmations** pour toutes les opĂ©rations critiques + +### 🎹 Interface utilisateur +- 🌈 **Interface colorĂ©e** et intuitive +- 📋 **SĂ©lection numĂ©rotĂ©e** pour tous les choix +- 📊 **Affichage clair** des informations +- ⚡ **Navigation rapide** dans les menus + +## 📋 PrĂ©requis + +- **Proxmox VE** 7.0 ou supĂ©rieur +- **Bash** 5.0 ou supĂ©rieur +- AccĂšs **root** au serveur Proxmox +- Commande `pct` disponible (installĂ©e par dĂ©faut sur Proxmox) + +## đŸ“„ Installation + +### Installation rapide + +```bash +# TĂ©lĂ©charger le script +wget https://raw.githubusercontent.com/votre-repo/proxmox-lxc-manager/main/lxc-manager.sh + +# Rendre le script exĂ©cutable +chmod +x lxc-manager.sh + +# Lancer le script +./lxc-manager.sh +``` + +### Installation avec Git + +```bash +# Cloner le dĂ©pĂŽt +git clone https://github.com/votre-repo/proxmox-lxc-manager.git + +# AccĂ©der au rĂ©pertoire +cd proxmox-lxc-manager + +# Rendre le script exĂ©cutable +chmod +x lxc-manager.sh + +# Lancer le script +./lxc-manager.sh +``` + +### Installation systĂšme (optionnel) + +```bash +# Copier dans /usr/local/bin +sudo cp lxc-manager.sh /usr/local/bin/lxc-manager + +# Rendre exĂ©cutable +sudo chmod +x /usr/local/bin/lxc-manager + +# Lancer de n'importe oĂč +lxc-manager +``` + +## 🎼 Utilisation + +### Lancement + +```bash +./lxc-manager.sh +``` + +Le script doit ĂȘtre exĂ©cutĂ© en tant que **root** ou avec **sudo**. + +### Menu principal + +``` +╔═══════════════════════════════════════════════╗ +║ GESTIONNAIRE LXC PROXMOX VE ║ +║ Version 2.1 - SĂ©curisĂ© ║ +╚═══════════════════════════════════════════════╝ + +🔒 Mode protection: ACTIVÉ + +Menu Principal: + +1) Lister les conteneurs +2) CrĂ©er un conteneur +3) DĂ©marrer un conteneur +4) ArrĂȘter un conteneur +5) RedĂ©marrer un conteneur +6) Supprimer un conteneur +7) DĂ©verrouiller un conteneur +8) Sauvegarder un conteneur +9) Restaurer une sauvegarde +10) Afficher les informations +11) Entrer dans un conteneur +12) Cloner un conteneur +13) GĂ©rer la protection d'un conteneur +14) Mode protection global (ACTIVÉ) +0) Quitter +``` + +## 📖 Guide des fonctionnalitĂ©s + +### 🆕 CrĂ©ation d'un conteneur + +Le script vous guide Ă  travers toutes les Ă©tapes : + +1. **VMID** : NumĂ©ro unique du conteneur (100-999999999) +2. **Nom d'hĂŽte** : Nom du conteneur (lettres, chiffres, tirets) +3. **Mot de passe root** : Minimum 8 caractĂšres avec confirmation +4. **Stockage** : SĂ©lection numĂ©rotĂ©e du stockage +5. **Template** : Choix du systĂšme d'exploitation +6. **Ressources** : RAM, Swap, Disque, CPU +7. **RĂ©seau** : Configuration DHCP ou IP statique +8. **Options** : DĂ©marrage automatique, protection + +### đŸ’Ÿ Sauvegarde d'un conteneur + +Choix disponibles : + +**Compression :** +- `gzip` : Rapide, compression moyenne (recommandĂ©) +- `lzo` : TrĂšs rapide, faible compression +- `zstd` : Bon compromis vitesse/compression + +**Mode de sauvegarde :** +- `snapshot` : Plus rapide, nĂ©cessite ZFS/LVM (recommandĂ©) +- `stop` : ArrĂȘt complet du conteneur +- `suspend` : Suspension temporaire + +### 🔙 Restauration d'une sauvegarde + +Le script vous permet de : + +1. SĂ©lectionner le **stockage source** contenant les sauvegardes +2. Choisir la **sauvegarde** Ă  partir d'une liste numĂ©rotĂ©e avec VMID et date +3. DĂ©finir le **nouveau VMID** pour le conteneur restaurĂ© +4. SĂ©lectionner le **stockage de destination** + +### 📋 Clonage d'un conteneur + +Pour les conteneurs en cours d'exĂ©cution, 3 options : + +1. **ArrĂȘter** le conteneur avant le clonage (recommandĂ©) +2. **CrĂ©er un snapshot** et cloner (plus rapide, nĂ©cessite ZFS/LVM) +3. **Annuler** l'opĂ©ration + +Le conteneur source est automatiquement redĂ©marrĂ© aprĂšs le clonage si nĂ©cessaire. + +### 🔒 Protection des conteneurs + +**Protection par conteneur :** +- EmpĂȘche la suppression accidentelle +- Peut ĂȘtre activĂ©e/dĂ©sactivĂ©e individuellement +- DĂ©tectĂ©e automatiquement lors de la suppression + +**Mode protection global :** +- 🔒 **ACTIVÉ** : Confirmations renforcĂ©es (taper "SUPPRIMER") +- 🔓 **DÉSACTIVÉ** : Confirmations simples (o/n) + +## 🔧 Configuration avancĂ©e + +### Validation des entrĂ©es + +Le script valide strictement : + +- **VMID** : Format numĂ©rique (100-999999999) +- **Nom d'hĂŽte** : RFC 952/1123 (lettres, chiffres, tirets) +- **Adresses IP** : Format CIDR (ex: 192.168.1.100/24) +- **Nombres** : Valeurs positives pour RAM, CPU, disque + +### Mode strict Bash + +Le script utilise `set -euo pipefail` pour : + +- `-e` : ArrĂȘter en cas d'erreur +- `-u` : DĂ©tecter les variables non dĂ©finies +- `-o pipefail` : DĂ©tecter les erreurs dans les pipes + +## 🐛 DĂ©pannage + +### Le script ne dĂ©marre pas + +```bash +# VĂ©rifier que vous ĂȘtes root +whoami + +# Si non root, utiliser sudo +sudo ./lxc-manager.sh + +# VĂ©rifier que le script est exĂ©cutable +ls -l lxc-manager.sh +chmod +x lxc-manager.sh +``` + +### Erreur "pct: command not found" + +Le script doit ĂȘtre exĂ©cutĂ© sur un serveur Proxmox VE, pas sur une machine distante. + +### Erreur lors de la sauvegarde "wrong content type" + +Le stockage sĂ©lectionnĂ© n'est pas configurĂ© pour accepter les backups. Le script filtre maintenant automatiquement les stockages appropriĂ©s. + +### Erreur sendmail lors des sauvegardes + +C'est une erreur de notification email qui n'empĂȘche pas la sauvegarde de fonctionner. Pour la corriger, configurez `msmtp` sur votre serveur Proxmox. + +### Impossible de cloner un conteneur en cours d'exĂ©cution + +Utilisez l'option 1 du menu de clonage pour arrĂȘter le conteneur avant le clonage, ou l'option 2 si votre stockage supporte les snapshots (ZFS/LVM). + +## đŸ€ Contribution + +Les contributions sont les bienvenues ! Pour contribuer : + +1. **Fork** le projet +2. CrĂ©ez une **branche** pour votre fonctionnalitĂ© (`git checkout -b feature/AmazingFeature`) +3. **Commit** vos changements (`git commit -m 'Add some AmazingFeature'`) +4. **Push** vers la branche (`git push origin feature/AmazingFeature`) +5. Ouvrez une **Pull Request** + +### Standards de code + +- Utiliser `shellcheck` pour valider le code +- Suivre les conventions de nommage existantes +- Commenter les fonctions complexes +- Tester sur Proxmox VE 7 et 8 + +## 📝 Changelog + +### Version 2.1 (2025-01-30) + +#### AjoutĂ© +- Protection par conteneur (activation/dĂ©sactivation) +- Mode protection global avec confirmations renforcĂ©es +- SĂ©lection numĂ©rotĂ©e pour tous les stockages +- Filtrage intelligent des stockages pour backups +- Gestion des conteneurs actifs lors du clonage +- Extraction automatique du VMID et date pour les sauvegardes + +#### AmĂ©liorĂ© +- Validation stricte de toutes les entrĂ©es +- Gestion d'erreurs avec mode strict Bash +- Interface utilisateur plus intuitive +- Messages d'erreur plus clairs + +#### CorrigĂ© +- Affichage des codes couleur dans tous les menus +- Gestion des stockages incompatibles avec les backups +- Clonage des conteneurs en cours d'exĂ©cution + +### Version 2.0 (2025-01-29) + +#### AjoutĂ© +- SĂ©curitĂ© renforcĂ©e avec `set -euo pipefail` +- Validation de toutes les entrĂ©es utilisateur +- Fonctions de validation (VMID, hostname, IP, nombres) +- Gestion centralisĂ©e des erreurs + +### Version 1.0 (2025-01-28) + +- Version initiale avec fonctionnalitĂ©s de base + +## 📄 Licence + +Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de dĂ©tails. + +## đŸ‘šâ€đŸ’» Auteur + +**GĂ©nĂ©rĂ© par Claude** - Assistant IA d'Anthropic + +## 🙏 Remerciements + +- Proxmox VE pour leur excellent systĂšme de virtualisation +- La communautĂ© open source pour leurs contributions +- Tous les utilisateurs qui testent et amĂ©liorent ce script + +## 📞 Support + +- 🐛 **Issues** : [GitHub Issues](https://github.com/votre-repo/proxmox-lxc-manager/issues) +- 💬 **Discussions** : [GitHub Discussions](https://github.com/votre-repo/proxmox-lxc-manager/discussions) +- 📖 **Wiki** : [Documentation complĂšte](https://github.com/votre-repo/proxmox-lxc-manager/wiki) + +## ⭐ Star History + +Si ce projet vous est utile, n'hĂ©sitez pas Ă  lui donner une Ă©toile ! ⭐ + +--- + +**Note** : Ce script est fourni "tel quel", sans garantie d'aucune sorte. Testez toujours sur un environnement de test avant de l'utiliser en production. \ No newline at end of file