Automate Deployments with Renovate and GitHub Actions

For quite some time I've used Renovate on GitHub to create pull requests if there is a new version of the software I use in my projects. For a while, I always merged the pull requests created by Renovate and then deployed them via Ansible. For a certain…

Hardening your Docker installation

With Docker, you have a convenient technology, but it can be a security risk too. It is important to not forget to protect your Docker Engine against possible threats, especially if you're running Docker in production. In order to understand all the good practices that exist for a…

Use pre-commit to execute git hooks

You may be very familiar with the following scenario: you've pushed a code change to your remote repository and now the code linting pipeline fails and you need to push another fix to make the linter proud. One way to prevent such behavior is to use a framework…

Migrate your Ghost SQLite Database to MySQL

Recently I saw some users on Twitter who were upset that the Docker community maintainers for the Ghost Docker image changed the default database from sqlite3 to MySQL. Since this was only a minor version update many of the sites powered by Ghost went down as soon as they updated…

Activate Keychron Function Keys on Ubuntu

Two days ago I've had the chance to set up another Laptop using Ubuntu and configure it properly for my workflows. I've plugged in my Keychron K8 and recognized that the F1-F12 keys won't get registered as actual function keys. Instead, my device just…

Deep Work in an Environment of Distractions

Foreword: Recently I read "Deep Work: Rules for Focused Success in a Distracted World" by Cal Newport on how you can get in a state of truly full focused work cycles without any distractions. This mode is a special skill with which, if mastered, you can genuinely stand…