| 1 |
# Sando daemon config (production). |
| 2 |
# Install at /etc/sando/sando-daemon.toml on the Sando host. |
| 3 |
# |
| 4 |
# Deploy-API auth is NOT configured here — the bearer token lives in the |
| 5 |
# EnvironmentFile (/etc/sando/sando.env: SANDO_API_TOKEN), generated by |
| 6 |
# bootstrap-sandod-host.sh. With a non-loopback `listen` (below) the daemon |
| 7 |
# REFUSES TO START unless that token is set (CF2): a tailnet bind is reachable |
| 8 |
# by every tailnet node, so deploy authority must be gated by more than network |
| 9 |
# position. |
| 10 |
|
| 11 |
listen = "100.103.89.95:7766" # fw13 tailnet IP; bind tailnet-only, not 0.0.0.0 — requires SANDO_API_TOKEN |
| 12 |
db_path = "/srv/sando/state/sando.db" |
| 13 |
topology_path = "/etc/sando/sando.toml" |
| 14 |
# Hostname (/proc/sys/kernel/hostname) this daemon is permitted to build on. |
| 15 |
# build::run refuses to compile on any other host, so a sandod misdeployed onto |
| 16 |
# a prod node cannot build there ("never build on prod" as an invariant). |
| 17 |
# Required — there is no safe default. |
| 18 |
build_host = "fw13" |
| 19 |
workdir = "/srv/sando/work" |
| 20 |
release_root = "/srv/sando" |
| 21 |
scratch_db_url = "postgres:///sando_scratch?host=/var/run/postgresql" |
| 22 |
bin_names = ["makenotwork", "mnw-admin"] |
| 23 |
logs_root = "/srv/sando/logs" |
| 24 |
# Shared cargo target dir across per-sha worktrees. Without it every /rebuild |
| 25 |
# clean-compiles a fresh worktree (~10 min) even for a 1-line diff; with it the |
| 26 |
# incremental rebuild reuses the previous sha's compiled deps (1–2 min). Safe |
| 27 |
# because builds are serialized (a new /rebuild aborts the in-flight one). The |
| 28 |
# sando user must be able to write it; cargo creates it if absent. |
| 29 |
cargo_target_dir = "/srv/sando/cargo-target" |
| 30 |
|
| 31 |
# Non-binary content shipped as part of each release. Multiple entries can |
| 32 |
# target the same `dst` (additive merge — used to build `docs/` from three |
| 33 |
# worktree sources). Sources are relative to the worktree root; dsts are |
| 34 |
# relative to <release_root>/releases/<v>/. |
| 35 |
[[release_contents]] |
| 36 |
src = "server/deploy/error-pages" |
| 37 |
dst = "error-pages" |
| 38 |
|
| 39 |
[[release_contents]] |
| 40 |
src = "server/static" |
| 41 |
dst = "static" |
| 42 |
required = true |
| 43 |
|
| 44 |
[[release_contents]] |
| 45 |
src = "server/site-docs/public" |
| 46 |
dst = "docs/public" |
| 47 |
required = true |
| 48 |
|
| 49 |
[[release_contents]] |
| 50 |
src = "server/site-docs/examples" |
| 51 |
dst = "docs/examples" |
| 52 |
|
| 53 |
[[release_contents]] |
| 54 |
src = "server/docs/business/assumptions.toml" |
| 55 |
dst = "docs/assumptions.toml" |
| 56 |
required = true |
| 57 |
|