Expand description
Local configuration files (RON).
Two distinct files, split by audience:
project.cfg— one per project folder, read by the client commands (sync,build,bundle,validate): where/how to publish, the optional build/bundle steps, and the deploy-scopedroutingconfig that is folded into the immutable deployment manifest. SeeProjectConfig.boatramp.cfg— the server daemon config, read byserve:serve/handlers/cluster. SeeServerConfig.
Both are RON; a missing file yields the default config.
Structs§
- Bindings
Config handlers.bindings— per-binding backend configuration. kv/blob reuse the server’s own KV/Storage backends (per-site prefixed);sqlis the single libsql backend, whose single-node-vs-cluster split is the only choice.- Build
Config buildsection.- Bundle
Config bundlesection — the in-process Rust bundler (bundlerfeature).- Cluster
Config clustersection — self-hosted cluster mode. Parsed in every build so config files stay portable; only consumed when theclusterfeature is compiled in (boatramp serve --mode cluster).- Compute
Config computesection — opt-in compute backends. Present ⇒serveregisters the backends this node can offer and advertises them to the scheduler; backends are capability-detected (container on Linux, remote docker when a daemon is reachable, VMM when/dev/kvmexists).- Console
Config [serve.console]— the embedded web console (a Wasm SPA baked into the binary with theconsolebuild feature). Opt-in: the static shell holds no secrets and the/apiit drives is token-gated, so it is served unauthenticated at a deliberately obscure path (a bearer token can’t gate a top-level browser navigation anyway — the path is the obscurity, the token is the real gate).- External
Database Config - One external (bring-your-own) SQL database for the handler
sqlbinding. The connection URL is a secret and is named indirectly (url_env), never written in the config file. - Handlers
Config handlerssection — server-side handler runtime config (read byserve). Parsed in every build (so config files stay portable), but only consumed when thehandlersfeature is compiled in.- Mesh
Config [cluster.mesh]— mesh identity + TLS knobs.- Project
Config - Project configuration, loaded from
project.cfg(RON) in the project folder. - Publish
Config publishsection — where and what to deploy (thesynctarget).- Secrets
Config secretssection — envelope encryption for private keys at rest.- Serve
Config servesection — server defaults, overridden by flags/env.- Server
Config - Server daemon configuration, loaded from
boatramp.cfg(RON). Read byboatramp serve; flags/env override theservevalues. - SqlBinding
Config - libsql settings for the handler
sqlbinding — the single SQL backend. Each site gets a real database boundary (an embedded file per site, or a sqld namespace per site), never schema separation (which arbitrary guest SQL escapes). Settingurlswitches from single-node to a shared sqld cluster; everything else stays identical. - Vault
Secrets Config - Vault Transit settings for
envelope = "vault". The token is read from the environment (token_env), never stored in the config file.
Enums§
- Auth
Signer Config - External token signer selector (
serve.signer). Maps toboatramp_server::signer::SignerConfig; secrets (tokens/PINs) are resolved from the named env vars at startup, never stored in config. Written as a RON enum —signer: Vault(...),signer: AwsKms(...),signer: Pkcs11(...), …. - Config
Error - A failure loading or parsing a local config file (
project.cfg/boatramp.cfg). - Signer
Alg - The signing algorithm for a signer that can choose one (
Local,Vault,Pkcs11). ES256 is the portable default; the cloud KMS backends are ES256-only and ignore this. Written as a RON enum:alg: Es256/alg: Ed25519.
Constants§
- BOATRAMP_
KERNEL_ SIGNING_ PUBKEY - The built-in boatramp kernel-signing public key (
es256:…), whose private half lives as theKERNEL_SIGNING_KEYActions secret inBoatRamp/boatramp-vmlinux. Shipped as a default trust anchor so the first-party signedboatramp-vmlinuxverifies out of the box under the strict posture. An operator can replacekernel_signing_pubkeysto trust only their own keys.
Functions§
- ron_
options - RON parse options shared by both loaders:
implicit_somelets optional fields be written as bare values (server: "...", notSome("...")).pubso the binary (which re-exports this module) can parse a manifest with the same options after the module moved into this crate.