44 lines
1.1 KiB
YAML
44 lines
1.1 KiB
YAML
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
|