Serving a Blog Without Adding a Container

Everything on this server follows the same pattern: a Docker container on a shared proxy network, a subdomain block in the Caddyfile, a data directory on the big disk. It would have been easy to give the blog its own nginx container too.

But a static site is just files. Caddy is already running, already has a TLS certificate workflow, and is perfectly happy to serve a directory:

blog.thecabin.io {
    root * /srv/blog
    file_server
    log
}

The build output directory is bind-mounted read-only into the Caddy container. Publishing means regenerating files on the host โ€” Caddy notices nothing, because nothing about it changed. There is no image to rebuild, no health check, no restart.

One less container to babysit. The best service is the one that isn’t running.