mdp-studio/Cloudflare DNS + Netlify Custom Domain

Register a custom domain in Netlify and create/update a matching Cloudflare CNAME record. Idempotent.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
subdomainSubdomain to create (e.g., "myapp" -> myapp.<domain>). Must match ^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$.yes
domainApex domain. Defaults to mdpstudio.com.au.nomdpstudio.com.au
netlify-site-idNetlify site API ID (Site settings -> General -> Site details -> Site ID).yes
netlify-auth-tokenNetlify personal access token. Treat as highly sensitive.yes
cf-zone-idCloudflare Zone ID for the apex domain (32 hex chars).yes
cf-api-tokenCloudflare API token scoped to Zone -> DNS -> Edit on the target zone only.yes
proxiedEnable Cloudflare proxying (orange cloud). Default false; orange cloud breaks Netlify LE HTTP-01 cert issuance.nofalse
create-onlyIf true, fails instead of updating an existing record that points somewhere else.nofalse
dry-runIf true, logs intended changes but performs no writes.nofalse
wait-for-certIf true, poll Netlify SSL endpoint until cert is provisioned before returning. Useful when downstream steps hit the FQDN over HTTPS.nofalse
cert-timeout-secondsMax seconds to wait for SSL provisioning. Ignored unless wait-for-cert=true. Range 10-900, default 300.no300
namedescription
fqdnFully-qualified domain name (e.g., myapp.mdpstudio.com.au).
cf-record-idCloudflare DNS record ID (empty on dry-run if record does not exist).
cf-actionOne of: created | updated | noop | skipped.
netlify-actionOne of: attached | already-attached | skipped.
netlify-urlThe <site>.netlify.app URL for the target Netlify site.
ssl-stateFinal SSL cert state (e.g., "provisioned", "provisioning"). Empty unless wait-for-cert=true.
ssl-provisionedtrue/false — whether SSL was provisioned within the timeout. Empty unless wait-for-cert=true.