--- services: homelab-dashboard: build: context: . dockerfile: Dockerfile container_name: homelab-automation-dashboard restart: unless-stopped ports: - "8008:8000" environment: # Clé API pour l'authentification - API_KEY=${API_KEY:-dev-key-12345} # Utilisateur SSH pour Ansible - SSH_USER=${SSH_USER:-automation} # Chemin de la clé SSH dans le container - SSH_KEY_PATH=/app/ssh_keys/id_rsa # Désactiver la vérification des clés SSH (pour les tests) - ANSIBLE_HOST_KEY_CHECKING=False # Timeout SSH - ANSIBLE_TIMEOUT=30 # Répertoire des logs de tâches (format YYYY/MM/JJ) - DIR_LOGS_TASKS=/app/tasks_logs # Ansible inventory - ANSIBLE_INVENTORY=./ansible/inventory # Ansible playbooks - ANSIBLE_PLAYBOOKS=./ansible/playbooks # Ansible group_vars - ANSIBLE_GROUP_VARS=./ansible/inventory/group_vars volumes: # Monter l'inventaire Ansible (permet de modifier sans rebuild) - ${ANSIBLE_INVENTORY:-./ansible/inventory}:/ansible/inventory # Monter les playbooks (permet de modifier sans rebuild) - ${ANSIBLE_PLAYBOOKS:-./ansible/playbooks}:/ansible/playbooks # Monter les variables de groupe - ${ANSIBLE_GROUP_VARS:-./ansible/inventory/group_vars}:/ansible/inventory/group_vars # Monter les clés SSH depuis le host - ${SSH_KEY_DIR:-~/.ssh}:/app/ssh_keys:ro # Volume pour les logs (optionnel) - homelab_logs:/app/logs # Monter le répertoire des logs de tâches depuis le host - ${DIR_LOGS_TASKS:-./tasks_logs}:/app/tasks_logs networks: - homelab-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: homelab-network: driver: bridge volumes: homelab_logs: driver: local