Daniel's blog

Git Restore All Unstaged Files Back to their Latest Commit

Sometimes you may want to test or experiment and revert the changes you’ve made to their last known working state, or just want to delete all the files.

Setting Up SimpleX As Your Private Messenger

Tired of ads and tracking on WhatsApp? I explore SimpleX, a privacy-focused messenger without user IDs or central logs, plus share how I set up my own SMP server behind Traefik for even more control.

Hardening Your Traefik with Security Headers

Learn how to configure robust security headers in Traefik v3 using dynamic configuration or Docker labels. Boost your app’s security posture and get that A+ rating with custom CSPs, strict transport rules, and smart defaults.

Sign your Git Commits

Protect your code and identity by signing your Git commits with SSH keys—no GPG required. In this post, I’ll show you how to configure Git to sign commits using SSH.

Global HTTPS Redirect using Traefik v3

A step-by-step guide to setting up a global HTTP to HTTPS redirect in Traefik v3. Learn how to configure entrypoints in your Traefik configuration for secure connections without relying on middleware.

Customize your RSS Feed in a Ghost Theme

Learn how to create a custom RSS feed for your blog with excerpts and a tailored layout powered by Ghost.

Managing your dotfiles

Read how to efficiently manage and deploy your dotfiles across devices using GNU Stow, a powerful symlink manager.

Automating Builds and Releases with Conventional Commits and Semantic Versioning

Automate versioning, changelog generation, and Docker image builds with GitHub Actions and semantic-release. Learn how to integrate Conventional Commits for a streamlined release workflow across repos.

Remove Member Duplications in GitLab

Manage GitLab member assignments more effectively with a Python script that removes duplicate direct member entries. Simplify your group-based authorization cleanup.

Working with Conventional Commits

Conventional Commits bring clarity and consistency to commit messages, automate changelog generation, and simplify versioning. Discover how to implement and enforce this in GitLab for better collaboration.

← Newer posts | All | Older posts →