The Daemonless Irony: Why We Chose s6 for FreeBSD Containers

When the mission is to build native FreeBSD OCI images that run in Jails without a heavy background daemon on the host, the project name basically writes itself: daemonless.io. The goal is simplicity, transparency, and architectural purity. So, it is only natural that the very first thing we did was install a suite of tools designed specifically to manage, supervise, and run… daemons. It is a bit like starting a “Car-Free” lifestyle and then immediately buying a fleet of high-end electric scooters. Technically, the name still holds up, but you’re still getting around on wheels. We might be “daemonless” on the host, but inside the container, we’ve hired the most efficient, C-based babysitter in the business. ...

April 4, 2026 · 10 min · Michael Johnson

Beyond make install: Why I Love FreeBSD Ports (And Why We Need Native OCI)

There is a distinct, visceral satisfaction in typing make config && make install clean. If you’ve spent any meaningful amount of time in the Unix world, you know exactly what I mean. The FreeBSD Ports tree is an ethos—a commitment to understanding exactly what is running on your metal. But let’s be honest: while Ports are a masterpiece for traditional software, they hit a brick wall with modern, cloud-native applications. I’ve been running into this wall a lot lately while building daemonless.io—a project dedicated to bringing first-class, native OCI images to FreeBSD. ...

April 1, 2026 · 5 min · Michael Johnson

How I Run Containers in My Homelab

I’ve been running containers on FreeBSD for a while now, and I’ve settled into a workflow that just works. Here’s how I manage everything. The Stack Component Choice Host OS FreeBSD 15 Runtime Podman + ocijail Orchestration Ansible Images Daemonless (FreeBSD-native) Storage ZFS (lz4 compression) Networking VNET jails + bridge No Docker daemon. No Linux VMs. Podman talks to ocijail, which runs containers as native FreeBSD jails. Directory Structure Every service gets its config stored in /containers/<service>/. Simple and predictable: ...

January 20, 2026 · 6 min · Michael Johnson
Daemonless Logo

Why I Built Daemonless

I’ve been a FreeBSD user since the late 90s. From 2002 to 2010, I was a ports committer working on the GNOME and Multimedia teams. I have always felt more “at home” with FreeBSD. There is a logic and cohesiveness to the Base System + Ports approach that just clicks for me in a way Linux distros often don’t. But the world changed. The OCI (Docker) container workflow took over, and for good reason: immutable infrastructure and easy updates are incredible for sanity. ...

January 13, 2026 · 2 min · Michael Johnson