Automate Deployments with Renovate and GitHub Actions

Automating deployments with Renovate and GitHub Actions saves time. By labeling pull requests with Renovate (e.g., Docker updates) and triggering Ansible playbooks through GitHub Actions, you can streamline deployments across repositories and reduce manual work.…

Hardening your Docker installation

Docker can be a security risk if not properly secured, especially in production environments. Docker Bench is an open-source tool that audits your Docker Engine setup for vulnerabilities based on the CIS Docker Benchmark. It provides actionable insights to harden and secure your Docker installation.…

Use pre-commit to execute git hooks

Prevent linting errors after code commits with the "pre-commit" framework. It allows you to run scripts like ansible-lint before each commit, ensuring code quality and reducing the need for multiple fixes.…

Migrate your Ghost SQLite Database to MySQL

The Ghost Docker image update switched the default database from SQLite3 to MySQL, causing some issues. This post shows how to migrate your containerized Ghost installation from SQLite3 to MySQL, including modifying docker-compose.yml, backing up data, and reconfiguring your Ghost site.…

Deliberately distinguish the vital few from the trivial many

Essentialism is about focusing on the right things rather than doing more. Learning to say no, making deliberate trade-offs, embracing solitude, cutting losses, and setting boundaries are key to making meaningful contributions. Prioritize what matters and eliminate distractions for deeper focus.…

Activate Keychron Function Keys on Ubuntu

This post explains how to configure a Keychron K8 keyboard on Ubuntu to use the F1-F12 keys as standard function keys instead of multimedia keys. It details the steps to switch the keyboard mode, adjust settings, and persist the changes for proper functionality, even after a reboot.…

Manage environmental differences with docker-compose overrides

This post explains how to use Docker Compose overrides to customize configurations without forking a repository. It describes how to modify the docker-compose.override.yml file to adjust routing or other settings for different environments. An example with Sentry and Traefik setup is provided.…