All docs

Docs · Reference

Chassis runtime

Operator reference for txco serve: personalities, listeners, data on disk, and the flags that matter in production.

Every flag can also be set as an environment variable using the TXCO_ prefix and underscores (--ingress-configTXCO_INGRESS_CONFIG). --env (default dev) names the environment and is embedded in database filenames.

Personalities

--personalities selects which heads the chassis boots. Default: cron,tcp,web,admin. Opt-in: lmtp (inbound mail — see lmtp.md) and dns (authoritative DNS for delegated zones, required for the built-in ACME TLS path — see dns.md).

HeadFlagDefaultNotes
web--web-addr:8080Event inlet, plain HTTP. TLS terminates at a front proxy by default.
tcp--tcp-listen-addrs:5050Line-delimited JSON. Comma list of name=addr or bare addr; a named entry sets _txc.tcp.listener for ingress routing.
admin--admin-addr:8081Mutating API + admin UI — see admin-api.md.
lmtp--lmtp-listen-addrs:2424Only binds when lmtp is in --personalities.
cron--cron-period60Seconds between ticks.

--web-tls-addr (e.g. :8443) makes the chassis terminate TLS itself, obtaining wildcard certificates via ACME DNS-01 against its own DNS head — requires the dns personality and --acme-email. Empty (default) leaves TLS to your reverse proxy.

Data on disk

Note

All state is local files — back these up.

PathWhat
./chassis/data/db/runtime-$env.dbRuntime SQLite DB (rules, tenants, hostnames)
./chassis/data/db/auth-$env.dbAuth SQLite DB (actors, keys, invitations)
./chassis/data/kv/KV store (BoltDB by default)
./chassis/data/secrets/txco-master.keySecret-store master key — back up separately; see the secret-store runbook
./chassis/data/continuations/Suspended-run state (--continuation-store=file)
./chassis/data/artifacts/Compute artifacts (wasm modules)
./data/trace/Trace output when --trace-modeoff

Roots are configurable (--db-root-dir, --kvstore-addrs, --secret-master-key, --trace-dir, …).

Dispatch limits

FlagDefaultMeaning
--op-timeout5sPer-op timeout when a rule sets none
--op-timeout-max10mCeiling for any rule’s WITH timeout
--op-payload-max4194304Max op payload, bytes (4 MiB)
--max-fuel-per-request100000Fuel budget per request — see fuel.md
--compute-max-memory-mb32Memory cap per sandboxed nano-op
--compute-max-wall250msWall-clock cap per nano-op invocation

Network policy

--egress-policy controls what ops may dial out to: private (default) blocks loopback, RFC 1918, link-local, CGNAT, cloud-metadata ranges, and anything in --egress-deny-cidrs; open allows any address. The default is private so a chassis running tenant-authored ops can’t be steered into an SSRF against 169.254.169.254 (cloud metadata), the admin API, or other internal services. Set --egress-policy=open (or whitelist a specific range with --egress-allow-cidrs) only when your own rules must reach internal/localhost services. txco dev and start.sh opt into open for local development.

AI gateway

The web head also serves the AI-gateway inlet (POST /v1/messages), which forwards to an upstream model provider after running the request through the tenant’s _llm stack. It is per-tenant opt-in — a tenant enables it by authoring an _llm stack, so there is no enable flag. Full reference: llm-gateway.md.

FlagDefaultMeaning
--llm-upstream-urlhttps://api.anthropic.comBase URL forwarded to; invalid fails at boot
--llm-context-max-tokens2000Estimated-token cap on injected context
--llm-context-max-items8Item cap on injected context
Note

Context injection needs both caps positive. Setting either to 0 disables injection entirely, and stack-emitted items are then dropped with only a debug log.

Routing and tenancy

  • --ingress-config — path to a static ingress.yaml; empty (default) disables the YAML layer. Hostname bindings in the tenant_hostnames table work either way — see ingress.md.
  • --ingress-miss-actionfallthrough (default) sends unmatched events to the boot/%/0 entry; reject returns a clean 404 without invoking the processor. Use reject when everything routes via tenant_hostnames.
  • --require-hostname-verificationfalse by default; set true in production so unverified hostname bindings don’t route. (--dev-auto-verify-local-hostnames, default true, auto-verifies localhost-style names for development.)
Warning

Set --require-hostname-verification=true in production. It’s false by default (convenient for dev), which means unverified hostname bindings still route — a tenant could route a hostname it hasn’t proven it owns.

Admin auth

--auth-mode is one of basic, signed, or both (default both); --admin-user / --admin-pass set the basic credentials. With no basic credentials and no enrolled signing keys, the chassis runs in open-dev mode (requests get an admin:all context, source: "open") — local development only. Details and the enrolment flow: admin-api.md.

Observability

  • --trace-mode off (default) | summary | full; --trace-dir (default ./data/trace); --trace-async (default false) moves trace writes off the request path — see trace.md.
  • Prometheus metrics are exported under the txco namespace (--prom-namespace).
  • --log-ops (default disabled) writes per-op logs to --log-ops-dir.

Edit this page · View as markdown