Skip to content

DNS Management

Learn how to manage DNS zones and records directly through the brdz CLI.

brdz includes built-in DNS management, allowing you to:

  • Create and manage DNS zones
  • Add and update DNS records
  • Integrate DNS with your applications
  • Clone records from existing domains

Use brdz DNS when you want:

  • Centralized management of apps and DNS
  • API-driven DNS updates
  • Tight integration between apps and domains
  • Simplified workflow for deployments
Terminal window
brdz dns:zones:create example.com

Note the zone ID and nameserver addresses from the output.

At your domain registrar, update nameservers to:

ns1.brdz-dns.com
ns2.brdz-dns.com
ns3.brdz-dns.com
ns4.brdz-dns.com

Note: Exact nameserver addresses will be provided when you create the zone.

Terminal window
brdz dns:zones:verify <zone>

Wait for verification (may take up to 48 hours for DNS propagation).

Terminal window
# A record for root domain
brdz dns:records:create example.com A 192.0.2.1 --zone <zone>
# CNAME for www
brdz dns:records:create www.example.com CNAME example.com --zone <zone>
# MX for email
brdz dns:records:create example.com MX mail.example.com --zone <zone> --prio 10
Terminal window
# Create zone
brdz dns:zones:create example.com
# After nameserver delegation and verification...
# Point root to your app
brdz dns:records:create example.com A 192.0.2.1 --zone <zone>
# Add www subdomain
brdz dns:records:create www.example.com CNAME example.com --zone <zone>
# Add hostname to your app
brdz hostnames:create example.com
brdz hostnames:create www.example.com
Terminal window
# MX records for email
brdz dns:records:create example.com MX mail.example.com --zone <zone> --prio 10
brdz dns:records:create example.com MX mail2.example.com --zone <zone> --prio 20
# SPF record
brdz dns:records:create example.com TXT "v=spf1 mx ~all" --zone <zone>
# DMARC policy
brdz dns:records:create _dmarc.example.com TXT "v=DMARC1; p=quarantine;" --zone <zone>
# DKIM (get from email provider)
brdz dns:records:create default._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..." --zone <zone>
Terminal window
# Create zone
brdz dns:zones:create example.com
# Main website
brdz dns:records:create example.com A 192.0.2.1 --zone <zone>
brdz dns:records:create www.example.com CNAME example.com --zone <zone>
# API endpoint
brdz dns:records:create api.example.com A 192.0.2.2 --zone <zone>
# Admin panel
brdz dns:records:create admin.example.com A 192.0.2.3 --zone <zone>
# Docs
brdz dns:records:create docs.example.com A 192.0.2.4 --zone <zone>

Migrate an existing domain by cloning its records:

Terminal window
# Create new zone
brdz dns:zones:create example.com
# Clone all records from existing DNS
brdz dns:records:clone example.com
# Review imported records
brdz dns:records:list --zone <zone>
# Update nameservers at registrar
# (to the nameservers provided when creating the zone)
Terminal window
# Create zone
brdz dns:zones:create example.com
# Output will include:
# - Zone ID (save this!)
# - Nameserver addresses
# - Next steps
Terminal window
brdz dns:zones:list
Terminal window
brdz dns:zones:get <zone>
Terminal window
# Check if nameservers are configured
brdz dns:zones:verify <zone>
# Manually check DNS
dig example.com NS
Terminal window
# Temporarily disable without deleting
brdz dns:zones:deactivate <zone>
Terminal window
# Permanently delete (deletes all records)
brdz dns:zones:delete <zone>
Terminal window
# A record (IPv4)
brdz dns:records:create example.com A 192.0.2.1 --zone <zone>
# AAAA record (IPv6)
brdz dns:records:create example.com AAAA 2001:db8::1 --zone <zone>
# CNAME record
brdz dns:records:create www.example.com CNAME example.com --zone <zone>
# MX record
brdz dns:records:create example.com MX mail.example.com --zone <zone> --prio 10
# TXT record
brdz dns:records:create example.com TXT "v=spf1 mx ~all" --zone <zone>
Terminal window
brdz dns:records:list --zone <zone>
Terminal window
# Get record ID from list
brdz dns:records:list --zone <zone>
# Delete record
brdz dns:records:delete <record-id>
Terminal window
# Manage DNS in brdz
brdz dns:zones:create example.com
brdz dns:records:create example.com A 192.0.2.1 --zone <zone>
# Point to external hosting
# DNS managed by brdz, hosting elsewhere
Terminal window
# Create DNS zone
brdz dns:zones:create example.com
# Deploy app
brdz releases:create release.zip
# Add hostname
brdz hostnames:create example.com
# Create DNS record pointing to brdz
brdz dns:records:create example.com A <brdz-ip> --zone <zone>
Terminal window
# One zone, multiple apps
brdz dns:zones:create example.com
# Frontend app
brdz ctx:use # Select frontend app
brdz hostnames:create www.example.com
brdz dns:records:create www.example.com CNAME <brdz-target> --zone <zone>
# API app
brdz ctx:use # Select api app
brdz hostnames:create api.example.com
brdz dns:records:create api.example.com CNAME <brdz-target> --zone <zone>

