Github pages

When setting a blog on GitHub pages I found a bit hard for me to understand what should be set for DNS to run it on my custom domain.

There is quite good introductory for the process in documentation but still I was quite confused at the start. Unknown terms and fact that I’m not familiar with DNS. I mean I haven’t seen it from my college times.

I wanted the following setup

War of terminology

Repository settings

For a GitHub repository being availble on GitHub Pages (meaning under you need to set it up. Go by tab Settings at your repository and scroll down to section GitHub Pages. There you change None to a branch that should represent the content of the GitHub Pages.

When you want to use custom domain you need to define what will be at box Custom domain. In my case I want to have the blog available under then I set there My user page should be available under then I set there Now when you do so GitHub starts with automatic recirection to the custom domain. In my case it means that going to will automatically redirect to

When you define something into Custom domain box then GitHub automatically creates a file named CNAME with only one line consisting the specified Custom domain. Changing or creating content of the CNAME file has the same result as setting that in the box under Settings tab.

DNS settings

First (probably obvious but…​) observation was that changes in settings are propagated really in terms of hours, not sooner

After spending some time with help of GitHub documentation and some blog posts similar to this one I got the following settings started to work.

Documentation recommends using ALIAS DNS record for apex domain settings than A record but ALIAS is not available in DNS settings of my provider.

I just took a cz domain from first offer came from Google search at

@ IN SOA 2017020502 10800 3600 604800 3600
@ IN A
@ IN A
@ IN TXT "v=spf1 ~all"
_autodiscover._tcp IN SRV 0 0 443

For more information on SOA, NS and TXT record check some DNS documentation. Here briefly what I understood - SOA is compulsory, defines who is responsible for domain, NS is required by my provider here and defines where name servers for this domains are, TXT serves information about the server (e.g. dns account info).

Now the A records are needed for apex domain redirection works. It points to GitHub DNS servers diretly. The blog (for redirect to project page) uses CNAME record and points to my Finally www CNAME record serves to get available my user page at domain and (TODO: here does not work or what?)

Tools to help

When I start to play with setup I found out two tools helpful.

  • command dig - dig With a more consense output dig +nostats +nocomments +nocmd

  • Chrome developer tools (Ctrl+Shift+I) - got to tab Network, enable checkbox Preserve log and go to e.g. You can see in headers that you were redirected to by 301 Moved Permanently. If you do some changes then info that the page was moved permanently is remembered in browser cache and browser then directly shows you the without consultation with DNS server (301 Moved Permanently (from disk cache)). To workaround that clear the Chrome’s cache - go to chrome://net-internals, click a small down pointing arrow in right corner and choose Tools → Clear cache from drop down menu.

comments powered by Disqus