# tools.md

Ce fichier reference les outils a integrer au framework.

## Modele

```text
Nom :
Description :
Categorie :
Questions :
Methode installation :
Tests :
Difficulte :
Statut :
```

## Backlog priorise

### 1. system/user-sudo

```text
Nom : Configuration sudo utilisateur
Description : installe sudo si absent puis configure l'utilisateur gilles selon les bonnes pratiques Debian
Categorie : system
Questions : faut-il verifier si l'utilisateur existe, creer une regle dediee dans /etc/sudoers.d, et imposer une validation via visudo ?
Methode installation : verifier la presence du paquet sudo, l'installer si necessaire, verifier la presence de l'utilisateur, l'ajouter au groupe sudo si necessaire, appliquer une validation de la configuration sudo
Tests : id gilles ; getent group sudo ; sudo -l -U gilles ; visudo -cf /etc/sudoers
Difficulte : faible
Statut : implemente
```

### 2. system/user-groups

```text
Nom : Configuration groupes utilisateur
Description : ajoute l'utilisateur gilles aux groupes systeme utiles selon les bonnes pratiques
Categorie : system
Questions : quels groupes doivent etre proposes par defaut : dialout, plugdev, video, audio, netdev, lpadmin, scanner ?
Methode installation : verifier les groupes existants, proposer une selection de groupes, ajouter l'utilisateur uniquement aux groupes retenus
Tests : id gilles ; getent group <nom_groupe>
Difficulte : faible
Statut : implemente
```

### 3. network/identity

```text
Nom : Identite reseau de la machine
Description : configure le nom de la machine, le nom reseau et les elements de base de resolution locale
Categorie : network
Questions : quel hostname definir, faut-il gerer un domaine local, faut-il mettre a jour /etc/hosts ?
Methode installation : demander hostname, nom du reseau local si necessaire, mettre a jour hostnamectl et les fichiers systeme associes
Tests : hostnamectl ; cat /etc/hostname ; getent hosts $(hostname)
Difficulte : moyenne
Statut : implemente
```

### 4. network/ip-config

```text
Nom : Configuration IP initiale
Description : configure la machine en DHCP ou en IP statique sur le reseau local
Categorie : network
Questions : interface cible, mode DHCP ou statique, gateway 10.0.0.1, DNS 10.0.0.1, masque /22, IP complete ou dernier octet uniquement ?
Methode installation : detecter l'interface principale, proposer DHCP ou statique, ecrire la configuration reseau adaptee, appliquer proprement les changements
Tests : ip addr ; ip route ; resolvectl status ou cat /etc/resolv.conf ; ping gateway
Difficulte : moyenne
Statut : implemente
```

### 5. network/mdns-avahi

```text
Nom : Publication mDNS Avahi
Description : installe et configure avahi pour ameliorer la detection de la machine sur le reseau local
Categorie : network
Questions : faut-il publier le nom de la machine en .local et activer la decouverte des services ?
Methode installation : installer avahi-daemon, activer le service, verifier la publication locale
Tests : systemctl is-active avahi-daemon ; avahi-browse -a ; ping <hostname>.local
Difficulte : faible
Statut : implemente
```

### 6. network/ssh-server

```text
Nom : Serveur SSH
Description : installe et active openssh-server pour l'administration distante
Categorie : network
Questions : faut-il autoriser l'authentification par mot de passe, desactiver root login, changer le port ou rester sur le port standard ?
Methode installation : installer openssh-server, activer le service, appliquer des reglages de securite minimum
Tests : systemctl is-active ssh ; ss -ltnp | grep ':22' ; ssh -V
Difficulte : faible
Statut : implemente
```

### 7. network/samba-share

```text
Nom : Partage Samba public
Description : installe samba et partage /home/gilles sur le reseau local en acces public si valide
Categorie : network
Questions : partage public reellement souhaite, acces lecture seule ou lecture/ecriture, workgroup, impact securite acceptable ?
Methode installation : installer samba, creer une definition de partage dediee, ajuster les permissions du dossier cible, redemarrer les services
Tests : testparm -s ; systemctl is-active smbd ; smbclient -L localhost -N
Difficulte : moyenne a elevee
Statut : implemente
```

