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:
39
apps/cfddns/metadata/description.md
Normal file
39
apps/cfddns/metadata/description.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user