Skip to content

Grav CMS

Info

Since you are currently reading this page, you may notice that this site isn't actually running GravCMS. While Grav is a good platform, a well written open source project, it didn't match what I was looking for in my personal site/blog. I'm currently running everything on Material for MkDocs, a pure markdown based static site generation tool.

For the past few years I've been running my (mostly) inactive website via Gitlab pages, serving statically generated pages from Hugo. Static site generators like Hugo and Jekyll take markdown, join it with some images and CSS, convert it all to html, and there you have a website which can be served from just about anywhere. Small file sizes and no "moving parts" can result in a much faster and "secure" website. Of course there will always be security issues with the host, but you aren't serving content out of a database.

While this process worked for a while, especially since I don't put out much content, I wanted something a bit more interactive, not something as indepth as a Wordpress, but something a bit more involved. While I can deal with CSS, I don't want to. Enter Grav. Grav is a CMS like, Wordpress, but unlike Wordpress does't rely on a database component. All flat files.

Why Grav?

Well, I like tinkering. Sometimes I just need to change things up and a lightweight CMS that I can selfhost, or host on a fairly small server with just a few dependencies sounds like a great idea. I'm not looking to build a community, just toss some thoughts out into the world over time, making it enjoyable to write while I do that is a positive in my book.

Grav Pain

Grav is pretty lightweight so my original thought was to utilize a RaspberryPi to serve the site at home, what didn't occur to me, because I tend to host things on Proxmox and not RaspberryPis.... with SD cards... is that SD cards don't love lots of reads and writes to them. When you have a webserver that is only reading and writing to disk to log, check for updates, and serve all of its content, well, that will kill and SD card! And just like a good homelabber, I was just starting out and didn't have any backup of my content. 😦 So... I started over.

Grav also has a neat feature (if you know about it) regarding environments. Using environments you can run a dev/test/prod/whatever environment off the same server. BUT, by the default configuration, and very limited documentation, it may not be clear that if you access Grav over different URLs, say for example if you have a local/home URL for access that isn't the main domain that you are accessing right now, Grav will helpfully serve a different site. This makes it awful to try and find what environment Grav is actually serving you! Setting a static environment in the Grav config serves a singular version of the site, much easier to deal with!

Ultimately I'm hoping that Grav encourages me to publish content, and to date it has been a great learning experience!