Daniel's blog

Managing GitLab Permissions as Code with GitLabForm

Managing GitLab permissions by clicking through the UI does not scale. GitLabForm lets you declare members, branch protection and a lot more as code in a single YAML file.

WIFIonICE not working on Linux with Docker

Deutsche Bahn’s ICE onboard WiFi uses the same IP range as Docker’s first user-created network.

Typos are the new Trust Signal

AI-generated writing feels different from personal written content. The less polished something reads, the more I trust it nowadays.

Migrate from MkDocs to Zensical

MkDocs is now unmaintained. Learn how to migrate your documentation projects to Zensical, the modern static site generator built by the creators of Material for MkDocs.

Extending AI capabilities with Agent Skills

Agent Skills provide a modular, file-based way to extend AI agents with reusable capabilities. By using them, they reduce prompt sprawl, improve maintainability, and introduce better boundaries for your agent systems.

I revived my old iPod to escape my phone

In an age of algorithmic playlists and constant distraction, I went back to basics. This is the story of how I modded a classic iPod with modern hardware, turning a nostalgic relic into the ultimate, distraction-free music player.

A Simple Git Server

You don’t need GitHub or GitLab to host a remote Git repository. With nothing more than SSH access to a server, you can create your own remote by initializing a bare git repo

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.

← Newer posts | All | Older posts →