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

@@ -4,30 +4,34 @@
"services": [
{
"name": "cfddns",
"image": "favonia/cloudflare-ddns:latest",
"image": "git.alexzaw.dev/alexz/cloudflare-ddns:latest",
"isMain": true,
"internalPort": 8080,
"environment": [
{ "key": "CFDDNS_LISTEN", "value": ":8080" },
{ "key": "CFDDNS_CONFIG_FILE", "value": "/config/cfddns.yaml" },
{ "key": "CFDDNS_WEB_USER", "value": "${CFDDNS_WEB_USER}" },
{ "key": "CFDDNS_WEB_PASSWORD", "value": "${CFDDNS_WEB_PASSWORD}" },
{ "key": "CLOUDFLARE_API_TOKEN", "value": "${CLOUDFLARE_API_TOKEN}" },
{ "key": "DOMAINS", "value": "${DOMAINS:-}" },
{ "key": "PROXIED", "value": "${PROXIED:-false}" },
{ "key": "UPDATE_CRON", "value": "${UPDATE_CRON:-@every 5m}" },
{ "key": "TZ", "value": "${TZ:-UTC}" }
],
"volumes": [
{
"key": "CLOUDFLARE_API_TOKEN",
"value": "${CLOUDFLARE_API_TOKEN}"
},
{
"key": "DOMAINS",
"value": "${DOMAINS}"
},
{
"key": "PROXIED",
"value": "${PROXIED:-false}"
},
{
"key": "UPDATE_CRON",
"value": "${UPDATE_CRON:-@every 5m}"
},
{
"key": "TZ",
"value": "${TZ:-UTC}"
"hostPath": "${APP_DATA_DIR}/data",
"containerPath": "/config",
"readOnly": false
}
]
],
"healthCheck": {
"test": "wget --spider -q http://127.0.0.1:8080/healthz || exit 1",
"interval": "30s",
"timeout": "5s",
"retries": 3,
"startPeriod": "10s"
}
}
]
}