So to begin
This site runs on Gitlab Pages
Why?
We wanted a site that is easy for us to write we are writing doc in markdown language everyday and we want to learn more about it
Also we wanted to be distributed without any downtime if possible Gitlab infrastructure is GCP based not much to say all the features of a cloud provider at our hands
Easy to migrate
What more easy than migrating html static pages
Security
We don’t want to maintain any complicated system, making security updates or so with the risk of the site being hacked So we decided to not to use any system like Wordpress or any other CMS
Control version
Using Markdown files and Git we can use the git control version system and enable us to create and use merge request feature allowing us to work in a group and saving the state of the change so anyone in the group can see and approve the change on the site before it goes live
Performance
html site what better performance than having a static site can be also cached using ay CDN
CMS alike
We tested Wordpress with sqlite and also others CMS with firebase (Google NonSQL distributed and high scalable database) but all of them had to be maintained and optimised and with costs even minimal
The Magic
All things said are nice but how go from writing Markdown files to a static html site
Static Site Generator or SSG like Next.js Hugo Gatsby or Jekyll just to mention a few Here are all listed
From the list we choose Hugo it was the easiest for us to understand and play with it and personally we try to discard the Java or Ruby based ones (they forgot the word performance)
BTW: When creating a project for the site on gitlab you can choose from a list of templates based on any of those SGG’s
The Magic happens when you commit a new change to the master branch and the CiCd pipeline starts A docker is created Hugo is downloaded also your repo is cloned then you execute Hugo and that renders all your files in Markdown (md) format to create html sites and copy them into a docker with Nginx running
Next entry will be a step by step I guess
Domain
Gitlab support custom Domains and that is beautiful just add the domain, create a cname record to point to gitlab and if you want ssl for that custom Domain you can use Let’s Encrypt just need to add a TXT record on your dns server All managed by Gitlab
Btw: Gitlab Pages is free