Content Management that can withstand the plundering hoards

Frontend HTTP behaviour

The public component is a pure static file server. It serves the active published website from a read-only document root. It has no knowledge of Kubernetes, the CMS, databases or publishing — it only ever reads files.

Runtime interface

Use runtime configuration for listener, cache and timeout settings, and installation for Kubernetes deployment. The document root is normally /www/current; mount the published volume rather than pinning one release with Kubernetes subPath.

HTTP behaviour

Admin endpoints (:8081)

Path safety

Published-directory contract

The root is typically /www/current, a symlink to releases/NNNNNN. The server re-resolves this symlink with configurable freshness (default 1s), so an atomic symlink swap to a new release is picked up without a restart, while in-flight requests finish against the previously resolved release. See publishing.

Operations & security

Uploaded files

Published CMS uploads at /api/assets/<id>/content use the adjacent immutable metadata.json content type. Only supported image and document types are accepted; other or missing types fall back to application/octet-stream. Documents are delivered as attachments. Existing sites need a new publication to add this metadata to their release; old retained releases remain readable.