Files
postinstall-debian/consigne.md
2026-03-15 04:54:51 +01:00

6.0 KiB
Raw Blame History

CONSIGNE.md

Objectif du projet

Créer un dépôt Git hébergé sur Gitea :

https://gitea.maison43.duckdns.org/gilles/postinstall-debian

Ce dépôt doit permettre l'exécution d'un script postinstallation Debian 13 via une commande simple :

curl -fsSL https://gitea.maison43.duckdns.org/gilles/postinstall-debian/raw/branch/main/install.sh | bash

Le script doit permettre :

  • d'installer automatiquement des outils
  • de configurer le système
  • de proposer des menus interactifs
  • d'être évolutif et modulaire
  • d'intégrer facilement de nouveaux outils
  • d'offrir une interface console claire et agréable

Le projet doit être pensé comme un framework de postinstallation Debian 13.


Principes généraux

Modularité

Chaque outil doit être installé via un module indépendant.

Un module correspond à :

  • un script d'installation
  • un script de configuration
  • des métadonnées
  • des tests éventuels

Chaque module doit pouvoir être :

  • installé indépendamment
  • intégré dans un menu
  • utilisé dans un profil
  • testé isolément

Structure du dépôt

Structure recommandée :

postinstall-debian/

install.sh
README.md
CONSIGNE.md
tools.md
CHANGELOG.md

assets/
config/
core/
lib/
menus/
modules/
profiles/
hardware/
tests/
docs/

Organisation détaillée

install.sh

Script principal.

Fonctions :

  • vérification environnement
  • vérification Debian
  • gestion sudo/root
  • chargement librairies
  • chargement thème console
  • affichage menu principal

Doit fonctionner via curl | bash.


Dossier core/

Scripts internes du framework.

Exemples :

  • bootstrap.sh
  • runtime.sh
  • registry.sh
  • dispatcher.sh

Rôle :

  • gestion des modules
  • gestion de l'environnement
  • découverte des outils

Dossier lib/

Fonctions réutilisables.

Exemples :

ui.sh log.sh package.sh system.sh network.sh prompts.sh validation.sh


Dossier menus/

Gestion des menus interactifs.

Menus possibles :

Menu principal Installation par catégorie Installation par profil Installation par matériel Configuration système Tests


Dossier modules/

Chaque outil possède un dossier dédié.

Exemple :

modules/dev/git/

module.sh
config.sh
metadata.conf
tests.sh

Fonctions attendues :

module_git_metadata module_git_check module_git_install module_git_configure module_git_test


Catégories d'outils

Les outils doivent être classés.

Exemples :

system network dev gnome desktop multimedia containers virtualization security monitoring backup shell productivity communication selfhosted hardware


Profils

Les profils installent plusieurs outils.

Exemples :

Desktop minimal Développeur Homelab Laptop VM de test

Un profil contient une liste de modules.


Installation par matériel

Possibilité d'installer un ensemble d'outils selon le matériel.

Exemples :

Laptop ASUS HP EliteDesk VM Debian Poste GNOME


Interface utilisateur

Le script doit être user friendly.

Prévoir :

couleurs messages clairs étapes visibles résumé final

Fonctions UI :

ui_header ui_section ui_info ui_success ui_warn ui_error ui_menu ui_confirm ui_pause


Journalisation

Créer un système de logs.

Objectifs :

  • log installation
  • log erreurs
  • log tests

Sécurité curl | bash

Le script doit :

  • vérifier Debian
  • vérifier réseau
  • vérifier droits

Éviter :

  • suppression brutale
  • modification silencieuse fichiers critiques

Gestion des erreurs

Prévoir :

  • arrêt propre
  • messages clairs
  • gestion codes retour

Qualité Bash

Le code doit :

  • être lisible
  • être structuré
  • utiliser des fonctions

Utiliser si possible :

shellcheck


tools.md

Ce fichier liste les outils demandés.

Pour chaque outil :

nom description catégorie questions méthode installation tests statut


Brainstorming avant ajout d'un outil

Questions obligatoires :

Quel est l'outil

Quel usage

Installation via apt ?

Dépendances

Configuration

Service systemd

Interface graphique

Compatibilité Debian 13

Tests possibles

Menu cible

Profil cible


Tests

Types de tests possibles :

  • présence binaire
  • version
  • service actif
  • port ouvert

Tests VM Debian 13 recommandés.


Intégration d'un outil

Cycle :

1 Brainstorming

2 Décision architecture

3 Implémentation module

4 Intégration menu

5 Tests

6 Documentation


Gestion des thèmes et ressources visuelles

Le projet doit permettre d'intégrer des ressources graphiques et thèmes.

Exemples :

  • thèmes GRUB
  • thèmes GNOME
  • thèmes GTK
  • packs d'icônes
  • curseurs
  • wallpapers
  • polices
  • thèmes terminal

Ces ressources doivent être stockées dans assets/.

Structure possible :

assets/

assets/grub/
assets/gnome/
assets/icons/
assets/cursors/
assets/fonts/
assets/wallpapers/
assets/terminal/

Chaque thème doit idéalement posséder :

metadata.conf

Exemple :

THEME_ID THEME_NAME THEME_TYPE THEME_TARGET THEME_DESCRIPTION THEME_DEPENDENCIES


Menus de personnalisation

Ajouter un menu :

Personnalisation

Sous menus :

Thèmes GRUB Thèmes GNOME Icônes Curseurs Wallpapers Fonts Terminal


Bonnes pratiques pour GRUB

Toujours :

sauvegarder config régénérer grub avertir utilisateur


GNOME

Distinguer :

GTK Shell Icônes Curseurs


Métadonnées modules

Chaque module peut définir :

TOOL_NAME TOOL_ID TOOL_CATEGORY TOOL_DESCRIPTION TOOL_DEPENDENCIES TOOL_SUPPORTED_ON TOOL_TEST_AVAILABLE


Documentation

Créer documentation :

architecture.md add_tool_workflow.md menu_strategy.md testing_strategy.md security_notes.md


README

Le README doit contenir :

objectif installation structure dépôt ajout outils


Priorités du projet

1 Clarté

2 Stabilité

3 Modularité

4 Testabilité

5 Évolutivité

6 UX terminal


Conclusion

Ce dépôt doit devenir une plateforme de postinstallation Debian 13 modulaire permettant :

  • installation d'outils
  • configuration système
  • personnalisation
  • évolution continue

Le projet doit rester lisible, modulaire et maintenable sur le long terme.