website-htmx-rustelo-code/provisioning/catalog/component/rustelo_website.ncl

53 lines
2.1 KiB
Text
Raw Normal View History

2026-07-10 03:44:13 +01:00
# rustelo_website catalog component for this project instance.
#
# Consumed by provisioning/deploy.nu and the provisioning catalog runner.
# The catalog import path must include the provisioning repo root so that
# "catalog/components/rustelo_website/nickel/main.ncl" resolves.
#
# Override any field at deploy time by merging additional records:
# nickel export --import-path $PROVISIONING component.ncl \
# | { ..., env = { RUST_LOG = "debug" } }
let project = import "../../../provisioning/project.ncl" in
let _C = import "catalog/components/rustelo_website/nickel/main.ncl" in
_C.make_rustelo_website {
name = project.name,
namespace = project.namespace,
image = project.image_base,
image_tag = project.image_tag,
port = project.port,
domain = project.domain,
dns_zone = project.dns_zone,
acme_email = project.acme_email,
render_mode = 'htmx_ssr,
data_pvc = {
enabled = project.data_pvc.enabled,
size = project.data_pvc.size,
# /var/www is the PV root; site/config/index.ncl must arrive here via the
# publish tool before the entrypoint.sh loop unblocks.
mount_path = "/var/www",
storage_class = project.data_pvc.storage_class,
},
# Non-secret runtime env injected into the Deployment alongside the
# Dockerfile defaults. These override the image-baked values when present.
#
# Secret values (SESSION_SECRET, DATABASE_URL, etc.) come from a K8s Secret
# mounted via envFrom — they are NOT listed here.
env = {
LEPTOS_ENV = "PROD",
RUST_LOG = "info",
SITE_CONFIG_PATH = "/var/www/site/config/index.ncl",
NICKEL_IMPORT_PATH = "/usr/local/share/rustelo/nickel:/var/www/site/config",
HTMX_TEMPLATE_PATH = "/var/www/htmx-templates",
HTMX_ASSETS_PATH = "/var/www/templates/shared/htmx",
LEPTOS_SITE_ADDR = "0.0.0.0:%{std.string.from_number project.port}",
LEPTOS_SITE_ROOT = "site",
SITE_SERVER_CONTENT_URL = "/r",
SITE_SERVER_ROOT_CONTENT = "r",
SITE_SERVER_CONTENT_ROOT = "site/r",
},
}