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