47 lines
1.9 KiB
Text
47 lines
1.9 KiB
Text
# Distro composition manifest — single source of truth for "what files make a
|
|
# deployable distro". Consumed by:
|
|
# - lian-build/build_directives.ncl (image_only → what the runtime image bakes)
|
|
# - provisioning/content.nu (content_hot → incremental PV hot-updates)
|
|
# - just distro (site_tree + image_only → local tarball)
|
|
#
|
|
# Two layers, mapping the Build-Time vs Runtime tension (ADR-006):
|
|
#
|
|
# site_tree Capa B — delivered to the PV at /var/www/site/. Identical for
|
|
# both render profiles, independent of the binary, updatable
|
|
# without a rebuild. website.css under public/styles/ must be
|
|
# freshly built (uno) before packing — that is an assembly step,
|
|
# not a Dockerfile concern (the runtime image is content-agnostic).
|
|
#
|
|
# image_only Capa A — baked into the runtime image, per profile. The Leptos
|
|
# WASM pkg/ is version-matched to the binary by construction:
|
|
# baked to /usr/local/share/website/pkg/ and bootstrap-copied
|
|
# into the PV. htmx-ssr ships no WASM, so its image bakes nothing
|
|
# beyond the binary.
|
|
#
|
|
# content_hot Subset of site_tree that content.nu ships to a running pod with
|
|
# no rebuild (markdown / locales / static assets). FTL changes
|
|
# still require a restart; new routes require a full rebuild
|
|
# (build.nu). Equivalent mechanism for both profiles — htmx-ssr
|
|
# simply has a larger hot surface (no hydration tree to keep in
|
|
# sync with the binary).
|
|
{
|
|
site_tree = [
|
|
"site/content",
|
|
"site/config",
|
|
"site/i18n",
|
|
"site/templates",
|
|
"site/public",
|
|
"site/rbac.ncl",
|
|
],
|
|
|
|
image_only = {
|
|
"leptos-hydration" = ["target/site/pkg"],
|
|
"htmx-ssr" = [],
|
|
},
|
|
|
|
content_hot = [
|
|
"site/content",
|
|
"site/i18n/locales",
|
|
"site/public",
|
|
],
|
|
}
|