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.
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 felt not modern enough anymore, and I missed a bit of a fun factor.
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 already had 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 total customizable and extendable.
I played a lot around, for fun and learning purpose, 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 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 local. It happened that I run into sync problems. Mostly due to human (my) error that happen easy when doing things late in the evening. I managed to push the html repo, but not the one with the source, and run in troubles continue working 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 themself.
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 done also some automatization with bitbucket pipelines, but it would have been more work, since dealing with 2 repositories, or 2 branches and switch between them, adds more complexity and working steps.
Now I will have only one repository, that one with the asciidoctor documents. So there is only a singe source o 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 makes it to my - today - favorite tool for git, CI/CD , etc. So I a happy having this blog moved to Gitlab.
Move the website, checklist
This is the second time I move this page. At the begin bitbucket user pages have been 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 over night. My URLS have not been reachable anymore, and my statistic was destroyed. I was very angry at them.
But through that I have some experience, so I know at least somehow what to do.
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 a http redirect in the sites, since it is not possible to do a server sider redirect.
Update google analytic 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 an that nothing was forgotten
It is obvious that most of these steps would not be required with a 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 its OK for me to have their names in the URL to my page.
Since I write this page before I pull the trigger for the move, I can not 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 doing some more writing again.
In the last time 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, lets 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 :-)