cfddns: rebuild on private fork with management web UI

- Swap image from favonia/cloudflare-ddns:latest to
  git.alexzaw.dev/alexz/cloudflare-ddns:latest (private fork with
  cmd/manager binary that wraps the original ddns updater)
- Expose web UI on internal port 8080, traefik-routable
- Add CFDDNS_WEB_USER/CFDDNS_WEB_PASSWORD basic-auth form fields
- Repurpose existing DOMAINS/PROXIED/UPDATE_CRON/TZ as first-run seed
  for the YAML config that the UI manages thereafter
- Mount ${APP_DATA_DIR}/data:/config for persistent cfddns.yaml
- Healthcheck on /healthz via 127.0.0.1 (alpine wget)
- Bump tipi_version 7 -> 8 to trigger app update
This commit is contained in:
2026-05-18 01:18:39 -07:00
parent 03a9b49bf0
commit 57b71da781
4 changed files with 119 additions and 42 deletions

View File

@@ -1,13 +1,26 @@
services:
cfddns:
image: 'favonia/cloudflare-ddns:latest'
image: 'git.alexzaw.dev/alexz/cloudflare-ddns:latest'
environment:
- 'CFDDNS_LISTEN=:8080'
- 'CFDDNS_CONFIG_FILE=/config/cfddns.yaml'
- 'CFDDNS_WEB_USER=${CFDDNS_WEB_USER}'
- 'CFDDNS_WEB_PASSWORD=${CFDDNS_WEB_PASSWORD}'
- 'CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN}'
- 'DOMAINS=${DOMAINS}'
- 'DOMAINS=${DOMAINS:-}'
- 'PROXIED=${PROXIED:-false}'
- 'UPDATE_CRON=${UPDATE_CRON:-@every 5m}'
- 'TZ=${TZ:-UTC}'
volumes:
- '${APP_DATA_DIR}/data:/config'
healthcheck:
test: ['CMD-SHELL', 'wget --spider -q http://127.0.0.1:8080/healthz || exit 1']
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
x-runtipi:
is_main: true
internal_port: 8080
x-runtipi:
schema_version: 2