Framework Scripts¶
Objectif¶
Le framework fournit un ensemble de scripts permettant d'exploiter, maintenir et reconstruire le homelab de manière simple et reproductible.
Tous les scripts sont situés dans :
/opt/homelab/scripts
Scripts d'exploitation¶
install.sh¶
Installe (ou reconstruit) le homelab.
Fonctions :
- Vérifie Docker
- Vérifie le réseau Docker
- Démarre tous les services
- Exécute un diagnostic complet
Utilisation :
./scripts/install.sh
doctor.sh¶
Vérifie l'état général du homelab.
Contrôle notamment :
- Docker
- Docker Compose
- Réseau Docker
- Fichiers compose
- Fichiers .env
- État des conteneurs
- Healthchecks
Utilisation :
./scripts/doctor.sh
À exécuter avant toute intervention importante.
start-all.sh¶
Démarre l'ensemble des services.
L'ordre de démarrage est défini dans :
scripts/lib/services.sh
Utilisation :
./scripts/start-all.sh
stop-all.sh¶
Arrête proprement tous les services.
Utilisation :
./scripts/stop-all.sh
restart-all.sh¶
Redémarre complètement le homelab.
Utilisation :
./scripts/restart-all.sh
status-all.sh¶
Affiche l'état des services.
Utilisation :
./scripts/status-all.sh
Scripts de déploiement¶
deploy.sh¶
Déploie un service unique.
Fonctions :
- Validation
- Docker Compose
- Affichage
- Contrôle des erreurs
Utilisation :
./scripts/deploy.sh homepage
create-service.sh¶
Crée automatiquement la structure d'un nouveau service.
Génère :
- compose/
- data/
- docs/
- env/
Utilisation :
./scripts/create-service.sh mon-service
Sauvegarde¶
backup.sh¶
Crée une sauvegarde complète du homelab.
Utilisation :
./scripts/backup.sh
restore.sh¶
Restaure une sauvegarde.
Utilisation :
./scripts/restore.sh <archive>
Bibliothèques¶
Les scripts partagent plusieurs bibliothèques communes.
scripts/lib/
| Fichier | Rôle |
|---|---|
| checks.sh | Vérifications |
| config.sh | Configuration |
| docker.sh | Fonctions Docker |
| output.sh | Affichage |
| services.sh | Gestion des services |
Philosophie¶
Les scripts suivent les principes suivants :
- une responsabilité par script ;
- aucune duplication de logique ;
- orchestration via les scripts existants ;
- conventions identiques pour tous les services ;
- messages homogènes ;
- compatible ShellCheck.