Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GitHub Pages: setting up custom domain

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

like image 709
cmegown Avatar asked Apr 16 '14 01:04

cmegown


People also ask

Is custom domain free in GitHub?

Follow the below steps to publish your own website onto GitHub Pages with a custom domain for absolutely no charges.

How do I redirect a custom domain to GitHub?

Go to your GitHub Pages repo, click Settings and below GitHub Pages, under Custom domain, enter your custom domain and click Save.

How do I link my domain to my GitHub repository?

On your site's repository, click the settings tab . Under custom domain, type your custom domain and save. GitHub will automatically create a commit with a CNAME file at the root of your repository. Visit the dashboard provided by your domain provider and add a CNAME record pointing to your subdomain.


2 Answers

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

like image 84
nicksuch Avatar answered Sep 20 '22 18:09

nicksuch


It is also possible to use a CNAME record for an APEX domain using the free DNS service provided by CloudFlare in which case you can also use your domain without the www (or any other subdomain) and still benefit from CDN & DoS.

I've written a step-by-step guide here: Speed up your GitHub Pages website with CloudFlare

PS: Apparently using ALIAS records is a bad idea... click here to see why.

like image 25
Adam B Avatar answered Sep 16 '22 18:09

Adam B