So I have been having a rough go at running a blog lately.

Running a self-hosted Ghost install turned out to be an exercise in extreme frustration, and ended in a VERY satisfying ghost uninstall. But the blog bug had bitten me. I needed to self host a blog that I could ignore after an initial posting spree! It was my nerd-given right!

But what blogging system? I was out of the loop! I knew that I didn't want to run Ghost again... and I spent my time in the Wordpress/Drupal/Joomla mines ages ago back when I used to run World of Warcraft clan sites. What else was out there? Well, a quick Bing search (I transitioned to MS Edge as my browser on all my computers a while ago and never got around to changing the default search engine to Google) of "best self-hosted blog platforms" showed that a lot of these listing sites don't know what self-hosted means as they had all sorts of pre-hosted solutions in the list. But one site mentioned Grav so I took a look.

Grav is an interesting tool. It's flat-file based, so instead of dumping blog posts into a SQL database, it gets written to markdown files (something.md) in the folder structure. When a page is looked at a parser converts the markdown into HTML. This is both flexible and simple, which I appreciated. A quick peek at the system requirements (PHP 7.3+ as well as some PHP libraries) and I grabbed the Grav Core + Admin Plugin package and uploaded it to my webhost. (a small favor to the Grav team, should they ever see this... make the Download links on your webpage direct links to the .zip files to facilitate right-click copying the link and wgeting it on a remote system!)

The install was pretty straight forward, I needed to install a few PHP libs and extract the .zip file, and then configure Nginx. This is around where I ran into some problems, and almost all of them were brought on my myself. I quickly pointed Nginx to the proper directory and copied another entries PHP-FPM config and pasted in place. I didn't do any qualification to see if that entry was actually in use or pointing to the currently-installed PHP-FPM socket, so that gave me 502 errors for a bit. Once I got that sorted there were some (apparently common) permission issues that Grav had very good documentation about. Once I got past that hurdle, I ran into more Nginx config issues. Grav very kindly provide template nginx.conf files to look at that I natrually didn't look at, so once I found it I changed my config to include the bits I didn't have previously and at that point everything started working.

The learning curve on Grav is moderate, I would say. Installing themes and plugins is dead easy from both the web interface and using the Grav Package Manager from the command line. The Config is a bit byzantine, though helpfully broken up into multiple sections. Figuring out the Pages portion took me the longest, though now that I understand the whole "Blog page containing items (posts)" thing its a snap.

I am happy with Grav over all, and the only thing I would consider changing it out for would be Hugo that a friend just told me about. I don't think I am running Go on this web host at the moment, but that's not a large barrier to entry. Perhaps if Grav pisses me off in 4 years I'll pivot that way!

Blog Comments powered by Disqus.