Skip to content

Instantly share code, notes, and snippets.

@deanrather
Last active March 13, 2024 19:16
Show Gist options
  • Star 83 You must be signed in to star a gist
  • Fork 26 You must be signed in to fork a gist
  • Save deanrather/6d63e9dcdf823957b171 to your computer and use it in GitHub Desktop.
Save deanrather/6d63e9dcdf823957b171 to your computer and use it in GitHub Desktop.
Free Hosting on GitHub

Free Hosting on GitHub

This guide will take you from zero webserver knowledge, to having your own free site hosted on GitHub. The only non-free bit is registering a domain name, which can be as cheap as $5/year.

This guide uses CrazyDomains as the Registrar, FreeDNS as the DNS, and GitHub as the Webserver.


1) Domain Registration and Setup

The Domain Name Registrar is where you register your domain name, This is the only not free step. Your registrar needs to know which DNS Server will associate the Domain Name with a WebServer. I've got mine with CrazyDomains, as they offer the cheapest .com.au domains.

  1. Create an account, chuck in your payment details, etc.
  2. Register your domain(s)
  3. Set your domains Name Servers to ns1.afraid.org, ns2, ns3, and ns4.

2) Setup your DNS

Edit: Ignore this section and use CloudFlare instead. It's free, it's a DNS, It's also a CDN, and it's also easier.

I use FreeDNS, cause it's free, and doesn't look too dodgy.

  1. Set up an account, login
  2. Go to Domains -> Add a Domain to FreeDNS Domain: yourdomain.com Shared State: Shared: Public
  3. Go to Domains -> yourdomain.com -> Manage
  4. Click the Add button at the top-right Type: A Subdomain: blank Domain: yourdomain.com (public)(broken!) Destination: 192.30.252.153 Wildcard: ticked
  5. Click the Add button next to yourdomain.com again, same settings as last time, but this time use the ip: 192.30.252.154

3) Set Up your Website on GitHub

  1. go to GitHub.com, create an account, and login
  2. Create a new Repository, mame it yourdomain.com, leave it as Public, and tick `Initialize this repository with a README``
  3. Click Settings (in the right-middle -- for the repo, not for your account)
  4. Under Github Pages click Automatic page generator
  5. Make any changes you like, put in a Google Analytics ID if you want awesome free stats, click Continue to layouts
  6. Choose a theme, or just go with the default and change it later. Click Publish Page
  7. Your page can now be viewed at http://<your github username>.github.io/<your repo name>/
  8. Back on your repo's page, click Branch: master and change to the gh-pages branch
  9. Next to the Branch selector, it will show yourdomain.com, followed by a / and a +. Click the + to create a new file.
  10. Name the file CNAME and put yourdomain.com inside as the contents, click Commit new file to save it.

--

That's it! Everything's set up!

It can take up to 24 hours for the Domain Name to propogate, sometimes it only takes a few minutes thoughu. Until then browsing to yourdomain.com will just return an error. If you're really impatient you can add it to your computer's hosts file, otherwise just wait it out.


Tips

  • Settings -> Default branch: gh-pages
@786-Barbershop
Copy link

Hey this is so good and worked well but i have a query is that can we place our own web pages in it rather than theme?
Thanks!

Yeah same question here plz someone Answer as soon as possible....

@alechash
Copy link

alechash commented May 22, 2021

Hey this is so good and worked well but i have a query is that can we place our own web pages in it rather than theme?
Thanks!

Yeah same question here plz someone Answer as soon as possible....

Hey! Yeah, you can. Just put an index.html in the root as the main page.

For 404 pages, you can create a 404.html for all 404 pages.

For anything else like other html, css, js, img, and other files, just create those and link them relatively and you’ll be all set!

Thanks,
If you have anymore questions, just ask, you can also mention me or other people!

@mjon
Copy link

mjon commented Aug 31, 2021

Thanks. This was all super helpful. I got CrazyDomains + Cloudflare + Github Pages up and running, just with index.html (I'll add on a Jekyll theme later). The big thing to note is that "It can take up to 24 hours for the Domain Name to propagate". I had to wait overnight before all the pieces clicked into place for mine.

I was confused for a while about the "Enforce HTTPS" check box on the Github's Pages Settings. In the end, I read that that I could safely keep that unchecked because Cloudflare takes care of that.

@alechash
Copy link

alechash commented Sep 1, 2021

Awesome! I use Cloudflare for all my domains and the checkbox is disabled on all of them

@KruZira
Copy link

KruZira commented Nov 11, 2021

Todo: use CloudFlare instead of FreeDNS

bro please do you know where i can get a free domain like example.com or example.net for free without any verification , 🙏

@Sputnik771100
Copy link

Sputnik771100 commented Dec 3, 2021

Lots of interesting ideas here, and thanks Dean for getting this convo started. But what i am thinking is...Is there any way to get something like this up and running on github? https://www.esgthereport.com

@CoderDood
Copy link

freenom and 000webhost is good and $0 dollars unlimited

@CoderDood
Copy link

My Domain:
inventionmaster.tk
Im not done with my website

@CoderDood
Copy link

dont click css buttons or it will show red screen!!

@CoderDood
Copy link

@Sputnik771100 https://www.esgthereport.com is already registered did u go to that page yourself yet??

@JehadZug
Copy link

CrazyDomains have crazy prices, I would use any other providers, google is one of the best, run away from CrazyDomains.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment