{ "1.2.8": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/ddns-updater/1.2.8", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "v2.9.0_1.2.8", "version": "1.2.8", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "v2.9.0", "capabilities": [], "categories": [ "networking" ], "changelog_url": "https://github.com/qdm12/ddns-updater/releases", "date_added": "2024-08-01", "description": "Lightweight universal DDNS Updater with web UI", "home": "https://github.com/qdm12/ddns-updater", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/ddns-updater/icons/icon.svg", "keywords": [ "ddns-updater", "ddns" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "ddns-updater", "run_as_context": [ { "description": "DDNS Updater runs as any non-root user.", "gid": 568, "group_name": "ddns-updater", "uid": 568, "user_name": "ddns-updater" } ], "screenshots": [ "https://media.sys.truenas.net/apps/ddns-updater/screenshots/screenshot1.png" ], "sources": [ "https://github.com/qdm12/ddns-updater", "https://hub.docker.com/r/qmcgaw/ddns-updater" ], "title": "DDNS Updater", "train": "community", "version": "1.2.8" }, "schema": { "groups": [ { "name": "DDNS Updater Configuration", "description": "Configure DDNS Updater" }, { "name": "User and Group Configuration", "description": "Configure User and Group for DDNS Updater" }, { "name": "Network Configuration", "description": "Configure Network for DDNS Updater" }, { "name": "Storage Configuration", "description": "Configure Storage for DDNS Updater" }, { "name": "Labels Configuration", "description": "Configure Labels for DDNS Updater" }, { "name": "Resources Configuration", "description": "Configure Resources for DDNS Updater" } ], "questions": [ { "variable": "TZ", "group": "DDNS Updater Configuration", "label": "Timezone", "schema": { "type": "string", "default": "Etc/UTC", "required": true, "$ref": [ "definitions/timezone" ] } }, { "variable": "ddns", "label": "", "group": "DDNS Updater Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "period", "label": "Update Period", "description": "Default period of IP address check, following this format:
\n5m = 5 minutes
\n1h = 1 hour
\n1h30m = 1 hour 30 minutes\n", "schema": { "type": "string", "default": "5m", "required": true } }, { "variable": "update_cooldown_period", "label": "Update Cooldown Period", "description": "Duration to cooldown between updates for each record.\nThis is useful to avoid being rate limited or banned,\nfollowing this format:
\n5m = 5 minutes
\n1h = 1 hour
\n1h30m = 1 hour 30 minutes\n", "schema": { "type": "string", "default": "5m", "required": true } }, { "variable": "backup_period", "label": "Backup Period", "description": "Set to a period to enable zip backups of data/config.json and\ndata/updates.json in a zip file following this format:
\n0 = disabled
\n10h = 10 hours
\n20h30m = 20 hours 30 minutes\n", "schema": { "type": "string", "default": "24h", "required": true } }, { "variable": "http_timeout", "label": "HTTP Timeout", "description": "Default timeout for HTTP requests, following this format:
\n10s = 10 seconds
\n1m = 1 minute
\n1m30s = 1 minute 30 seconds\n", "schema": { "type": "string", "default": "10s", "required": true } }, { "variable": "public_dns_timeout", "label": "Public IP DNS Timeout", "description": "Public IP DNS query timeout, following this format:
\n3s = 3 seconds
\n1m = 1 minute
\n1m30s = 1 minute 30 seconds\n", "schema": { "type": "string", "default": "3s", "required": true } }, { "variable": "shoutrrr_addresses", "label": "Shoutrrr Addresses", "description": "List of Shoutrrr addresses to send notifications to.
\nSee https://containrrr.dev/shoutrrr/0.7/services/overview/ for more information.\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "address", "label": "Address", "schema": { "type": "string", "required": true } } ] } }, { "variable": "public_ip_dns_providers", "label": "Public IP DNS Providers", "description": "Providers to obtain the public IP address (IPv4 and/or IPv6)", "schema": { "type": "list", "min": 1, "required": true, "default": [ { "provider": "all" } ], "items": [ { "variable": "publicIpDnsProviderEntry", "label": "Public IP DNS Provider Entry", "schema": { "type": "dict", "attrs": [ { "variable": "provider", "label": "Provider", "schema": { "type": "string", "required": true, "enum": [ { "value": "all", "description": "All providers" }, { "value": "opendns", "description": "opendns" }, { "value": "cloudflare", "description": "Cloudflare" } ] } } ] } } ] } }, { "variable": "public_ip_http_providers", "label": "Public IP HTTP Providers", "description": "Providers to obtain the public IP address (IPv4 and/or IPv6)", "schema": { "type": "list", "min": 1, "required": true, "default": [ { "provider": "all", "custom": "" } ], "items": [ { "variable": "public_ip_http_provider_entry", "label": "Public IP HTTP Provider Entry", "schema": { "type": "dict", "attrs": [ { "variable": "provider", "label": "Provider", "schema": { "type": "string", "required": true, "enum": [ { "value": "all", "description": "All providers" }, { "value": "custom", "description": "Custom Provider" }, { "value": "ipify", "description": "ipify" }, { "value": "ifconfig", "description": "ifconfig" }, { "value": "ipinfo", "description": "ipinfo" }, { "value": "spdyn", "description": "spdyn" }, { "value": "ipleak", "description": "ipleak" }, { "value": "icanhazip", "description": "icanhazip" }, { "value": "ident", "description": "ident" }, { "value": "nnev", "description": "nnev" }, { "value": "wtfismyip", "description": "wtfismyip" }, { "value": "seeip", "description": "seeip" }, { "value": "changeip", "description": "changeip" } ] } }, { "variable": "custom", "label": "Custom Value", "schema": { "type": "string", "show_if": [ [ "provider", "=", "custom" ] ], "default": "", "required": true } } ] } } ] } }, { "variable": "public_ipv4_http_providers", "label": "Public IPv4 HTTP Providers", "description": "Providers to obtain the public IPv4 address", "schema": { "type": "list", "min": 1, "required": true, "default": [ { "provider": "all", "custom": "" } ], "items": [ { "variable": "public_ipv4_http_provider_entry", "label": "Public IPv4 HTTP Provider Entry", "schema": { "type": "dict", "attrs": [ { "variable": "provider", "label": "Provider", "schema": { "type": "string", "required": true, "enum": [ { "value": "all", "description": "All providers" }, { "value": "custom", "description": "Custom Provider" }, { "value": "ipleak", "description": "ipleak" }, { "value": "ipify", "description": "ipify" }, { "value": "icanhazip", "description": "icanhazip" }, { "value": "ident", "description": "ident" }, { "value": "nnev", "description": "nnev" }, { "value": "wtfismyip", "description": "wtfismyip" }, { "value": "seeip", "description": "seeip" } ] } }, { "variable": "custom", "label": "Custom Value", "schema": { "type": "string", "show_if": [ [ "provider", "=", "custom" ] ], "default": "", "required": true } } ] } } ] } }, { "variable": "public_ipv6_http_providers", "label": "Public IPv6 HTTP Providers", "description": "Providers to obtain the public IPv6 address", "schema": { "type": "list", "min": 1, "required": true, "default": [ { "provider": "all", "custom": "" } ], "items": [ { "variable": "public_ipv6_http_provider_entry", "label": "Public IPv6 HTTP Provider Entry", "schema": { "type": "dict", "attrs": [ { "variable": "provider", "label": "Provider", "schema": { "type": "string", "required": true, "enum": [ { "value": "all", "description": "All providers" }, { "value": "custom", "description": "Custom Provider" }, { "value": "ipleak", "description": "ipleak" }, { "value": "ipify", "description": "ipify" }, { "value": "icanhazip", "description": "icanhazip" }, { "value": "ident", "description": "ident" }, { "value": "nnev", "description": "nnev" }, { "value": "wtfismyip", "description": "wtfismyip" }, { "value": "seeip", "description": "seeip" } ] } }, { "variable": "custom", "label": "Custom Value", "schema": { "type": "string", "show_if": [ [ "provider", "=", "custom" ] ], "default": "", "required": true } } ] } } ] } }, { "variable": "public_ip_fetchers", "label": "Public IP Fetchers", "description": "Fetcher types to obtain the public IP address", "schema": { "type": "list", "min": 1, "required": true, "default": [ { "provider": "all" } ], "items": [ { "variable": "public_ip_fetcher_entry", "label": "Public IP Fetcher Entry", "schema": { "type": "dict", "attrs": [ { "variable": "provider", "label": "Fetcher", "schema": { "type": "string", "required": true, "enum": [ { "value": "all", "description": "All providers" }, { "value": "http", "description": "HTTP" }, { "value": "dns", "description": "DNS" } ] } } ] } } ] } }, { "variable": "config", "label": "Config", "description": "Configure DDNS Updater.", "schema": { "type": "list", "items": [ { "variable": "config_item", "label": "Config Item", "schema": { "type": "dict", "attrs": [ { "variable": "provider", "label": "Provider", "description": "The provider to use for DDNS Updater.", "schema": { "type": "string", "required": true, "enum": [ { "value": "aliyun", "description": "Aliyun" }, { "value": "allinkl", "description": "All-Inkl" }, { "value": "changeip", "description": "ChangeIP" }, { "value": "cloudflare", "description": "Cloudflare" }, { "value": "dd24", "description": "DD24" }, { "value": "ddnss", "description": "DDNSS" }, { "value": "desec", "description": "Desec" }, { "value": "digitalocean", "description": "Digital Ocean" }, { "value": "dnsomatic", "description": "DNS O Matic" }, { "value": "dnspod", "description": "DNS Pod" }, { "value": "domeneshop", "description": "Domeneshop" }, { "value": "dondominio", "description": "Don Dominio" }, { "value": "dreamhost", "description": "Dreamhost" }, { "value": "duckdns", "description": "Duck DNS" }, { "value": "dyn", "description": "DynDNS" }, { "value": "dynu", "description": "Dynu" }, { "value": "dynv6", "description": "DynV6" }, { "value": "easydns", "description": "EasyDNS" }, { "value": "freedns", "description": "FreeDNS" }, { "value": "gandi", "description": "Gandi" }, { "value": "gcp", "description": "GCP" }, { "value": "godaddy", "description": "GoDaddy" }, { "value": "goip", "description": "GoIP.de" }, { "value": "he", "description": "He.net" }, { "value": "hetzner", "description": "Hetzner" }, { "value": "infomaniak", "description": "Infomaniak" }, { "value": "inwx", "description": "INWX" }, { "value": "ionos", "description": "Ionos" }, { "value": "linode", "description": "Linode" }, { "value": "loopia", "description": "Loopia" }, { "value": "luadns", "description": "LuaDNS" }, { "value": "myaddr", "description": "MyAddr" }, { "value": "namecheap", "description": "Namecheap" }, { "value": "name.com", "description": "Name.com" }, { "value": "namesilo", "description": "Namesilo" }, { "value": "netcup", "description": "Netcup" }, { "value": "njalla", "description": "Njalla" }, { "value": "noip", "description": "NoIP" }, { "value": "nowdns", "description": "NowDNS" }, { "value": "opendns", "description": "OpenDNS" }, { "value": "ovh", "description": "OVH" }, { "value": "porkbun", "description": "Porkbun" }, { "value": "route53", "description": "Amazon Route 53" }, { "value": "selfhost.de", "description": "Selfhost.de" }, { "value": "servercow", "description": "Servercow" }, { "value": "spdyn", "description": "Spdyn.de" }, { "value": "strato", "description": "Strato" }, { "value": "variomedia", "description": "Variomedia" }, { "value": "vultr", "description": "Vultr" }, { "value": "zoneedit", "description": "ZoneEdit" } ] } }, { "variable": "domain", "label": "Domain", "description": "Domain
\nFor example:
\n- example.com
\n- *.example.com
\n- sub.example.com
\n", "schema": { "type": "string", "show_if": [ [ "provider", "!=", "" ] ], "required": true } }, { "variable": "host", "label": "Host (Deprecated)", "description": "DEPRECATED. Use Domain field instead.
\nIt will be removed in the near future.\n", "schema": { "type": "string", "show_if": [ [ "provider", "!=", "" ] ], "default": "" } }, { "variable": "ip_version", "label": "IP Version", "description": "IP Version.
\nFor example: IPv4\n", "schema": { "type": "string", "show_if": [ [ "provider", "!=", "" ] ], "default": "", "enum": [ { "value": "ipv4", "description": "IPv4" }, { "value": "ipv6", "description": "IPv6" }, { "value": "", "description": "IPv4 and IPv6" } ] } }, { "variable": "aliyun_access_key", "label": "Access Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "aliyun" ] ] } }, { "variable": "aliyun_secret_key", "label": "Secret Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "aliyun" ] ] } }, { "variable": "allinkl_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "allinkl" ] ] } }, { "variable": "allinkl_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "allinkl" ] ] } }, { "variable": "changeip_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "changeip" ] ] } }, { "variable": "changeip_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "changeip" ] ] } }, { "variable": "cloudflare_zone_id", "label": "Zone ID", "description": "You can find it in the Overview tab of your domain.", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "cloudflare_ttl", "label": "TTL", "description": "1 = Automatic
\n600 = 10 minutes\n", "schema": { "type": "int", "required": true, "min": 1, "default": 1, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "cloudflare_proxied", "label": "Proxied", "description": "True = Proxied
\nFalse = DNS Only\n", "schema": { "type": "boolean", "default": false, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "cloudflare_token", "label": "Token", "description": "You can find it in the Overview tab of your domain.", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "cloudflare_user_service_key", "label": "User Service Key", "description": "You can find it in the Overview tab of your domain.", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "cloudflare_email", "label": "Email", "description": "You can find it in the Overview tab of your domain.", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "cloudflare_api_key", "label": "API Key", "description": "You can find it in the Overview tab of your domain.", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "cloudflare" ] ] } }, { "variable": "dd24_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dd24" ] ] } }, { "variable": "ddnss_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "ddnss" ] ] } }, { "variable": "ddnss_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "ddnss" ] ] } }, { "variable": "ddnss_dual_stack", "label": "Dual Stack", "description": "True = Dual Stack
\nFalse = IPv4 Only\n", "schema": { "type": "boolean", "default": false, "show_if": [ [ "provider", "=", "ddnss" ] ] } }, { "variable": "desec_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "desec" ] ] } }, { "variable": "digital_ocean_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "digitalocean" ] ] } }, { "variable": "dnsomatic_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "dnsomatic" ] ] } }, { "variable": "dnsomatic_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dnsomatic" ] ] } }, { "variable": "dnspod_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dnspod" ] ] } }, { "variable": "domeneshop_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "domeneshop" ] ] } }, { "variable": "domeneshop_secret", "label": "Secret", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "domeneshop" ] ] } }, { "variable": "dondominio_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "dondominio" ] ] } }, { "variable": "dondominio_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dondominio" ] ] } }, { "variable": "dreamhost_key", "label": "Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dreamhost" ] ] } }, { "variable": "duckdns_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "duckdns" ] ] } }, { "variable": "dyn_client_key", "label": "Client Key", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "dyn" ] ] } }, { "variable": "dyn_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "dyn" ] ] } }, { "variable": "dynu_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "dynu" ] ] } }, { "variable": "dynu_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dynu" ] ] } }, { "variable": "dynu_group", "label": "Group", "schema": { "type": "string", "show_if": [ [ "provider", "=", "dynu" ] ] } }, { "variable": "dynv6_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "dynv6" ] ] } }, { "variable": "easydns_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "easydns" ] ] } }, { "variable": "easydns_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "easydns" ] ] } }, { "variable": "freedns_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "freedns" ] ] } }, { "variable": "gandi_key", "label": "API Key (Deprecated)", "description": "Use Personal Access Token instead.", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "gandi" ] ] } }, { "variable": "gandi_personal_access_token", "label": "Personal Access Token", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "gandi" ] ] } }, { "variable": "gandi_ttl", "label": "TTL", "schema": { "type": "int", "required": true, "default": 3600, "show_if": [ [ "provider", "=", "gandi" ] ] } }, { "variable": "gcp_project", "label": "Project", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "gcp" ] ] } }, { "variable": "gcp_zone", "label": "Zone", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "gcp" ] ] } }, { "variable": "gcp_credentials", "label": "Credentials", "schema": { "type": "string", "required": true, "private": true, "max_length": 10000, "show_if": [ [ "provider", "=", "gcp" ] ] } }, { "variable": "godaddy_key", "label": "API Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "godaddy" ] ] } }, { "variable": "godaddy_secret", "label": "Secret", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "godaddy" ] ] } }, { "variable": "goip_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "goip" ] ] } }, { "variable": "goip_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "goip" ] ] } }, { "variable": "he_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "he" ] ] } }, { "variable": "hetzner_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "hetzner" ] ] } }, { "variable": "hetzner_zone_identifier", "label": "Zone Identifier", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "hetzner" ] ] } }, { "variable": "hetzner_ttl", "label": "TTL", "schema": { "type": "int", "show_if": [ [ "provider", "=", "hetzner" ] ] } }, { "variable": "infomaniak_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "infomaniak" ] ] } }, { "variable": "infomaniak_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "infomaniak" ] ] } }, { "variable": "inwx_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "inwx" ] ] } }, { "variable": "inwx_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "inwx" ] ] } }, { "variable": "ionos_api_key", "label": "API Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "ionos" ] ] } }, { "variable": "linode_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "linode" ] ] } }, { "variable": "loopia_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "loopia" ] ] } }, { "variable": "loopia_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "loopia" ] ] } }, { "variable": "luadns_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "luadns" ] ] } }, { "variable": "luadns_email", "label": "Email", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "luadns" ] ] } }, { "variable": "myaddr_key", "label": "Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "myaddr" ] ] } }, { "variable": "namecheap_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "namecheap" ] ] } }, { "variable": "namecom_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "name.com" ] ] } }, { "variable": "namecom_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "name.com" ] ] } }, { "variable": "namecom_ttl", "label": "TTL", "schema": { "type": "int", "required": true, "default": 300, "show_if": [ [ "provider", "=", "name.com" ] ] } }, { "variable": "namesilo_key", "label": "Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "namesilo" ] ] } }, { "variable": "namesilo_ttl", "label": "TTL", "schema": { "type": "int", "min": 3600, "max": 2592001, "show_if": [ [ "provider", "=", "namesilo" ] ] } }, { "variable": "netcup_api_key", "label": "API Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "netcup" ] ] } }, { "variable": "netcup_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "netcup" ] ] } }, { "variable": "netcup_customer_number", "label": "Customer Number", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "netcup" ] ] } }, { "variable": "njalla_key", "label": "Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "njalla" ] ] } }, { "variable": "noip_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "noip" ] ] } }, { "variable": "noip_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "noip" ] ] } }, { "variable": "nowdns_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "nowdns" ] ] } }, { "variable": "nowdns_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "nowdns" ] ] } }, { "variable": "opendns_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "opendns" ] ] } }, { "variable": "opendns_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "opendns" ] ] } }, { "variable": "ovh_mode", "label": "Mode", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "ovh" ] ], "enum": [ { "value": "api", "description": "API" }, { "value": "dynamic", "description": "Dynamic" } ] } }, { "variable": "ovh_username", "label": "Username", "schema": { "type": "string", "show_if": [ [ "provider", "=", "ovh" ] ] } }, { "variable": "ovh_password", "label": "Password", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "ovh" ] ] } }, { "variable": "ovh_api_endpoint", "label": "API Endpoint", "schema": { "type": "string", "show_if": [ [ "provider", "=", "ovh" ] ] } }, { "variable": "ovh_app_key", "label": "App Key", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "ovh" ] ] } }, { "variable": "ovh_app_secret", "label": "App Secret", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "ovh" ] ] } }, { "variable": "ovh_consumer_key", "label": "Consumer Key", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "ovh" ] ] } }, { "variable": "porkbun_api_key", "label": "API Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "porkbun" ] ] } }, { "variable": "porkbun_secret_api_key", "label": "Secret API Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "porkbun" ] ] } }, { "variable": "porkbun_ttl", "label": "TTL", "schema": { "type": "int", "default": 3600, "show_if": [ [ "provider", "=", "porkbun" ] ] } }, { "variable": "route53_access_key", "label": "Access Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "route53" ] ] } }, { "variable": "route53_secret_key", "label": "Secret Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "route53" ] ] } }, { "variable": "route53_zone_id", "label": "Zone ID", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "route53" ] ] } }, { "variable": "route53_ttl", "label": "TTL", "schema": { "type": "int", "default": 300, "show_if": [ [ "provider", "=", "route53" ] ] } }, { "variable": "selfhostde_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "selfhost.de" ] ] } }, { "variable": "selfhostde_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "selfhost.de" ] ] } }, { "variable": "servercow_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "servercow" ] ] } }, { "variable": "servercow_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "servercow" ] ] } }, { "variable": "servercow_ttl", "label": "TTL", "schema": { "type": "int", "required": true, "default": 120, "show_if": [ [ "provider", "=", "servercow" ] ] } }, { "variable": "spdyn_token", "label": "Token", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "spdyn" ] ] } }, { "variable": "spdyn_username", "label": "Username", "schema": { "type": "string", "show_if": [ [ "provider", "=", "spdyn" ] ] } }, { "variable": "spdyn_password", "label": "Password", "schema": { "type": "string", "private": true, "show_if": [ [ "provider", "=", "spdyn" ] ] } }, { "variable": "strato_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "strato" ] ] } }, { "variable": "variomedia_email", "label": "Email", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "variomedia" ] ] } }, { "variable": "variomedia_password", "label": "Password", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "variomedia" ] ] } }, { "variable": "vultr_api_key", "label": "API Key", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "vultr" ] ] } }, { "variable": "vultr_ttl", "label": "TTL", "schema": { "type": "int", "show_if": [ [ "provider", "=", "vultr" ] ] } }, { "variable": "zoneedit_username", "label": "Username", "schema": { "type": "string", "required": true, "show_if": [ [ "provider", "=", "zoneedit" ] ] } }, { "variable": "zoneedit_token", "label": "Token", "schema": { "type": "string", "required": true, "private": true, "show_if": [ [ "provider", "=", "zoneedit" ] ] } } ] } } ] } }, { "variable": "additional_envs", "label": "Additional Environment Variables", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string" } } ] } } ] } } ] } }, { "variable": "run_as", "label": "", "group": "User and Group Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "user", "label": "User ID", "description": "The user id that DDNS Updater files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that DDNS Updater files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } } ] } }, { "variable": "network", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "web_port", "label": "WebUI Port", "schema": { "type": "dict", "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.
\n- Publish: The port will be published on the host for external access.
\n- Expose: The port will be exposed for inter-container communication.
\n- None: The port will not be exposed or published.
\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n", "schema": { "type": "string", "default": "published", "enum": [ { "value": "published", "description": "Publish port on the host for external access" }, { "value": "exposed", "description": "Expose port for inter-container communication" }, { "value": "", "description": "None" } ] } }, { "variable": "port_number", "label": "Port Number", "schema": { "type": "int", "default": 30007, "min": 1, "max": 65535, "required": true } }, { "variable": "host_ips", "label": "Host IPs", "description": "IPs on the host to bind this port", "schema": { "type": "list", "show_if": [ [ "bind_mode", "=", "published" ] ], "default": [], "items": [ { "variable": "host_ip", "label": "Host IP", "schema": { "type": "string", "required": true, "$ref": [ "definitions/node_bind_ip" ] } } ] } } ] } }, { "variable": "host_network", "label": "Host Network", "description": "Bind to the host network. It's recommended to keep this disabled.\n", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "storage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "data", "label": "DDNS Updater Data Storage", "description": "The path to store DDNS Updater Data.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "default": "ix_volume", "enum": [ { "value": "host_path", "description": "Host Path (Path that already exists on the system)" }, { "value": "ix_volume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "ix_volume_config", "label": "ixVolume Configuration", "description": "The configuration for the ixVolume dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "ix_volume" ] ], "$ref": [ "normalize/ix_volume" ], "attrs": [ { "variable": "acl_enable", "label": "Enable ACL", "description": "Enable ACL for the storage.", "schema": { "type": "boolean", "default": false } }, { "variable": "dataset_name", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "required": true, "hidden": true, "default": "data" } }, { "variable": "acl_entries", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "acl_enable", "=", true ] ], "attrs": [] } } ] } }, { "variable": "host_path_config", "label": "Host Path Configuration", "schema": { "type": "dict", "show_if": [ [ "type", "=", "host_path" ] ], "attrs": [ { "variable": "acl_enable", "label": "Enable ACL", "description": "Enable ACL for the storage.", "schema": { "type": "boolean", "default": false } }, { "variable": "acl", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "acl_enable", "=", true ] ], "attrs": [], "$ref": [ "normalize/acl" ] } }, { "variable": "path", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "acl_enable", "=", false ] ], "required": true } } ] } } ] } }, { "variable": "additional_storage", "label": "Additional Storage", "schema": { "type": "list", "default": [], "items": [ { "variable": "storageEntry", "label": "Storage Entry", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.
\nSMB Share: Is a SMB share that is mounted to as a volume.\n", "schema": { "type": "string", "required": true, "default": "ix_volume", "enum": [ { "value": "host_path", "description": "Host Path (Path that already exists on the system)" }, { "value": "ix_volume", "description": "ixVolume (Dataset created automatically by the system)" }, { "value": "cifs", "description": "SMB/CIFS Share (Mounts a volume to a SMB share)" } ] } }, { "variable": "read_only", "label": "Read Only", "description": "Mount the volume as read only.", "schema": { "type": "boolean", "default": false } }, { "variable": "mount_path", "label": "Mount Path", "description": "The path inside the container to mount the storage.", "schema": { "type": "path", "required": true } }, { "variable": "host_path_config", "label": "Host Path Configuration", "schema": { "type": "dict", "show_if": [ [ "type", "=", "host_path" ] ], "attrs": [ { "variable": "acl_enable", "label": "Enable ACL", "description": "Enable ACL for the storage.", "schema": { "type": "boolean", "default": false } }, { "variable": "acl", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "acl_enable", "=", true ] ], "attrs": [], "$ref": [ "normalize/acl" ] } }, { "variable": "path", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "acl_enable", "=", false ] ], "required": true } } ] } }, { "variable": "ix_volume_config", "label": "ixVolume Configuration", "description": "The configuration for the ixVolume dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "ix_volume" ] ], "$ref": [ "normalize/ix_volume" ], "attrs": [ { "variable": "acl_enable", "label": "Enable ACL", "description": "Enable ACL for the storage.", "schema": { "type": "boolean", "default": false } }, { "variable": "dataset_name", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "required": true, "default": "storage_entry" } }, { "variable": "acl_entries", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "acl_enable", "=", true ] ], "attrs": [], "$ref": [ "normalize/acl" ] } } ] } }, { "variable": "cifs_config", "label": "SMB Configuration", "description": "The configuration for the SMB dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "cifs" ] ], "attrs": [ { "variable": "server", "label": "Server", "description": "The server to mount the SMB share.", "schema": { "type": "string", "required": true } }, { "variable": "path", "label": "Path", "description": "The path to mount the SMB share.", "schema": { "type": "string", "required": true } }, { "variable": "username", "label": "Username", "description": "The username to use for the SMB share.", "schema": { "type": "string", "required": true } }, { "variable": "password", "label": "Password", "description": "The password to use for the SMB share.", "schema": { "type": "string", "required": true, "private": true } }, { "variable": "domain", "label": "Domain", "description": "The domain to use for the SMB share.", "schema": { "type": "string" } } ] } } ] } } ] } } ] } }, { "variable": "labels", "label": "", "group": "Labels Configuration", "schema": { "type": "list", "default": [], "items": [ { "variable": "label", "label": "Label", "schema": { "type": "dict", "attrs": [ { "variable": "key", "label": "Key", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } }, { "variable": "containers", "label": "Containers", "description": "Containers where the label should be applied", "schema": { "type": "list", "items": [ { "variable": "container", "label": "Container", "schema": { "type": "string", "required": true, "enum": [ { "value": "ddns", "description": "ddns" } ] } } ] } } ] } } ] } }, { "variable": "resources", "label": "", "group": "Resources Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "limits", "label": "Limits", "schema": { "type": "dict", "attrs": [ { "variable": "cpus", "label": "CPUs", "description": "CPUs limit for DDNS Updater.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for DDNS Updater.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "

DDNS Updater

DDNS Updater is a lightweight universal DDNS Updater with web UI

", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "v2.9.0", "capabilities": [], "categories": [ "networking" ], "changelog_url": "https://github.com/qdm12/ddns-updater/releases", "date_added": "2024-08-01", "description": "Lightweight universal DDNS Updater with web UI", "home": "https://github.com/qdm12/ddns-updater", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/ddns-updater/icons/icon.svg", "keywords": [ "ddns-updater", "ddns" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "ddns-updater", "run_as_context": [ { "description": "DDNS Updater runs as any non-root user.", "gid": 568, "group_name": "ddns-updater", "uid": 568, "user_name": "ddns-updater" } ], "screenshots": [ "https://media.sys.truenas.net/apps/ddns-updater/screenshots/screenshot1.png" ], "sources": [ "https://github.com/qdm12/ddns-updater", "https://hub.docker.com/r/qmcgaw/ddns-updater" ], "title": "DDNS Updater", "train": "community", "version": "1.2.8" } } }