- README.md explains the image is built from the separate fork repo at
git.alexzaw.dev/alexz/cloudflare-ddns, lists what's in the image, and
documents how to rebuild + redeploy.
- build.sh clones (or refreshes) /tmp/cfddns-build from the fork via SSH,
runs docker build, and pushes to git.alexzaw.dev/alexz/cloudflare-ddns:latest.
Supports IMAGE_NAME/IMAGE_TAG/SOURCE_REPO overrides and passes positional
args through to docker build (e.g. --no-cache).
- .gitignore for build artifacts.
The previous 'password' type required a manual value during app
update, which blocked Runtipi from regenerating the compose file
(error: 'Variable Web UI Password is required'). Switch to the
'random' field type with min=24 hex chars so a strong password is
auto-generated on install and persisted in app.env, viewable in
the dashboard.
- 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