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

Nextcloud CardDAV and CalDAV discovery with DNS records

Posted on 2022-02-17 in Software • Tagged with nextcloud , howto , self-hosting , dns

I use a self-hosted Nextcloud instance to hold a lot of my personal data, and that includes my contacts and calendars. Recently I had to reinstall DAVx5 on my phone, and I was surprised that the Nextcloud account was failing to be added.

The DAVx5 error logs showed that it …


Continue reading

Unlocking a LUKS-encrypted partition on boot with an USB drive

Posted on 2019-10-13 in Software • Tagged with linux , encryption , security , howto

The use case I wanted to solve was this: I have a headless server with a LUKS software-encrypted hard drive, and I want to be able to reboot it without having to input the password on a keyboard. The solution I implemented is to create a LUKS keyfile on a …


Continue reading