DDNS-Updater

Get Started with Apps!
Keywords: ddns-updater, ddns
Train: Community
Home Page: https://github.com/qdm12/ddns-updater
Added: 2024-08-01
Last Updated: 2025-04-23
Lightweight universal DDNS Updater with web UI
Run as Context- DDNS Updater runs as any non-root user.
Group: 568 / ddns-updater
User: 568 / ddns-updater

App Metadata (Raw File)
{
"1.1.17": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/ddns-updater/1.1.17",
"last_update": "2025-04-23 17:40:39",
"required_features": [],
"human_version": "v2.9.0_1.1.17",
"version": "1.1.17",
"app_metadata": {
"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.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"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.1.17"
},
"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:</br>\n5m = 5 minutes</br>\n1h = 1 hour</br>\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:</br>\n5m = 5 minutes</br>\n1h = 1 hour</br>\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:</br>\n0 = disabled</br>\n10h = 10 hours</br>\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:</br>\n10s = 10 seconds</br>\n1m = 1 minute</br>\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:</br>\n3s = 3 seconds</br>\n1m = 1 minute</br>\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.</br>\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,
"empty": false,
"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,
"empty": false,
"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,
"empty": false,
"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,
"empty": false,
"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,
"empty": false,
"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": "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 </br>\nFor example:</br>\n- example.com</br>\n- *.example.com</br>\n- sub.example.com</br>\n",
"schema": {
"type": "string",
"show_if": [
[
"provider",
"!=",
""
]
],
"required": true
}
},
{
"variable": "host",
"label": "Host (Deprecated)",
"description": "DEPRECATED. Use Domain field instead.</br>\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. </br>\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": "ddnss_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "dnsomatic_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "duckdns_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "dyn_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "dynu_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "dynv6_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "he_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "infomaniak_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "namecheap_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "njalla_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "noip_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "opendns_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "ovh_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "selfhostde_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "servercow_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "spdyn_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "strato_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"variable": "variomedia_provider_ip",
"label": "Provider IP",
"schema": {
"type": "boolean",
"hidden": true
}
},
{
"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": "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 </br>\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 </br>\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 </br>\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",
"description": "Configure additional environment variables for DDNS Updater.",
"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",
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"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",
"description": "The port for DDNS Updater WebUI",
"schema": {
"type": "int",
"default": 30007,
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"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.</br>\nHost Path: Is a path that already exists on the system.\n",
"schema": {
"type": "string",
"required": true,
"immutable": 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,
"immutable": 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",
"description": "Additional storage for DDNS Updater.",
"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.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.\n",
"schema": {
"type": "string",
"required": true,
"default": "ix_volume",
"immutable": true,
"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,
"immutable": 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": "<h1>DDNS Updater</h1> <p><a href=\"https://github.com/qdm12/ddns-updater\">DDNS Updater</a> is a lightweight universal DDNS Updater with web UI</p>",
"changelog": null,
"chart_metadata": {
"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.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"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.1.17"
}
}
}
Support, maintenance, and documentation for applications within the Community catalog is handled by the TrueNAS community. The TrueNAS Applications Portal hosts but does not validate or maintain any linked resources associated with this app.