### 8. network/nfs-client

```text
Nom : Client NFS
Description : installe les paquets permettant de monter des partages NFS distants
Categorie : network
Questions : faut-il proposer un montage permanent ou seulement preparer les outils client ?
Methode installation : installer les utilitaires NFS client et preparer une base de configuration si necessaire
Tests : command -v mount.nfs ; showmount -e <serveur>
Difficulte : faible
Statut : implemente
```

### 9. network/nfs-server

```text
Nom : Serveur NFS
Description : installe et configure un export NFS pour le reseau local
Categorie : network
Questions : quel dossier exporter, quels hotes autoriser, acces lecture seule ou lecture/ecriture ?
Methode installation : installer nfs-kernel-server, definir un export explicite, recharger la configuration
Tests : systemctl is-active nfs-server ou nfs-kernel-server ; exportfs -v ; showmount -e localhost
Difficulte : moyenne
Statut : implemente
```

### 10. network/ftp-server

```text
Nom : Serveur FTP
Description : installe un serveur FTP si le besoin est confirme
Categorie : network
Questions : le besoin existe-t-il vraiment alors que SSH permet deja SFTP plus proprement ?
Methode installation : a definir uniquement si le besoin est maintenu apres validation
Tests : a definir
Difficulte : moyenne
Statut : implemente
```

### 11. boot/grub-theme

```text
Nom : Theme et options GRUB
Description : configure GRUB pour utiliser un theme et des options utiles de boot, y compris dual boot Windows
Categorie : boot
Questions : quel theme choisir, faut-il memoriser la derniere entree selectionnee, faut-il modifier le timeout, la resolution, le style du menu et activer os-prober pour Windows ?
Methode installation : lister les themes disponibles, appliquer le theme choisi, configurer GRUB_DEFAULT, GRUB_SAVEDEFAULT, GRUB_TIMEOUT, GRUB_TIMEOUT_STYLE, GRUB_DISABLE_OS_PROBER, GRUB_GFXMODE et regenerer la configuration
Tests : grep GRUB_THEME /etc/default/grub.d/postinstall-debian.cfg ; grep GRUB_DEFAULT /etc/default/grub.d/postinstall-debian.cfg ; update-grub ; verification visuelle au reboot
Difficulte : moyenne
Statut : implemente
```

### 12. hardware/detect

```text
Nom : Detection hardware
Description : detecte le materiel et prepare des recommandations de paquets ou de configuration
Categorie : hardware
Questions : quels outils retenir pour un premier niveau fiable : lshw, lspci, lsusb, dmidecode, inxi ?
Methode installation : installer les outils de detection retenus, produire un resume lisible, preparer une table de recommandations
Tests : lshw -short ; lspci ; lsusb ; dmidecode -t system
Difficulte : moyenne
Statut : implemente
```

### 13. containers/docker-engine

```text
Nom : Installation de Docker Engine
Description : installe Docker Engine sur Debian via la methode officielle Docker
Categorie : containers
Questions : faut-il suivre strictement le depot officiel Docker, supprimer les paquets en conflit, activer le service au boot, ajouter gilles au groupe docker, creer /home/gilles/docker ?
Methode installation : suivre la documentation officielle Debian, ajouter le depot Docker, installer docker-ce et plugins, ajouter gilles au groupe docker, creer /home/gilles/docker
Tests : docker --version ; docker compose version ; systemctl is-active docker ; docker run hello-world
Difficulte : moyenne
Statut : implemente
```

```text
Nom : gnome extension
Description : liste les extension gnome a installer
Categorie : gnome
Questions : dans un fichier .yml de config des extension par defaut a installer avec confirmation systematique possible
Methode installation :
Tests :
Difficulte :
Statut :
```


## Ordre de dev recommande

1. system/user-sudo
2. system/user-groups
3. network/ssh-server
4. network/mdns-avahi
5. network/identity
6. network/ip-config
7. containers/docker-engine
8. boot/grub-theme
9. hardware/detect
10. network/samba-share
11. network/nfs-client
12. network/nfs-server
13. network/ftp-server
