Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

Host a Domain on ZCP DNS and Manage Records with the CLI

This tutorial takes a domain you already own and makes ZSoftly the authoritative DNS host for it. You create the zone, read the name servers, add records, delegate the domain at your registrar, and confirm it resolves on the public internet. Every step runs from your terminal with the zcp CLI.

By the end you have:

  • A DNS zone hosted on ZCP
  • A, CNAME, TXT, and MX records resolving on the public internet
  • The domain delegated from your registrar to ZSoftly name servers

Plan for about 20 minutes of hands-on work. Name server changes then propagate on their own. Propagation often completes within a few hours. Allow up to 48 hours.

  • A ZSoftly Public Cloud account. Sign up first if you do not have one.
  • The zcp CLI installed. See the CLI installation guide.
  • A domain you control at a registrar, with access to change its name servers.
  • dig for verification (preinstalled on macOS and Linux, and part of bind-utils or dnsutils on most distributions).

Create a token in the portal under Profile → API Tokens, then add a CLI profile and paste it.

zcp profile add default
zcp auth validate

DNS commands are account-level, so you do not set a region or project for them. The one exception is zcp dns create, which takes --project.

Add your domain. This creates the DNS zone ZSoftly serves.

zcp dns create --name example.com --project default-9
FIELD VALUE
Slug examplecom
Name example.com
Status false
Created 2026-07-18T21:08:26.000000Z

Copy the Slug. Every record command uses it. List it again anytime:

zcp dns list

ZCP adds the zone’s SOA and NS records for you. The NS record set names the two servers you delegate to.

zcp dns show examplecom
Records (2):
NAME TYPE CONTENT TTL
example.com. SOA ns1.zsoftly.ca. hostmaster.zsoftly.ca. 2026071801 10800 3600 604800 3600 3600
example.com. NS ns1.zsoftly.ca., ns2.zsoftly.ca. 3600

Write down both name servers. You need them in Step 5.

Create the records to route your traffic. Use @ for the zone root and a relative name for subdomains.

# Point the root and www at your server
zcp dns record-create --domain examplecom --name @ --type A --content 203.0.113.10
zcp dns record-create --domain examplecom --name www --type A --content 203.0.113.10
# Point an app subdomain at another host
zcp dns record-create --domain examplecom --name api --type A --content 203.0.113.20
# Alias blog to www
zcp dns record-create --domain examplecom --name blog --type CNAME --content www.example.com.
# Publish an SPF policy
zcp dns record-create --domain examplecom --name @ --type TXT --content '"v=spf1 -all"'
# Route mail (MX needs a priority)
zcp dns record-create --domain examplecom --name @ --type MX --content mail.example.com. --priority 10

Confirm the zone holds what you expect:

zcp dns show examplecom

Now make ZSoftly authoritative. At the registrar where you bought the domain, replace the name servers with the two ZSoftly values from Step 3. The exact menu differs per registrar. The Domains page has a per-registrar quick reference.

Before you delegate, query a ZSoftly name server directly. It answers even while the old name servers are still live at your registrar.

dig A www.example.com @ns2.zsoftly.ca +short
# 203.0.113.10

After you delegate and propagation catches up, any public resolver returns the same answer.

dig NS example.com @1.1.1.1 +short
# ns1.zsoftly.ca.
# ns2.zsoftly.ca.
dig A www.example.com @1.1.1.1 +short
# 203.0.113.10

To watch global propagation, use an online checker such as whatsmydns.net with the NS record type.