# ๐Ÿง Debian Base ![Debian](https://img.shields.io/badge/Debian-server-A81D33?style=for-the-badge&logo=debian&logoColor=white) ![Bash](https://img.shields.io/badge/Bash-script-4EAA25?style=for-the-badge&logo=gnubash&logoColor=white) ![Network](https://img.shields.io/badge/Network-ifupdown-2563EB?style=for-the-badge) ![License](https://img.shields.io/badge/License-AGPLv3-blue?style=for-the-badge) โœจ Scripts utiles pour preparer rapidement une base serveur Debian sans environnement graphique. ## ๐ŸŽฏ Objectif Ce depot regroupe des scripts Bash pour automatiser les taches courantes de preparation, configuration et maintenance d'une base serveur Debian minimaliste. L'objectif est de garder une collection de scripts : - ๐Ÿงฑ simples a lire et a auditer ; - ๐Ÿ” executables explicitement avec les privileges necessaires ; - ๐Ÿงญ adaptes a des serveurs sans environnement graphique ; - ๐Ÿ“š documentes dans ce README au fur et a mesure des ajouts. ## ๐Ÿงฐ Scripts disponibles | Script | Role | | --- | --- | | `configure-debian-network.sh` | Configurer le hostname, l'IP statique, la gateway et les DNS | | `install-docker-ce.sh` | Installer Docker CE depuis le depot officiel Docker | Le script reseau cible une installation serveur Debian classique utilisant : - ๐Ÿ“„ `/etc/network/interfaces` - โš™๏ธ le service `networking` - ๐Ÿ” une execution en root via `sudo` Il ne vise pas les postes avec NetworkManager, interface graphique ou gestion reseau desktop. ## ๐Ÿš€ Utilisation reseau Configurer la base reseau : ```bash sudo ./configure-debian-network.sh ``` Le script reseau demande les informations une par une : ```text Nom de la machine (laisser vide pour ne pas modifier): Adresse IP avec prefixe CIDR (ex: 192.168.1.50/24, laisser vide pour ne pas modifier le reseau): ``` Exemples de cas d'usage : | Besoin | Action | | --- | --- | | ๐Ÿท๏ธ Modifier uniquement le hostname | Renseigner le hostname, laisser l'IP vide | | ๐ŸŒ Modifier uniquement le reseau | Laisser le hostname vide, renseigner l'IP | | ๐Ÿ› ๏ธ Modifier hostname et reseau | Renseigner toutes les informations | | ๐Ÿ’ค Ne rien changer | Laisser hostname et IP vides | ## ๐Ÿณ Installation Docker CE Installer Docker CE depuis le depot officiel Docker : ```bash sudo ./install-docker-ce.sh ``` Installer Docker CE et ajouter un utilisateur au groupe `docker` : ```bash sudo ./install-docker-ce.sh olivier ``` Le script Docker effectue les actions suivantes : - ๐Ÿงน suppression des anciens paquets Docker conflictuels si presents ; - ๐Ÿ”‘ ajout de la cle GPG officielle Docker dans `/etc/apt/keyrings/docker.asc` ; - ๐Ÿ“ฆ ajout du depot APT officiel via `/etc/apt/sources.list.d/docker.sources` ; - ๐Ÿณ installation de `docker-ce`, `docker-ce-cli` et `containerd.io` ; - ๐Ÿงฉ installation des plugins `docker-buildx-plugin` et `docker-compose-plugin` ; - โš™๏ธ activation et demarrage du service `docker`. Verification apres installation : ```bash docker --version docker compose version systemctl status docker ``` Si un utilisateur est ajoute au groupe `docker`, il doit ouvrir une nouvelle session avant de pouvoir utiliser Docker sans `sudo`. ## ๐Ÿ›Ÿ Sauvegardes Avant modification, le script sauvegarde les fichiers concernes avec un suffixe date : ```text /etc/hostname.bak.YYYYMMDD-HHMMSS /etc/hosts.bak.YYYYMMDD-HHMMSS /etc/network/interfaces.bak.YYYYMMDD-HHMMSS /etc/resolv.conf.bak.YYYYMMDD-HHMMSS ``` Seuls les fichiers necessaires sont sauvegardes selon les options choisies. ## โœ… Validation Verification syntaxique : ```bash bash -n configure-debian-network.sh bash -n install-docker-ce.sh ``` Verification manuelle recommandee apres execution : ```bash hostnamectl ip addr ip route cat /etc/resolv.conf ``` ## ๐Ÿ“ Notes Debian Le script est adapte aux serveurs Debian minimalistes. Sur une machine utilisant NetworkManager ou systemd-networkd, il faut utiliser le backend reseau correspondant plutot que modifier directement `/etc/network/interfaces`. ## โš–๏ธ Licence Ce projet est distribue sous licence GNU Affero General Public License v3.0. Voir [LICENSE](LICENSE) pour le texte complet.