# Docker Configuration for Homelab Automation Ce dossier contient tous les fichiers nécessaires pour conteneuriser et déployer l'application Homelab Automation API. ## Structure du dossier - **Dockerfile** : Définition de l'image Docker. - **docker-compose.yml** : Définition de la stack (Container API + Volumes). - **.env.example** : Modèle de configuration des variables d'environnement. - **init.sh** : Script d'initialisation de l'environnement local. - **build-img.ps1** : Script PowerShell pour construire l'image (optimisé pour WSL). - **deploy-img.sh / .ps1** : Scripts pour pousser l'image vers un registre Docker privé. - **maj.sh** : Script pour mettre à jour la stack depuis le registre. ## Prérequis - Docker Engine & Docker Compose - Pour Windows : WSL 2 activé (recommandé pour les scripts .ps1) ## Installation et Démarrage ### 1. Initialisation Lancez le script d'initialisation pour préparer le fichier `.env` et les répertoires de données : ```bash # Dans le dossier docker/ bash init.sh ``` Ensuite, éditez le fichier `.env` généré pour configurer : - `API_KEY` : Votre clé secrète. - `SSH_USER` : L'utilisateur pour les connexions Ansible. - `NTFY_*` : La configuration des notifications (optionnel). ### 2. Démarrage (Local) Pour lancer l'application localement avec Docker Compose : ```bash docker compose up -d --build ``` L'API sera accessible sur `http://localhost:8008`. ## Construction et Déploiement (Avancé) Si vous utilisez un registre Docker privé (ex: Nexus, Harbor, Registry local), vous pouvez utiliser les scripts de build et de déploiement. ### Configuration du Registre Modifiez les variables dans `.env` (ou laissez les valeurs par défaut si elles conviennent) : - `REGISTRY_HOST` - `REGISTRY_PORT` - `IMAGE_NAME` ### Construction Sous Windows (via PowerShell) : ```powershell .\build-img.ps1 ``` Sous Linux : ```bash docker build -f Dockerfile -t homelab-automation-api:latest .. ``` ### Déploiement Pousse l'image vers le registre configuré : ```powershell .\deploy-img.ps1 ``` ### Mise à jour Sur le serveur de destination, pour tirer la dernière image et redémarrer : ```bash ./maj.sh ```