Reclaiming Jekyll (Two Years Later)

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 pull to 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):

git pull

and then

jekyll build

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. 

Get Your Grav On

Get Your Grav On

One of the many roles I have a Reclaim Hosting is keeping an eye on our Twitter account and interacting with folks there. I'm no power-user on Twitter but it's a space I know and I'm happy to support and respond to folks there. On Saturday a tweet came in from a new user, Paul Hibbitts mentioning his beginning explorations with our service.

I like to know who I'm talking to so I took a peak at his profile and ended up at his blog where he's doing some really interesting work bringing content out of the LMS and into his own domain using a piece of software that was new to me called Grav. Grav (which is short for Gravity) is a flat file CMS meaning there's no database to deal with. It uses Markdown for authoring content similar to the ever-popular Jekyll, but what struck me was not only how easy it is to install on a server (you just need PHP to make it run) but also that there were admin tools built in to allow an authoring interface, a configuration area, plugin and theme installation and updating, even backups.

Get Your Grav On

Get Your Grav On

I knew I had to play some more with it so I decided to give it a go. The install was dead simple, just drop the files in, setup a user by going to the site for the first time and creating one, and you're off and running. I figured as easy as that was, you'd still have to wrestle with FTP so why not build an installer for it using Installatron? So that's exactly what I did. In the process I was able move the user setup process out of the first page load and into the install itself by capturing that information and writing it to the necessary files.

Get Your Grav On

In addition Grav offers "Skeletons" which are basically packaged versions of their application anyone can build that are bundled with a theme, plugins, and content to jumpstart a new site. Imagine wanting to setup a Photography site using WordPress and all the steps you might take to get there, this let's you skip all that are start up with an instance that already has everything pre-configured so you can start adding your content and playing around rather than spending hours fiddling with a bunch of settings and finding the right plugins and themes. So I grabbed a few skeletons and made it a dropdown option to choose one during install.

Get Your Grav On

I have to say so far I'm super impressed. Not only is Grav fast since there's no database to make calls back and forth to, but it feels like incredibly modern software. There are some geekier options around the edges for power users (per-page front matter editing and YAML configs to name a few) but the presence of an admin plugin that puts the authoring tools right there on your domain is a huge step that's often absent in most flat file content management systems. And of course the big benefit to systems like this is since all the data lives directly on the file system your entire site is infinitely more portable. Moving to a new host or grabbing a backup is as simple as taking a copy of your files and away you go.

I spent so much time playing with getting the installer right I haven't had time to really dig into the software itself more than just a few quick tests but I have a lot of great plans for it. For one, our current documentation is built using Mkdocs but that requires external editing, pushing to the server, and then running a script to build the site each time a change is made. Converting it to Grav means we could author directly on the site and still push to our GitHub repo automatically and have both be in sync. And wouldn't you know there's an RTFM skeleton that looks heavily based on the ReadTheDocs theme we currently use with Mkdocs and looks perfect for documentation sites.

Get Your Grav On

I'm looking forward to playing with Grav more to see what's possible and I know plenty of folks who have been interested in the idea of flat file systems like Jekyll that could appreciate an easy-to-use system like this. We pushed the installer out to our shared hosting systems over the weekend and I hope to get access for all our institutions in the coming week as we make some updates there. And I'm glad to have been curious enough to read Paul's bio and find out more about what he's up to with it as a starting point for my own explorations with the software. As always, Reclaim Hosting gives back to me as much if not more than what I give it.

Get Your Grav On

Get Your Grav On

One of the many roles I have a Reclaim Hosting is keeping an eye on our Twitter account and interacting with folks there. I'm no power-user on Twitter but it's a space I know and I'm happy to support and respond to folks there. On Saturday a tweet came in from a new user, Paul Hibbitts mentioning his beginning explorations with our service.

I like to know who I'm talking to so I took a peak at his profile and ended up at his blog where he's doing some really interesting work bringing content out of the LMS and into his own domain using a piece of software that was new to me called Grav. Grav (which is short for Gravity) is a flat file CMS meaning there's no database to deal with. It uses Markdown for authoring content similar to the ever-popular Jekyll, but what struck me was not only how easy it is to install on a server (you just need PHP to make it run) but also that there were admin tools built in to allow an authoring interface, a configuration area, plugin and theme installation and updating, even backups.

Get Your Grav On

Get Your Grav On

I knew I had to play some more with it so I decided to give it a go. The install was dead simple, just drop the files in, setup a user by going to the site for the first time and creating one, and you're off and running. I figured as easy as that was, you'd still have to wrestle with FTP so why not build an installer for it using Installatron? So that's exactly what I did. In the process I was able move the user setup process out of the first page load and into the install itself by capturing that information and writing it to the necessary files.

Get Your Grav On

In addition Grav offers "Skeletons" which are basically packaged versions of their application anyone can build that are bundled with a theme, plugins, and content to jumpstart a new site. Imagine wanting to setup a Photography site using WordPress and all the steps you might take to get there, this let's you skip all that are start up with an instance that already has everything pre-configured so you can start adding your content and playing around rather than spending hours fiddling with a bunch of settings and finding the right plugins and themes. So I grabbed a few skeletons and made it a dropdown option to choose one during install.

Get Your Grav On

I have to say so far I'm super impressed. Not only is Grav fast since there's no database to make calls back and forth to, but it feels like incredibly modern software. There are some geekier options around the edges for power users (per-page front matter editing and YAML configs to name a few) but the presence of an admin plugin that puts the authoring tools right there on your domain is a huge step that's often absent in most flat file content management systems. And of course the big benefit to systems like this is since all the data lives directly on the file system your entire site is infinitely more portable. Moving to a new host or grabbing a backup is as simple as taking a copy of your files and away you go.

I spent so much time playing with getting the installer right I haven't had time to really dig into the software itself more than just a few quick tests but I have a lot of great plans for it. For one, our current documentation is built using Mkdocs but that requires external editing, pushing to the server, and then running a script to build the site each time a change is made. Converting it to Grav means we could author directly on the site and still push to our GitHub repo automatically and have both be in sync. And wouldn't you know there's an RTFM skeleton that looks heavily based on the ReadTheDocs theme we currently use with Mkdocs and looks perfect for documentation sites.

Get Your Grav On

I'm looking forward to playing with Grav more to see what's possible and I know plenty of folks who have been interested in the idea of flat file systems like Jekyll that could appreciate an easy-to-use system like this. We pushed the installer out to our shared hosting systems over the weekend and I hope to get access for all our institutions in the coming week as we make some updates there. And I'm glad to have been curious enough to read Paul's bio and find out more about what he's up to with it as a starting point for my own explorations with the software. As always, Reclaim Hosting gives back to me as much if not more than what I give it.