The repo
For reading or changing the source, not for deploying — nothing in getting-started needs this page.
The layout
Section titled “The layout”chant.config.ts lexicons, params, ownership, lintjustfile every target you needcluster/ the k3d clusters, declared — local, and the e2e-k8s stand-inci/pipeline.ts this repo's own CI, declaredpages/pipeline.ts the Pages workflow, declared the same wayworkflows/shared.ts pins both workflows shareops/ the deploy Op, for behold's Run buttonscripts/local/ cluster lifecycle, where behold looks for itdocs-site/ this sitesrc/ params.ts the one place build params are read lib/targets.ts target -> seam defaults lib/tiers.ts tier -> durability, and the replica refusal lib/seams.ts seam modes, and the combinations that are refused app/ Deployment, Service, Namespace, headless Service data/ the bundled Postgres, the CNPG cluster, and spritzer ingress/ Ingress, Certificate, and the Traefik IngressRoutes secrets/ the InfisicalSecret backup/ the pg_dump CronJob observability/ ServiceMonitor, PrometheusRuleOne environment variable
Section titled “One environment variable”No resource file reads process.env. Every input is a declared build
parameter, so the same parameters produce the same resources.
The exception is chant.config.ts, which reads FOUNTAIN_ENV directly for
ownership.env, because ownership is read when the config loads and build
parameters do not exist yet at that point. So --param env=prod labels
resources prod while the ownership marker still says dev, unless
FOUNTAIN_ENV is set to match. Set both or neither.
INTENTIUS/chant#1396 tracks
it.