# 🐳 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.