title: "Daemonless Appliances: Zero-Config Drop-In Utilities" description: "What makes an image a Daemonless Appliance, the five design principles behind the standard, and how to mark an image with type: appliance."
Daemonless Appliances
The Vision
Unlike traditional applications (like Plex or Nextcloud) which require setup, databases, and user management, Daemonless Appliances are drop-in infrastructure utilities. They are the software equivalent of plugging an ethernet switch into the wall: they just work.
Design Principles
- Utilitarian Naming — Names reflect exactly what the appliance does (e.g.
pkg-cache, not a project codename). - Zero-Configuration — Sane defaults allow the appliance to run immediately with a basic
podman runcommand. Advanced tuning is available via environment variables, but never strictly required. - Pre-configured Stacks — An appliance bundles everything it needs. No side-car databases or complex compose files required.
- Disposable State — Containers are ephemeral. All cache or data is designed to live on a mapped volume or be safely destroyed.
- Instant Observability — Appliances should feature lightweight, built-in ways to verify they are working (e.g. lightweight web dashboards or highly verbose standard output).
Marking an Image as an Appliance
Set type: appliance under x-daemonless in compose.yaml:
dbuild lint validates type against a fixed list (app, base, stack, appliance) and rejects anything else — see the Configuration Reference.
Today appliance is classification only: it builds and versions exactly like type: app, with no additional lint enforcement. It exists so an image can declare "I follow the appliance principles above" in a way that's discoverable and typo-checked, rather than only asserted in prose.
Possible future enforcement
Once a few appliances exist to validate the idea against, dbuild lint could gate type: appliance on things the principles above imply but don't yet check — e.g. no required environment variable without a default, or a healthcheck/cit.health must be defined. Not implemented yet.
The Appliance Fleet
| Appliance | Purpose |
|---|---|
| Daemonless pkg cache | Managed FreeBSD pkg caching appliance — proxies pkg.FreeBSD.org to speed up package fetches across image builds and insulate them from upstream rate limits/outages. |