Overview

About Daemonless

Philosophy#

FreeBSD has always been a masterpiece of engineering — its jails were "containers" before the word was popular. But as the world moved towards OCI standards and immutable infrastructure, a gap formed: many users felt they had to choose between the logic and cohesiveness of FreeBSD and the convenience of modern DevOps. Daemonless exists to close that gap. By leveraging podman and ocijail, it makes FreeBSD a first-class citizen in the container world.

Principles:

  • "Docker-like" simplicity — the workflow should be boring. podman run should just work. You shouldn't need to be a jails expert to run a media server, but you should still get all the benefits of the FreeBSD kernel.
  • Community first — a project is only as strong as its contributors. Daemonless isn't a finished product; it's an evolving ecosystem.
  • Native and minimal — no "garbage hacks." Images are minimal, process supervision (s6) is robust, and integration with FreeBSD features like ZFS and PF is seamless.

I've been a FreeBSD user since the late 90s and a ports committer from 2002-2010. I've seen the system evolve, and I've felt the frustration of maintaining manual jails. Daemonless is my answer to that frustration — a way to keep the OS I love while embracing the future of software deployment. The goal: make "Docker on FreeBSD" so reliable and accessible that it becomes the default choice for anyone who values stability and performance.

Architecture#

Every image in the fleet inherits from a shared layer stack:

  • Base layer — FreeBSD 15 (or 14) minimal base, with s6 process supervision, execline, and core FreeBSD utilities.
  • Intermediate layersarr-base (sqlite3, icu, libunwind, .NET compat — for *arr apps like Radarr/Sonarr) and nginx-base (web server base, for PHP/web apps like Nextcloud/Organizr).
  • Application layer — the final images users run, inheriting from base directly (Python/Go/Node.js apps), arr-base (.NET apps), or nginx-base (PHP/web apps).
FreeBSD 15 Base
└── base (s6, execline)
    ├── arr-base (sqlite3, icu, .NET compat)
    │   ├── lidarr
    │   ├── prowlarr
    │   ├── radarr
    │   └── sonarr
    ├── nginx-base (nginx)
    │   ├── booklore
    │   ├── openspeedtest
    │   ├── organizr
    │   └── smokeping
    └── adguardhome, homepage, immich-server, plex, sabnzbd, traefik, ...

Build order: when base changes, everything rebuilds; when arr-base changes, only *arr apps rebuild; when nginx-base changes, only nginx apps rebuild. This keeps CI fast — see Quality Gates for how every rebuild is validated.

Community#

Daemonless is a project built by and for the FreeBSD community — whether you're a long-time sysadmin or new to BSD, there's a place for you here.

Ways to get involved:

  • The wishlist — is there an app you love that isn't in the fleet? Open an issue on GitHub, or build it yourself with the dbuild guide.
  • Share your setup — join the Discord and share a screenshot of your podman ps or your dashboard. Your setup might inspire someone else's homelab.
  • Improve the docs — found a typo, or a confusing step in the Quick Start? Every documentation PR helps the next person.

Support: ask on Discord for the fastest human answer, open a GitHub Discussion for long-form questions, or check the guides — Permissions, Networking, and ZFS Storage cover the most common setup questions.

Updated

Was this page helpful?