GitHub Pages: setting up custom domain
alias, apex, cname, dns, github-pages
Solution
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:
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:
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`:
Problem
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!