Moving this site to a new location

Believe it or not, this page has - due to my bitbake guide - more than 1000 visitors per month. And the bitbake guide is also a top search result on Google when searching for a bitbake tutorial. I do not want to destroy that, so moving this site to a new location needs some planning.

stats

Why this move

There are 2 main reasons for this step: Better tooling, and better tooling ;-)

As described in 2016, I had a nice setup, but over time I got less and less happy with it. It didn’t feel modern enough anymore, and I missed a bit of a fun factor.

Asciidoctor is of course still my favorite tool to produce documents. But I had some issues with the other 2 tools, awestruct and bitbucket pages.

Better tooling: nanoc

While awestruct is a nice tool that served me well, it had no maintenance for some years. Just very recently someone stepped in, so the project is no longer dead, but when this happened I had already found an alternative. I started playing with nanoc, and for me, this is an amazing tool.

It was a lot of fun exploring how nanoc works. I think one of the main reasons why I like nanoc that much is that it is totally customizable and extendable. I played around a lot, for fun and learning purposes, and finally I added my custom asciidoctor renderer and a few helpers that add some convenient functionality.
I am very happy with the result, I got rid of some boilerplate I had to deal with before and now have much more control over the produced result. Additional features like link checkers and a just working live reload out of the box are simply handy. And I am always happy having a reason to do some ruby coding, so I like that.

Better tooling: gitlab CI/CD

Previously, with Bitbucket + awestruct I had 2 repositories. One with the asciidoctor input source, and one with the produced HTML.
I had my own scripts to automate everything but they run locally. It happened that I ran into sync problems. Mostly due to human (my) error that happens easily when doing things late in the evening. I managed to push the HTML repo, but not the one with the source, and ran into troubles continuing to work on a different computer since I could not reproduce the homepage. So my work got interrupted. Very annoying.

While I understand that it can be nice to have the HTML pages under version control, for this page I do not care. The important part is the asciidoctor input source I use to generate the HTML documents, not the HTML documents themselves. And this is where GitLab pages shines for me. I have my content in a git repo, a push to the master branch starts the build pipeline, nanoc generates HTML pages, and the result is served via GitLab. Since all that happens in a Docker image this is reproducible.
And yes, I could have also done some automation with Bitbucket pipelines, but it would have been more work, since dealing with 2 repositories, or 2 branches and switching between them, adds more complexity and working steps.

Now I will have only one repository, the one with the asciidoctor documents. So there is only a single source of truth. Publishing a new blog site, or some corrections, means also having the input source online. One error reason eliminated.

GitLab has also a Docker registry and some other nice features that make it my - today - favorite tool for Git, CI/CD, etc. So I am happy having this blog moved to GitLab.

Move the website, checklist

This is the second time I move this page. At the beginning Bitbucket user pages were hosted in the bitbucket.org domain, but then Atlassian decided to move them to the bitbucket.io domain. Of course without establishing a 301 or 308 server side redirect. It caused me a lot of stress since this hit me basically overnight. My URLs were not reachable anymore, and my statistics were destroyed. I was very angry at them.

But through that I have some experience, so I know at least somehow what to do.

TODO list

  • Create the new page

  • Create a CI/CD pipeline

  • Test the page with a developer profile

  • Update all existing HTML pages on Bitbucket and establish an HTTP redirect in the sites, since it is not possible to do a server side redirect.

  • Update Google Analytics settings

  • Update Google Search Console

  • Push the updated page, both sites - old and new - at the same time

  • Create mapping to migrate all the Disqus URLs so I do not lose existing comments

  • Hope for the best and that nothing was forgotten

It is obvious that most of these steps would not be required with my own domain name. So why not create one? Well, you know, the hardest problem in development, finding a name …​. :-)
Also, this site is a hobby, any domain name I could think of would make it look too professional, and I think it is nice to have my hosting service in the URL name. Previously Bitbucket, and now GitLab, do website hosting for free, so it’s OK for me to have their names in the URL to my page.

Finally …​.

Since I write this page before I pull the trigger for the move, I cannot say if everything went well. It will also take some days until search engines re-index and notice the move. But I hope everything will go well.

I think, with the new tooling and workflow in place, I will have better motivation for doing some more writing again.
In recent times it happened more than once that I used workflow and tooling as an excuse to not write a post I had in mind. Now with this improvement, let’s see if I will write more again. If not, I had at least a lot of fun adopting the new tooling and creating the new workflow :-)