Skip to main content

Cloning from a Jekyll Github Repo to Reclaim Hosting

4 min read

The tl;dr : My course site is now being hosted on OU Create via Reclaim Hosting as well as Github. This means I own it, first and foremost, but also have Github as a means of sharing the resource and as a backup hosting solution. To learn more, check out an earlier blog post, find my course site here, and the Github repo here.

--

Tim Owens wrote a very clear tutorial on how to now host Jekyll blogs on Reclaim Hosting. This was super news as I've been wanting to do this for two main reasons:

1. Add SSL which is not currently supported on Github pages. This is important to me as I drop the course site into our LMS which will not show the site if it hasn't been secured.

2. Not be solely reliant on Github for hosting. Would much prefer to have the site self-hosted with Github Pages available for both broader sharing and redundancy.

Below I'm going to walk through how I did it, mostly for my own memory, as this is arguably a very niche need. But happy to share for those who are also interested.

First, I followed Tim's blog post on how to enable Jekyll on CPanel. This is fairly straight forward. I'm iving the cliff notes here as Tim explains it better, but go to "Setup the Ruby app."

Then SSH into your server (I did this via terminal), enter your virtual environment (mine is source /home/anyhennk/rubyvenv/jekyll/2.2/bin/activate and then run gem install jekyll.

I then navigated into my my public_html via cd public_html and then made my way into the prpubs.us directory (cd_prpubs.us).

Next, I created the folder "ghsummer16" with the mkdir ghsummer16 command.

Now we get into the Github part. Tim was kind enough to enable git across the OU Create servers for me. This led me to then run through a handful of git commands:

First, git init to initial an empty Git repo.

Then, git remote add origin https://github.com/prpubs/summer16.git

Followed by git fetch --all (which fetched what I had identified as the origin). This led to the following code.

Fetching origin

remote: Counting objects: 372, done.

remote: Compressing objects: 100% (158/158), done.

remote: Total 372 (delta 88), reused 0 (delta 0), pack-reused 209

Receiving objects: 100% (372/372), 22.83 MiB | 966 KiB/s, done.

Resolving deltas: 100% (168/168), done.

From https://github.com/prpubs/summer16

 * [new branch]      gh-pages   -> origin/gh-pages

 * [new branch]      master     -> origin/master

 * [new branch]      pr/1       -> origin/pr/1

Here, I screwed up and pulled the origin/master with git pull origin master instead of gh-pages (more on that later).

Now I needed to do the Jekyll build. First, as Tim mentions, run gem install bigdecimal to ward off errors message. Then run jekyll build.

Next (because I screwed up earlier) I switched to the gh-pages branch with git checkout gh-pages and another jekyll build command.

Next, I need to have a URL point to the _site folder within the directory. So I setup the subdomain jekyllsummer.prpubs.us to point to prpubs.us/ghsummer16/_site.

And finally I added SSL via Let's Encrypt which is built into the CPanel (free SSL cert!)

And I'm good to go!

Yes, this explanation is quick and dirty and doesn't give a lot of context. Sorry about that (that's why it's over on the notebook instead of the better blog :-). AGAIN, I highly suggest you first read Tim's post and use only as needed!