--- services: homelab-dashboard: image: docker-registry.dev.home:5000/homelab-automation-api:latest container_name: homelab-dashboard restart: unless-stopped ports: - "${PORT:-7070}:8008" environment: # general variables - TZ=${TZ:-America/Montreal} # application variables - API_KEY=${API_KEY:-dev-key-12345} - SSH_USER=${SSH_USER:-automation} - SSH_KEY_PATH=${SSH_KEY_PATH:-/app/ssh_keys/id_automation_ansible} - HOMELAB_DATA_DIR=/app/data - DB_PATH=/app/data/homelab.db - DATABASE_URL=${DATABASE_URL:-sqlite+aiosqlite:////app/data/homelab.db} - JWT_SECRET_KEY=${JWT_SECRET_KEY:-dev-key-12345} - JWT_EXPIRE_MINUTES=${JWT_EXPIRE_MINUTES:-1440} # ntfy notification variables - NTFY_BASE_URL=${NTFY_BASE_URL:-https://ntfy.dracodev.net} - NTFY_DEFAULT_TOPIC=${NTFY_DEFAULT_TOPIC:-homelab-events} - NTFY_ENABLED=${NTFY_ENABLED:-true} - NTFY_MSG_TYPE=${NTFY_MSG_TYPE:-ERR} - NTFY_TIMEOUT=${NTFY_TIMEOUT:-5} # ansible variables - ANSIBLE_HOST_KEY_CHECKING=False - ANSIBLE_TIMEOUT=30 - ANSIBLE_INVENTORY=/app/ansible/inventory - ANSIBLE_PLAYBOOKS=/app/ansible/playbooks - ANSIBLE_GROUP_VARS=/app/ansible/inventory/group_vars - DIR_LOGS_TASKS=/app/tasks_logs volumes: - ${SSH_KEY_DIR:-~/.ssh}:/app/ssh_keys:ro - ${HOMELAB_DATA_DIR:-./data}:/app/data - ${ANSIBLE_INVENTORY:-./ansible/inventory}:/app/ansible/inventory - ${ANSIBLE_PLAYBOOKS:-./ansible/playbooks}:/app/ansible/playbooks - ${ANSIBLE_GROUP_VARS:-./ansible/inventory/group_vars}:/app/ansible/inventory/group_vars - ${HOMELAB_LOG_DIR:-./logs}:/app/logs - ${DIR_LOGS_TASKS:-./tasks_logs}:/app/tasks_logs networks: - homelab-network healthcheck: test: ["CMD", "curl", "-f", "http://homelab-dashboard:7070/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s networks: homelab-network: driver: bridge volumes: homelab_data: driver: local homelab_logs: driver: local