56,966 blogs · [ { "id": "01a0e4b8-e596-7051-93c3-169606417b51", "title": "My Ansible Plugin Had a Jail Escape: CVE-2026-55074", "url": "https://blog.hofstede.it/my-ansible-plugin-had-a-jail-escape-cve-2026-55074/", "published_at": "2026-09-26T22:00:00+00:00" }, { "id": "01a0d59c-af56-71d8-9465-f5c777880379", "title": "No Proxmox Backup Client for RHEL? Hold My Container Runtime", "url": "https://blog.hofstede.it/pbs-client-rhel-container/", "published_at": "2026-09-16T22:00:00+00:00" }, { "id": "01a09611-0d33-7225-a197-eb2a145c4254", "title": "Ansible Automation Platform, Powered by Arch Linux. BTW.", "url": "https://blog.hofstede.it/ansible-execution-environment-arch-btw/", "published_at": "2026-09-11T22:00:00+00:00" }, { "id": "01a0874a-ee34-71a7-be43-a796a840cb1c", "title": "Bespoke: A Programming Language for People Who Say Please", "url": "https://blog.hofstede.it/bespoke-a-programming-language-for-people-who-say-please/", "published_at": "2026-09-04T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d78ed50b17", "title": "Running Citrix Workspace on Fedora with Rootless Podman", "url": "https://blog.hofstede.it/running-citrix-workspace-on-fedora-with-rootless-podman/", "published_at": "2026-09-02T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d78f871d33", "title": "I Wanted an IPv4 Toast and Accidentally Built an IP Service", "url": "https://blog.hofstede.it/i-wanted-an-ipv4-toast-and-accidentally-built-an-ip-service/", "published_at": "2026-08-28T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d7903ff456", "title": "bhyve Inside a Jail: The FreeBSD Feature Nobody Uses", "url": "https://blog.hofstede.it/bhyve-inside-a-jail-the-freebsd-feature-nobody-uses/", "published_at": "2026-08-26T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d790a8e271", "title": "Crawlfest: Building a Terminal Roguelike in Rust", "url": "https://blog.hofstede.it/crawlfest-building-a-terminal-roguelike-in-rust/", "published_at": "2026-08-15T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79101b544", "title": "Chezmoi and Git: Dotfiles Without Pretending Every Machine Is the Same", "url": "https://blog.hofstede.it/chezmoi-and-git-dotfiles-without-pretending-every-machine-is-the-same/", "published_at": "2026-08-11T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d791c39e8f", "title": "Three Test Jails on a 512 MB Free-Tier VPS", "url": "https://blog.hofstede.it/three-test-jails-on-a-512-mb-free-tier-vps/", "published_at": "2026-08-03T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79241fbf5", "title": "Sane Development Environments for Ansible Automation Code", "url": "https://blog.hofstede.it/sane-development-environments-for-ansible-automation-code/", "published_at": "2026-08-02T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d793273b86", "title": "Rice Deserves Better Than a Kochbeutel", "url": "https://blog.hofstede.it/rice-deserves-better-than-a-kochbeutel/", "published_at": "2026-08-01T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d794192d76", "title": "Running Your Own AS: An IXP over VXLAN, IPv4 on the Overlay, and a Config Spring Clean", "url": "https://blog.hofstede.it/running-your-own-as-an-ixp-over-vxlan-ipv4-on-the-overlay-and-a-config-spring-clean/", "published_at": "2026-07-29T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d794f4e875", "title": "Building My Own TV Station: ErsatzTV in a FreeBSD Jail, With Intel Hardware Transcoding", "url": "https://blog.hofstede.it/building-my-own-tv-station-ersatztv-in-a-freebsd-jail-with-intel-hardware-transcoding/", "published_at": "2026-07-25T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79505ec56", "title": "Android Development on Fedora 44 Without Installing an Android Development Stack", "url": "https://blog.hofstede.it/android-development-on-fedora-44-without-installing-an-android-development-stack/", "published_at": "2026-07-23T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d795b889c6", "title": "My Home Assistant Setup: bhyve, FreeBSD Jails, Zigbee, Homematic, and Matter over Thread", "url": "https://blog.hofstede.it/my-home-assistant-setup-bhyve-freebsd-jails-zigbee-homematic-and-matter-over-thread/", "published_at": "2026-07-17T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79636d18d", "title": "Kollect: The Native KDE Link Collector I Built for Myself", "url": "https://blog.hofstede.it/kollect-the-native-kde-link-collector-i-built-for-myself/", "published_at": "2026-07-13T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d796ddaf21", "title": "Hosting DokuWiki on FreeBSD with Bastille, nginx, and Caddy", "url": "https://blog.hofstede.it/hosting-dokuwiki-on-freebsd-with-bastille-nginx-and-caddy/", "published_at": "2026-07-09T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d797c1331f", "title": "chana_masala.sh: A Recipe as a Shell Script", "url": "https://blog.hofstede.it/chana_masalash-a-recipe-as-a-shell-script/", "published_at": "2026-07-06T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d797dd8bd7", "title": "A Caching FreeBSD Mirror for DN42: nginx proxy_store, pf, and a Dual-Homed VM", "url": "https://blog.hofstede.it/a-caching-freebsd-mirror-for-dn42-nginx-proxy_store-pf-and-a-dual-homed-vm/", "published_at": "2026-07-04T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d797fd7064", "title": "Upgrading FreeBSD 15.0-RELEASE to 15.1-RELEASE: The Official Paths", "url": "https://blog.hofstede.it/upgrading-freebsd-150-release-to-151-release-the-official-paths/", "published_at": "2026-06-30T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d7989ecad3", "title": "FreeBSD Foundationals: The Boot Process - From the Loader to Boot Environments", "url": "https://blog.hofstede.it/freebsd-foundationals-the-boot-process-from-the-loader-to-boot-environments/", "published_at": "2026-06-24T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d798f0e769", "title": "Monitoring a FreeBSD Mastodon Instance with Prometheus, Grafana, and Loki", "url": "https://blog.hofstede.it/monitoring-a-freebsd-mastodon-instance-with-prometheus-grafana-and-loki/", "published_at": "2026-06-20T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d7995a1c39", "title": "Leaving the Apple Ecosystem: One Fairphone Instead of Two iPhones", "url": "https://blog.hofstede.it/leaving-the-apple-ecosystem-one-fairphone-instead-of-two-iphones/", "published_at": "2026-06-16T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d799bacb10", "title": "IPv6 Foundations: The Internet Protocol You Should Already Be Using", "url": "https://blog.hofstede.it/ipv6-foundations-the-internet-protocol-you-should-already-be-using/", "published_at": "2026-06-07T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79ab48d88", "title": "A Monoblock AC Is Only as Good as Its Window Seal", "url": "https://blog.hofstede.it/a-monoblock-ac-is-only-as-good-as-its-window-seal/", "published_at": "2026-06-06T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79acf9f0a", "title": "The AI Stack I Actually Run in 2026: A Laptop iGPU and Four Rented Frontiers", "url": "https://blog.hofstede.it/ai-stack-2026/", "published_at": "2026-06-02T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79b633efa", "title": "bcachefs on RHEL 10.2: The Kernel That Said No", "url": "https://blog.hofstede.it/bcachefs-on-rhel-102-the-kernel-that-said-no/", "published_at": "2026-05-31T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79bd4d7c7", "title": "Two Sites, One Cluster: My Hetzner Proxmox VE Setup - A low-cost two-node cluster with VXLAN, ZFS replication and an external quorum vote", "url": "https://blog.hofstede.it/hetzner-proxmox-cluster/", "published_at": "2026-05-29T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79c6d9325", "title": "Tag-Driven Deployments: How MastoSum Ships Itself with Forgejo Actions and Rootless Podman", "url": "https://blog.hofstede.it/tag-driven-deployments-how-mastosum-ships-itself-with-forgejo-actions-and-rootless-podman/", "published_at": "2026-05-23T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79cb6976e", "title": "mdo on FreeBSD 15: Base-System Privilege Delegation with mac_do", "url": "https://blog.hofstede.it/mdo-on-freebsd-15-base-system-privilege-delegation-with-mac_do/", "published_at": "2026-05-17T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79d86270e", "title": "Fedora Hummingbird: Distroless, Container-Native Linux and a Slim mastogreet", "url": "https://blog.hofstede.it/fedora-hummingbird-distroless-container-native-linux-and-a-slim-mastogreet/", "published_at": "2026-05-15T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79dc2d0d6", "title": "Red Hat Offline Knowledge Portal: All the Docs, Air-Gapped, On Your Laptop", "url": "https://blog.hofstede.it/red-hat-offline-knowledge-portal-all-the-docs-air-gapped-on-your-laptop/", "published_at": "2026-05-13T22:00:00+00:00" }, { "id": "01a0874a-ee35-7015-b903-23d79e2a56c4", "title": "A Field Manual for Three Years on Deutsche Bahn", "url": "https://blog.hofstede.it/a-field-manual-for-three-years-on-deutsche-bahn/", "published_at": "2026-05-12T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd96271a8f", "title": "FreeBSD Resource Monitoring, Accounting, and Troubleshooting", "url": "https://blog.hofstede.it/freebsd-resource-monitoring-accounting-and-troubleshooting/", "published_at": "2026-05-11T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd97137633", "title": "Distrobox: Different Distributions in a Box, Powered by Podman", "url": "https://blog.hofstede.it/distrobox-different-distributions-in-a-box-powered-by-podman/", "published_at": "2026-05-09T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd97f145fa", "title": "Reproducible Ansible with Execution Environments", "url": "https://blog.hofstede.it/reproducible-ansible-with-execution-environments/", "published_at": "2026-05-05T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd989e00b4", "title": "Ansible-Native Quadlets: Deploying a Mastodon Greeter Bot with containers.podman", "url": "https://blog.hofstede.it/ansible-native-quadlets-deploying-a-mastodon-greeter-bot-with-containerspodman/", "published_at": "2026-04-26T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd98c73170", "title": "Joining DN42: A MikroTik Border, Three WireGuard Peerings, and a FreeBSD Jail in the Hobbyist Internet", "url": "https://blog.hofstede.it/joining-dn42-a-mikrotik-border-three-wireguard-peerings-and-a-freebsd-jail-in-the-hobbyist-internet/", "published_at": "2026-04-23T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd98cf5d94", "title": "Running Your Own AS: Direct Hetzner Peering, a Fourth Edge, and Bringing the Home LAN into the Fabric", "url": "https://blog.hofstede.it/running-your-own-as-direct-hetzner-peering-a-fourth-edge-and-bringing-the-home-lan-into-the-fabric/", "published_at": "2026-04-15T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd99a3aa5b", "title": "Automating FreeBSD Jails with cdist - Zero Dependencies Inside the Jail", "url": "https://blog.hofstede.it/automating-freebsd-jails-with-cdist-zero-dependencies-inside-the-jail/", "published_at": "2026-04-11T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd9a3a95de", "title": "Replacing Lenovo’s WWAN Unlock Blob with a 100-Line Bash Script", "url": "https://blog.hofstede.it/replacing-lenovos-wwan-unlock-blob-with-a-100-line-bash-script/", "published_at": "2026-04-10T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd9a98d237", "title": "Podman on FreeBSD: OCI Containers Without systemd", "url": "https://blog.hofstede.it/podman-on-freebsd-oci-containers-without-systemd/", "published_at": "2026-04-05T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd9b5e09cb", "title": "Podman in Production: Quadlets, Secrets, Auto-Updates, and Docker Compatibility", "url": "https://blog.hofstede.it/podman-in-production-quadlets-secrets-auto-updates-and-docker-compatibility/", "published_at": "2026-04-04T22:00:00+00:00" }, { "id": "01a0874a-ee36-73a6-bc5a-d0dd9bfcd00d", "title": "Speeding Up Forgejo CI with a Custom OCI Image", "url": "https://blog.hofstede.it/speeding-up-forgejo-ci-with-a-custom-oci-image/", "published_at": "2026-03-31T22:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8bfab1648", "title": "Keycloak 26 on Podman with Quadlets: Identity Management the systemd Way", "url": "https://blog.hofstede.it/keycloak-26-on-podman-with-quadlets-identity-management-the-systemd-way/", "published_at": "2026-03-30T22:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8bfbae5b7", "title": "My Multi-Stage Backup Strategy: ZFS, Proxmox, and Paranoia", "url": "https://blog.hofstede.it/my-multi-stage-backup-strategy-zfs-proxmox-and-paranoia/", "published_at": "2026-03-27T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c02426dc", "title": "Shell Tricks That Actually Make Life Easier (And Save Your Sanity)", "url": "https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/", "published_at": "2026-03-25T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c0c4001c", "title": "Dual-FIB Policy Routing on FreeBSD: Two Upstreams, One Server, Zero Confusion", "url": "https://blog.hofstede.it/dual-fib-policy-routing-on-freebsd-two-upstreams-one-server-zero-confusion/", "published_at": "2026-03-22T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c11574d1", "title": "Running Your Own AS: Joining an IXP with a Third Edge Router", "url": "https://blog.hofstede.it/running-your-own-as-joining-an-ixp-with-a-third-edge-router/", "published_at": "2026-03-20T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c16a7456", "title": "Why I Prefer CentOS Stream Over Old CentOS", "url": "https://blog.hofstede.it/why-i-prefer-centos-stream-over-old-centos/", "published_at": "2026-03-14T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c24aaa6b", "title": "Linux Firewalls: How to Actually Secure a Cloud Server (iptables, nftables, firewalld, ufw)", "url": "https://blog.hofstede.it/linux-firewalls-how-to-actually-secure-a-cloud-server-iptables-nftables-firewalld-ufw/", "published_at": "2026-03-13T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c32c2a77", "title": "FreeBSD Foundationals: ZFS - The Last Filesystem You’ll Ever Need", "url": "https://blog.hofstede.it/freebsd-foundationals-zfs-the-last-filesystem-youll-ever-need/", "published_at": "2026-03-12T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c3c8d9b9", "title": "FreeBSD Foundationals: Jails - From Chroot on Steroids to Full Virtual Networks", "url": "https://blog.hofstede.it/freebsd-foundationals-jails-from-chroot-on-steroids-to-full-virtual-networks/", "published_at": "2026-03-01T23:00:00+00:00" }, { "id": "01a0874a-ee3a-7009-ab44-2fd8c471f73a", "title": "Neovim Crash Course for Sysadmins: The 20% That Solve 80% of the Pain", "url": "https://blog.hofstede.it/neovim-crash-course-for-sysadmins-the-20-that-solve-80-of-the-pain/", "published_at": "2026-02-26T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf2644eb4c0", "title": "Running Your Own AS: Going Multi-Homed with iBGP and three Transits", "url": "https://blog.hofstede.it/running-your-own-as-going-multi-homed-with-ibgp-and-three-transits/", "published_at": "2026-02-25T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf2649de86f", "title": "HTTP/3 on FreeBSD: Getting QUIC Working with nginx in a Bastille Jail", "url": "https://blog.hofstede.it/http3-on-freebsd-getting-quic-working-with-nginx-in-a-bastille-jail/", "published_at": "2026-02-20T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26542e792", "title": "Integrating LaCrosse Sensors into Home Assistant via JeeLink on FreeBSD", "url": "https://blog.hofstede.it/integrating-lacrosse-sensors-into-home-assistant-via-jeelink-on-freebsd/", "published_at": "2026-02-18T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf2657e87bc", "title": "RHEL on ZFS Root: An Unholy Experiment", "url": "https://blog.hofstede.it/rhel-on-zfs-root-an-unholy-experiment/", "published_at": "2026-02-13T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf266349d41", "title": "SELinux: A Practical Guide for Fedora and RHEL", "url": "https://blog.hofstede.it/selinux-a-practical-guide-for-fedora-and-rhel/", "published_at": "2026-02-12T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf2671dc5b4", "title": "Podman 5.8: Quadlet Multi-File Install, Automatic SQLite Migration, and the Road to 6.0", "url": "https://blog.hofstede.it/podman-58-quadlet-multi-file-install-automatic-sqlite-migration-and-the-road-to-60/", "published_at": "2026-02-11T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf267f9a6d1", "title": "Adding Fediverse Comments to a Pelican Blog", "url": "https://blog.hofstede.it/adding-fediverse-comments-to-a-pelican-blog/", "published_at": "2026-02-09T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf2681927be", "title": "Running Your Own AS: BGP on FreeBSD with FRR, GRE Tunnels, and Policy Routing", "url": "https://blog.hofstede.it/running-your-own-as-bgp-on-freebsd-with-frr-gre-tunnels-and-policy-routing/", "published_at": "2026-02-07T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf268b45194", "title": "PF Firewall on FreeBSD: A Practical Guide", "url": "https://blog.hofstede.it/pf-firewall-on-freebsd-a-practical-guide/", "published_at": "2026-02-05T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf268e42d41", "title": "Immutable Linux Desktops: Universal Blue, OSTree, and the Future of Desktop Linux", "url": "https://blog.hofstede.it/immutable-linux-desktops-universal-blue-ostree-and-the-future-of-desktop-linux/", "published_at": "2026-01-25T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26941d5f2", "title": "Integrating FreeBSD 15 with FreeIPA: Native Kerberos and LDAP Authentication", "url": "https://blog.hofstede.it/integrating-freebsd-15-with-freeipa-native-kerberos-and-ldap-authentication/", "published_at": "2026-01-24T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf269781bfd", "title": "Reviving Life is Strange: Before the Storm on Modern Linux with a glibc Shim", "url": "https://blog.hofstede.it/reviving-life-is-strange-before-the-storm-on-modern-linux-with-a-glibc-shim/", "published_at": "2026-01-24T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf269bb0ba5", "title": "Self-Hosted CryptPad on FreeBSD with VNET Jails and Caddy", "url": "https://blog.hofstede.it/self-hosted-cryptpad-on-freebsd-with-vnet-jails-and-caddy/", "published_at": "2026-01-23T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26a316531", "title": "Self-Hosting Email on FreeBSD: A Secure, Jailed Setup with Postfix and Dovecot", "url": "https://blog.hofstede.it/self-hosting-email-on-freebsd-a-secure-jailed-setup-with-postfix-and-dovecot/", "published_at": "2026-01-17T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26a6a6dd1", "title": "Card Wars: Hiding Smartcard Readers from Eager Rust Agents with LD_PRELOAD", "url": "https://blog.hofstede.it/card-wars-hiding-smartcard-readers-from-eager-rust-agents-with-ld_preload/", "published_at": "2026-01-16T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26b4c3035", "title": "GeoIP-Aware Firewalling with PF on FreeBSD", "url": "https://blog.hofstede.it/geoip-aware-firewalling-with-pf-on-freebsd/", "published_at": "2026-01-12T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26b702017", "title": "Managing FreeBSD Jails with Ansible: The jailexec Connection Plugin", "url": "https://blog.hofstede.it/managing-freebsd-jails-with-ansible-the-jailexec-connection-plugin/", "published_at": "2025-12-30T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26b735202", "title": "FreeBSD 15 Cloud-Init on Proxmox: Working Around nuageinit’s Network-Config Gap", "url": "https://blog.hofstede.it/freebsd-15-cloud-init-on-proxmox-working-around-nuageinits-network-config-gap/", "published_at": "2025-12-27T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26c0efe12", "title": "Interactive System Troubleshooting with AI: The Linux MCP Server", "url": "https://blog.hofstede.it/interactive-system-troubleshooting-with-ai-the-linux-mcp-server/", "published_at": "2025-12-24T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26c24a6dc", "title": "Running a Factorio Headless Server on FreeBSD with the Linuxulator", "url": "https://blog.hofstede.it/running-a-factorio-headless-server-on-freebsd-with-the-linuxulator/", "published_at": "2025-12-19T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26d22bc4c", "title": "Hosting a Static Blog on FreeBSD with Bastille Jails and Automated Deployment", "url": "https://blog.hofstede.it/hosting-a-static-blog-on-freebsd-with-bastille-jails-and-automated-deployment/", "published_at": "2025-12-13T23:00:00+00:00" }, { "id": "01a0874a-ee3b-7156-8202-fbf26e1fe841", "title": "Migrating burningboard.net Mastodon instance to a Multi-Jail FreeBSD Setup", "url": "https://blog.hofstede.it/migrating-burningboardnet-mastodon-instance-to-a-multi-jail-freebsd-setup/", "published_at": "2025-12-06T23:00:00+00:00" }, { "id": "01a0874a-ee3c-7303-9d71-061c6576821c", "title": "Production-Grade Container Deployment with Podman Quadlets", "url": "https://blog.hofstede.it/production-grade-container-deployment-with-podman-quadlets/", "published_at": "2025-11-15T23:00:00+00:00" }, { "id": "01a0874a-ee3d-7004-bbf4-b4f46e91a096", "title": "FreeBSD Dual-Stack Jails on Hetzner Cloud", "url": "https://blog.hofstede.it/freebsd-dual-stack-jails-on-hetzner-cloud/", "published_at": "2025-11-11T23:00:00+00:00" }, { "id": "01a0874a-ee3d-7004-bbf4-b4f46eb2ccf9", "title": "FreeBSD 15.0 on the ThinkPad T480 — Efficient, Stable, and 8 Hours on Battery", "url": "https://blog.hofstede.it/freebsd-150-on-the-thinkpad-t480-efficient-stable-and-8-hours-on-battery/", "published_at": "2025-11-08T23:00:00+00:00" }, { "id": "01a0874a-ee3d-7004-bbf4-b4f46f553df1", "title": "Simple Temperature Monitoring on FreeBSD", "url": "https://blog.hofstede.it/simple-temperature-monitoring-on-freebsd/", "published_at": "2025-10-08T22:00:00+00:00" }, { "id": "01a0874a-ee3d-7004-bbf4-b4f46fb682b0", "title": "FreeBSD Cheat Sheet for Linux Admins", "url": "https://blog.hofstede.it/freebsd-cheat-sheet-for-linux-admins/", "published_at": "2025-08-28T22:00:00+00:00" } ] posts Claim your blog
Back to Larvitz Blog | FreeBSD, Linux, all things cleanly engineered
Blog · corpus.blog/blogs/blog.hofstede.it/posts

Larvitz Blog | FreeBSD, Linux, all things cleanly engineered

blog.hofstede.it

2026

2025