Two years ago Tim wrote a great post detailing how you can get Jekyll up and running in shared hosting on Reclaim Hosting.* I’m late to this party, obviously, but playing with Grav recently led me back into Github thanks to the Github Sync plugin. I had explored Jekyll back in 2014 briefly (almost 4 years ago now, really?!), but I forgot most everything. I wanted to see if my Grav repository in Github (synced with my Grav install on Reclaim) would allow me to run the Grav files through Github pages (which is powered by Jekyll). Is this all crystal clear now? Good.
Turns out I was on a fool’s errand. Grav is a flat-file CMS, but it needs PHP to dynamically those pages as a site—which I should have understood. So it will not run on Github Pages. Grav Sync is first and foremost for forking and collaborating on specific Grav instances (which I did understand), but I was trying to understand if those files could be seamlessly archived/translated into Jekyll given it was a repository, but I see my foolish ways now. Thank you, Tim 🙂 So while you can bring up individual pages from my Grav repository on Github, like the Welcome page:
But the site functionality of my Grav instance could not be reproduced. Lesson learned. But this did peak my interest in synching my locally installed Jekyll on Reclaim Hosting with my Jekyll on Github. So, I asked Tim and he suggested the following:
I’m not sure the exact steps but it would involve setting up the repo in Github and cloning it to your hosting account and > then you could use git commands like
git pullto grab the latest from git (even setup a cron every 10-15 min to do that piece).
Turns out that was the exact approach—I wish I was that good. I took the Github repo I have at jimgroom.github.io (which maps to jimgroom.me) and clone it into the jekyll folder on my Reclaim Hosting account. I made sure to run
jekyll build in the jimgroom.github.io folder so that it would build the site files in the
_site directory. After that I pointed the DNS of the subdomain jekyll.murderinc.biz to the new directory, i.e.
jekyll/jimgroom.github.io/_site and the same site at jimgroom.me on Github is cloned and also resolving through my shared hosting account at jekyll.murderinc.biz. The two things needed to sync changes made on Github is running the following commands in the jekyll/jimgroom.github.io folder on my shared hosting (making sure you are logged into command line through your virtual Ruby environment):
Pull in any changes and then rebuilds the site so those changes are published to
_site. None of this is new by any means, I am just playing catch up. Adam Croom went down this road two years ago in order to stick a fork in the LMS using Github, and I can say from firsthand experience that wrapping your head around Github can be intense, but that’s no excuse for an ed-tech to give up:
“An Ed-Tech spends her life getting into tense situations!”
-A Github Repo Man
*This setup requires CloudLinux, which we have installed on all our shared hosting servers.