DEV Community

MartinJ
MartinJ

Posted on

NgSysV2-4.5: Getting a Custom Domain

This post series is indexed at NgateSystems.com. You'll find a super-useful keyword search facility there too.

Last reviewed: Nov '24

4. Introduction

The URL for your live system is currently something like https://svelte-dev-81286.nw.r.appspot.com. You'll surely want something snappier than this! For a very reasonable annual fee (currently around $20pa), commercial "domain retailers" such as SquareSpace will let you front-end your development with a market-friendly mygreatsite.com "custom URL".

Here's a brief description of the procedure that you would follow once you've purchased a custom URL:

4.1 Verify Domain Ownership:

  • In the left-hand menu of the App Engine dashboard, navigate to Settings > Custom Domains.
  • Click Add a Custom Domain.
  • If your domain is not yet verified Google will guide you through the steps to verify it. This typically involves adding a TXT record to your domain’s DNS settings.

4.2 Map the Domain to Your App:

Once the domain is verified, you can map it to your App Engine application:

  • In the Custom Domains section of App Engine Settings, select your custom domain from the list of verified domains.
  • Specify the subdomains (like www.example.com or just example.com) that you want to link to your app.
  • Google Cloud will provide the DNS records (usually CNAME, A and AAAA records) required to configure in your domain registrar’s settings.

4.3 Configure DNS Settings:

  • Go to your domain registrar (eg SquareSpace) and find the DNS settings for your domain.
  • Add the DNS records that Google provided during the domain mapping process as "custom" DNS records. These usually include:
    • a CNAME record: For subdomains like www, this points to ghs.googlehosted.com.
    • A records: For the root domain (like example.com), this will point to specific IP addresses provided by Google Cloud.
    • AAAA records: For the root domain (like example.com), this will point to specific IP addresses provided by Google Cloud.

After I'd finished doing this on the registration for ngatesystems.com at SquareSpace, my DNS custom records looked like this:

Image showing typical custom DNS record registrations

A few words of explanation might be helpful here. "A" records are what the web's Domain Name Servers use to translate a URL such as ngatesystems.com into an IPv4 (32-bit) address like 216.239.32.21 that targets a physical machine. Except, in this case, you know this can't be quite right because when you chose the location of your App Engine machine, you selected it from a list of dozens. This address is actually the address of Google's "Global Load Balancer". I guess that you're given four addresses for this in order to provide redundancy. Additionally, you're given four "AAAA" records mapping to IPv6 (128-bit) addresses. This new standard enables the web to support many more physical targets than the original IPv4 scheme. Anyway, to sum up, a DNS record like @ A 216.239.32.21 says "map a request for ngatesystems.com (the @ symbol is a shortcut for the root address of your site) to a machine at 216.239.32.21

Finally, the CNAME record, which stands for 'Canonical Name', directs traffic for ngatesystems.com's subdomain at www.ngatesystems.com to the Google traffic handler at ghs.googlehosted.com. It's called a 'Canonical' Name because it provides a unique reference for resolving the domain to its correct destination, simplifying DNS management and ensuring consistent routing.

4.4 Set Up SSL (Enable use of HTTPS addresses):

  • Google Cloud automatically provisions SSL certificates for your custom domain. If you visit the Custom Domains section after mapping your domain, you'll see the SSL status as "Provisioning." It usually takes a few minutes to complete.
  • Once complete, your app will be accessible over HTTPS.

4.5 Wait for DNS Propagation:

  • DNS changes can take some time to propagate, so your custom domain might not work immediately. This process can take a few minutes to several hours, depending on your registrar.

Top comments (0)