82 lines
2.1 KiB
Markdown

# 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
```