CI / CD with Plesk, Hugo and GitLab

For a while I have been running my own GitLab install on one of my servers, to have a place for my private repos and some stuff I keep around. Tired of having to keep an eye on my WordPress blog continuosly, update all the time and fending off hacker attacks, some time ago I decided it was time to move to one of those new, modern, state-of-the-art static website builders. I chose Hugo for a series of reasons:

  • It’s a self-contained binary, easy and quick to install on any system, be it OSX, Windows or Linux.
  • It is lightning fast.
  • It has a decent selection of themes.
  • It looks like it´s very, very easy to learn to use.

So once I ventured into Hugo, I started rebuiding the blog from scratch, kept all my stuff neatly in a GitLab repo and was quite happy, as I could have the hugo binary installed on all my machines (I happen to use a Mac and a Windows PC at work, and a Linux laptop and a Windows PC at home) and work on stuff anywhere by just using my remote git repository.
I still had to manually upload all my stuff manually after compiling the site with Hugo, so I thougt to myself: Darn, there has to be a more convenient way, when I remembered that GitLab actually has had a built-in CD pipeline for quite some time.
On to google and to find this page which explains pretty well what to do.
I will provide the gory details in the next days, so please visit this page again.