# ๐Ÿง 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 contient un script interactif permettant de configurer les premiers parametres d'une machine Debian serveur : - ๐Ÿท๏ธ nom de machine - ๐ŸŒ adresse IP statique - ๐Ÿšช passerelle par defaut - ๐Ÿงญ serveur(s) DNS Chaque partie est facultative. Il est donc possible de modifier uniquement le hostname, uniquement le reseau, ou les deux. ## ๐Ÿงฐ 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.