Files
runtipi/apps/cfddns/config.json
alexz 8fb5c904d9 cfddns: auto-generate WEB_PASSWORD via random form-field type
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.
2026-05-18 01:21:25 -07:00

88 lines
2.7 KiB
JSON

{
"$schema": "../app-info-schema.json",
"name": "Cloudflare DDNS",
"id": "cfddns",
"available": true,
"port": 8533,
"exposable": true,
"dynamic_config": true,
"no_gui": false,
"tipi_version": 8,
"version": "v1-ui1",
"categories": [
"network",
"utilities"
],
"description": "Automatically updates Cloudflare DNS records with your current public IP. Manage domains, proxied state, schedule, API token, and view live status & logs from a built-in web UI. Fork of favonia/cloudflare-ddns with an added management binary.",
"short_desc": "Dynamic DNS for Cloudflare, with web UI",
"author": "alexz (fork of favonia/cloudflare-ddns)",
"source": "https://git.alexzaw.dev/alexz/cloudflare-ddns",
"website": "https://github.com/favonia/cloudflare-ddns",
"form_fields": [
{
"type": "text",
"label": "Web UI Username",
"env_variable": "CFDDNS_WEB_USER",
"required": true,
"default": "admin",
"min": 3,
"max": 50,
"hint": "Username for HTTP basic auth on the management UI"
},
{
"type": "random",
"label": "Web UI Password",
"env_variable": "CFDDNS_WEB_PASSWORD",
"required": true,
"min": 24,
"encoding": "hex",
"hint": "Auto-generated 24-char hex password for the UI. View it in the app's Settings tab and copy it to your browser when prompted."
},
{
"type": "password",
"label": "Cloudflare API Token",
"env_variable": "CLOUDFLARE_API_TOKEN",
"required": true,
"hint": "API token with Zone:DNS:Edit permissions. After first start the UI manages this."
},
{
"type": "text",
"label": "Initial Domains (comma-separated)",
"env_variable": "DOMAINS",
"required": false,
"hint": "First-run seed only — managed by the web UI afterward. e.g. home.example.com,vpn.example.com"
},
{
"type": "boolean",
"label": "Initial Proxied (Orange Cloud)",
"env_variable": "PROXIED",
"required": false,
"default": false,
"hint": "First-run seed only — proxy state is managed per-domain by the UI afterward"
},
{
"type": "text",
"label": "Initial Update Schedule",
"env_variable": "UPDATE_CRON",
"required": false,
"default": "@every 5m",
"hint": "First-run seed only — managed by the UI afterward. Cron expression or @every Xm."
},
{
"type": "text",
"label": "Initial Timezone",
"env_variable": "TZ",
"required": false,
"default": "UTC",
"hint": "First-run seed only — managed by the UI afterward"
}
],
"supported_architectures": [
"amd64"
],
"created_at": 1736974800000,
"updated_at": 1747555200000,
"deprecated": false,
"min_tipi_version": "4.5.0"
}