Keep a record of your zone IDs:

Terminal window
echo "example.com zone: example.com" >> dns-zones.txt

Use low TTL (300 seconds) during setup:

Terminal window
brdz dns:records:create example.com A 192.0.2.1 --zone <zone> --ttl 300

Increase TTL once stable:

Terminal window
# Delete old record
brdz dns:records:delete <record-id>
# Recreate with higher TTL
brdz dns:records:create example.com A 192.0.2.1 --zone <zone> --ttl 3600

Always verify zone and records before changing nameservers:

Terminal window
# Check records exist
brdz dns:records:list --zone <zone>
# Test resolution
dig @ns1.brdz-dns.com example.com

Before migrating:

Terminal window
# Export current DNS
dig example.com ANY > dns-backup.txt
# Or clone records
brdz dns:records:clone example.com

After DNS changes:

  • Check from multiple locations
  • Monitor application availability
  • Watch for certificate issues
  • Test email delivery (if applicable)

Symptoms: dns:zones:verify fails

Solutions:

  1. Check nameservers at registrar match zone nameservers
  2. Wait for propagation (up to 48 hours)
  3. Test delegation:
    Terminal window
    dig example.com NS
    dig @ns1.brdz-dns.com example.com SOA

Symptoms: dig example.com doesn’t return records

Solutions:

  1. Verify zone is active:
    Terminal window
    brdz dns:zones:get <zone>
  2. Check records exist:
    Terminal window
    brdz dns:records:list --zone <zone>
  3. Test directly against nameservers:
    Terminal window
    dig @ns1.brdz-dns.com example.com

Symptoms: Email delivery fails

Solutions:

  1. Verify MX records:
    Terminal window
    dig example.com MX
  2. Check SPF record:
    Terminal window
    dig example.com TXT | grep spf
  3. Test email configuration:
    Terminal window
    # Use online tools like mxtoolbox.com
#!/bin/bash
ZONE="example.com"
# Add multiple records
brdz dns:records:create example.com A 192.0.2.1 --zone $ZONE
brdz dns:records:create www.example.com CNAME example.com --zone $ZONE
brdz dns:records:create api.example.com A 192.0.2.2 --zone $ZONE
#!/bin/bash
# Update A record with current IP
ZONE_ID="abc123"
NEW_IP=$(curl -s ifconfig.me)
# Delete old record
OLD_RECORD_ID=$(brdz dns:records:list --zone $ZONE | grep "home.example.com" | awk '{print $1}')
brdz dns:records:delete $OLD_RECORD_ID
# Create new record
brdz dns:records:create home.example.com A $NEW_IP --zone $ZONE

When migrating DNS to brdz:

  • Create zone in brdz
  • Export existing DNS records
  • Clone or recreate records in brdz
  • Verify all records are correct
  • Lower TTL on existing DNS
  • Wait for old TTL to expire
  • Update nameservers at registrar
  • Monitor DNS propagation
  • Verify zone verification
  • Test all services (web, email, etc.)
  • Monitor for 24-48 hours
  • Increase TTL for stability