Custom git trailers with Magit

Posted on 2026-08-12 in Software • Tagged with ai , emacs , free-software , howto , programming

Git trailers are just lines of text at the bottom of a commit that take note of some metadata. Common ones are Co-Authored-By, Reported-By, Reviewed-By or Signed-Off-By, all of them autodescriptive I think.

Magit has a way of adding trailers, just press C-c TAB or C-c C-i in commit view …


Continue reading

Supply-chain hygiene for Emacs: LLM review of package upgrades

Posted on 2026-08-08 in Software • Tagged with emacs , free-software , howto , programming , security

Emacs has no sandbox. Every package you install runs arbitrary Lisp with your full privileges: your files, your credentials, your network. This makes me really scared of installing new packages, or upgrading existing ones.

The packages most of us use are not vetted artifacts: MELPA builds from some repository (usually …


Continue reading

Self-hosted Tailscale, Part 4: Tailscale-Only Web Services

Posted on 2026-06-04 in Software • Tagged with howto , linux , security , tailscale , vpn

I've been running a home server with a bunch of self-hosted services (Immich, Jellyfin, Nextcloud...) behind a single Caddy instance using caddy-docker-proxy (documented in this post). Some of them have genuine public uses, e.g. sharing a folder in Nextcloud or an album in Immich, or connecting to Jellyfin through …


Continue reading

Self-hosted Tailscale, Part 3: Syncthing over Tailscale

Posted on 2026-05-18 in Software • Tagged with howto , linux , security , syncthing , tailscale , vpn

I've been using Syncthing for years to keep files in sync between my laptop, desktop, phone, tablet and home server. It is an amazing piece of software and has been very reliable, with only the occasional conflict, but I have never lost any data. On the contrary, Syncthing file versioning …


Continue reading

Self-hosted Tailscale, Part 2: Ad-blocking DNS

Posted on 2026-05-11 in Software • Tagged with dns , howto , linux , security , tailscale , vpn

In Part 1 I set up Headscale and had every tailnet client use Cloudflare DNS. That works, but it's leaving value on the table: every device that connects to my Tailscale gets whatever DNS servers I set, so I might as well run my own DNS server inside the private …


Continue reading

Self-hosted Tailscale, Part 1: Headscale and clients

Posted on 2026-05-05 in Software • Tagged with howto , linux , security , tailscale , vpn

I had been hearing a lot of people raving about Tailscale as a solution for interconnecting devices, or in other words for creating your own mesh VPN. It does seem great on paper: easy to set up, fast and lightweight, based on an open protocol (WireGuard), works everywhere, solves the …


Continue reading

Pre-establishing SSH master connections for Ansible, or using OnlyKey with Ansible without losing your mind

Posted on 2026-04-07 in Software • Tagged with ansible , automation , howto , linux , security

I use an OnlyKey as a hardware security device for a variety of purposes:

  • Common passwords are one keypress away, they get typed automatically.
  • As 2FA in my password manager (KeepassXC), by applying HMAC on the password.
  • SSH connections.
  • GPG encryption and signing.

OnlyKey

SSH connections are handled through the …


Continue reading

Periodic script to back up installed OS packages

Posted on 2025-12-08 in Software • Tagged with backup , fish , free-software , howto , linux , shell

A while ago I switched to yadm for managing my dotfiles. One of its features I have been enjoying is its bootstrap support. I have been adding idempotent setup operations

My latest addition is a script that creates backup files with all installed OS packages. In case of disaster if …


Continue reading

Now with self-hosted comments

Posted on 2025-02-10 in Software • Tagged with blog , free-software , howto , linux , privacy , self-hosting

A few days ago I received an email from a reader and fellow blogger, to let me know that he was following my blog and also gave me a shout out about my New Year's resolution to write at least one article every month of 2025, and that I was …


Continue reading

Automating Python code quality

Posted on 2023-06-23 in Software • Tagged with programming , python , automation , howto , free-software

In this article I explain what I mean by code quality and how it benefits developers.

In the first half I discuss general concepts and workflows that apply to most software projects. Even if you are not writing Python code you might learn something from it.

In the second half …


Continue reading