services: cloudflare-ddns: image: oznu/cloudflare-ddns:latest container_name: cloudflare-ddns restart: ${RESTART_POLICY} env_file: - .env environment: - API_KEY=${CF_API_TOKEN} - ZONE=${CF_ZONE} - SUBDOMAIN=${CF_SUBDOMAIN} - PROXIED=${CF_PROXIED} - TTL=${CF_TTL} - CRON=${CF_CRON} volumes: - ${DATA_VOLUME}:/config cloudflare-ddns-ui: image: python:3.12-slim container_name: cloudflare-ddns-ui restart: unless-stopped env_file: - .env environment: - CF_API_TOKEN=${CF_API_TOKEN} - CF_ZONE=${CF_ZONE} - CF_SUBDOMAINS=${CF_SUBDOMAIN} - REFRESH_SECONDS=${UI_REFRESH_SECONDS} volumes: - ./ui:/app working_dir: /app command: > sh -c "pip install --no-cache-dir -r requirements.txt && python app.py" ports: - "${UI_PORT}:5000" healthcheck: test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:5000/health')"] interval: 30s timeout: 10s retries: 3 depends_on: - cloudflare-ddns