Aller au contenu

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.