GitHub Pages: setting up custom domain

cmegown picture cmegown · Apr 16, 2014 · Viewed 8.6k times · Source

I've got an organization page set up and running in GitHub and things seem to be working...but I'm a little confused. I'd like to actually understand the process since the GitHub Help article refers to taking advantage of their CDN and DoS services, so bear with me.

Step 1: Created CNAME file in repo with domain 'example.com'

Step 2: Grabbed IP from dig example.github.io +nostats +nocomments +nocmd

Step 3: Entered IP from Step 2 into the 'A' record (see image below)

I decided to stop here and see where it got me, and to my surprise it seems to have done the trick. The example.github.io domain correctly redirects to the example.com domain and displays the content from the repo.

However I was informed that after the DNS props, you can dig example.com and see the CNAME record pointing to example.github.io. I do not see this, and I dislike thinking that I didn't set things up correctly. Any thoughts/comments/tips welcome, thanks!

GoDaddy Domain DNS Zone File

Answer

nicksuch picture nicksuch · Apr 16, 2014

In order to take advantage of the CDN and DoS services provided by GitHub Pages, you'll need to set up a Subdomain (eg www.example.com or blog.example.com) instead of an Apex domain (example.com).

From the GitHub Help page you referenced:

If you are using an apex domain (example.com) instead of a subdomain (www.example.com) and your DNS provider does not support ALIAS records, then your only option is to use A records for your DNS. This will not give you the benefit of our Content Delivery Network.

Here's a setup (looks like you're using GoDaddy for DNS) that would work to get your Organization Pages working as desired:

DNS zone file on GoDaddy, set up for GitHub Pages

This is actually for a Project Page within an Organization, but for either one, you'll set the CNAME record for www to organization.github.io, not something like organization.github.io/project. Don't change the A record for @ (mine is the default from GoDaddy).

If you want to get your Apex domain (example.com) to redirect to the new subdomain (www.example.com), then you can point your Apex to your subdomain with Domain Forwarding like this:

Domain Forwarding on GoDaddy

With that setup, you'll get to take advantage of GitHub's CDN, which you may notice is provided through fastly. Here's how my domain looks to dig:

Domain info for www.jekyllblog.com