# Cloudflare DDNS Keeps your Cloudflare DNS A/AAAA records in sync with the public IP address of this server, with a web management UI for managing the domain list and settings. This is a private fork of [favonia/cloudflare-ddns](https://github.com/favonia/cloudflare-ddns) with an added `manager` binary that wraps the upstream updater. The manager: - Loads configuration from `cfddns.yaml` in the app data dir. - Exposes a web UI (HTTP basic auth) for adding, editing, and removing domain entries, toggling proxy state per domain, editing the Cloudflare API token, and viewing live status and logs. - Supervises the upstream `ddns` binary as a child process and restarts it cleanly when the configuration changes. ## First install On first start the manager seeds `cfddns.yaml` from the `DOMAINS`, `PROXIED`, `UPDATE_CRON`, `TZ`, and `CLOUDFLARE_API_TOKEN` env vars (set via the install form). After that the YAML file is the source of truth and the env vars are ignored. If both `DOMAINS` and `CLOUDFLARE_API_TOKEN` are empty at first start, the manager will not launch the updater — it logs a warning and waits for you to configure domains via the web UI. ## Web UI Open the app from the Runtipi dashboard. Log in with the username/password you set during install (`CFDDNS_WEB_USER` / `CFDDNS_WEB_PASSWORD`). The UI shows: - Current public IPv4/IPv6 (scraped from updater output) - Last update time and status - Updater process state and PID - Domain table with add / edit / delete actions - Per-domain proxied checkbox - Cron schedule, timezone, and API token editor - Live tail of the updater log - "Refresh now" button that triggers an immediate update ## Storage Configuration: `${APP_DATA_DIR}/data/cfddns.yaml` (mode 0600 — contains your API token). ## Source - Fork: https://git.alexzaw.dev/alexz/cloudflare-ddns - Upstream: https://github.com/favonia/cloudflare-ddns