PodWarden Hub
User ManualPodWarden Hub

Admin: DDNS

Manage Hub DDNS domains and view all allocated subdomains across organizations

PodWarden Hub admin DDNS
DDNS management with domain cards showing Cloudflare zone details and subdomain usage, plus a global subdomain allocation table

What you see

URL: /dashboard/admin/ddns (requires admin or superadmin role)

The Admin DDNS page provides management of the DDNS domains that Hub offers to users, and a global view of all subdomain allocations across organizations. The page has two tabs: Domains and Subdomains.

Domains tab

The Domains tab lists every DDNS domain. That includes the platform pool offered to all users, and the Cloudflare zones that organizations brought themselves ("Your domains", Pro and Enterprise). Each domain is backed by a Cloudflare zone. Tokens are stored encrypted and are never shown on this page.

Each domain card shows:

FieldDescription
DomainThe parent domain name
StatusEnabled or Disabled
Org: nameShown on organization-owned domains: the organization that brought the zone
CredentialVerified ✓ (date), Token rejected, Unverified, or Token removed (see below)
Cloudflare Zone IDThe Cloudflare zone identifier
SubdomainsUsage count out of maximum (e.g. 42 / 3000) with a progress bar; organization domains show "(no limit)"
AddedDate the domain was registered in Hub

Subdomains tab

The Subdomains tab shows a table of all subdomain allocations across all organizations.

ColumnDescription
FQDNFull domain name (e.g. swift17.example.com)
OrganizationName of the organization that owns the subdomain
IPCurrent IP address the subdomain resolves to, or "--" if not set
Typeauto (system-generated slug) or custom (user-chosen slug)
StatusCurrent DNS status
CreatedDate the subdomain was allocated

Available actions

ActionWhereWhat it does
Add DomainDomains tab headerOpens a modal to register a new Cloudflare-managed domain
Enable/DisablePer domain cardToggles whether the domain accepts new subdomain allocations. On an organization domain, a disable you make here can't be undone by the organization: they see Disabled by PodWarden until an admin enables it again.
DeleteTrash icon per platform domain cardRemoves the domain. Only works if no subdomains are allocated. Not offered on organization domains.

Platform admins can view and disable organization-owned domains, but cannot change their token or zone, or delete them. The organization manages those from its own DDNS page. | Switch tabs | Tab buttons | Toggle between Domains and Subdomains views |

Add domain modal

FieldDescription
DomainThe domain name
Cloudflare Zone IDZone identifier from the Cloudflare dashboard
Cloudflare API TokenToken with Zone → DNS → Edit (and ideally Zone → Zone → Read) on the zone. Hub verifies it (token active, zone matches, temporary TXT record written and deleted) before saving, and stores it encrypted.
Max SubdomainsMaximum number of subdomains allowed under this domain (default: 3000)

Status badges

Domain status

BadgeMeaning
EnabledDomain is active and accepts new subdomain allocations
DisabledDomain is paused. Existing subdomains continue to work, but no new allocations are allowed.

Credential status

BadgeMeaning
Verified ✓ (date)The token passed verification
Token rejectedCloudflare rejected the token, found by a failed IP push or the daily ddns-credential-check job. The last error is shown on the card.
UnverifiedStored without verification (operator escape hatch)
Token removedThe organization was deleted and its token purged
Disabled by PodWardenAn admin disabled this organization domain; the organization cannot resume it

The ddns-credential-check curator job runs daily at 05:40 UTC. It re-checks every stored token without writing any DNS records, flips a domain between Verified and Token rejected, and writes a ddns_domain_credential_invalid audit entry when a token becomes rejected. To run it on demand, queue a ddns-credential-check job with POST /api/v1/admin/curator/jobs; its result is readable at GET /api/v1/admin/curator/jobs?type=ddns-credential-check.

Subdomain status

BadgeMeaning
ActiveDNS record is live and being updated
PendingSubdomain is allocated but DNS record has not been created yet
ErrorThe last DNS update failed
SuspendedSubdomain has been suspended

Related docs