The operator chose single-space mode: the vault is mounted at /data, with memory/ read-only over it, and there are no accounts or setup wizard; Authelia in the operator's Caddy is the login. SB_NAME forces the mode, so an empty vault can't boot the wizard. SilverBullet's own data folder is gone. check now fails if the wizard could be open. The README says how to make memory/ writable for a while and back. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
The agent host
nisse.garrett-hall.com, made by infra/tofu#77 as nisse-host and since
renamed (architecture X1). For now it holds the knowledge vault and
SilverBullet, the operator's view of it (L10, M5.4). The agents' containers come
later (M6.1).
What's here
silverbullet/compose.yaml: SilverBullet, its version pinned, serving the vault as its one space, with the agents'memory/read-only. Nothing else of the host. It has no accounts: the operator logs in through Authelia.setup.sh: makes the vault's folders, installs the stack under/opt/stacks/silverbulletand the firewall, and starts it. Safe to run again.nisse-firewall: only the operator's Caddy may reach SilverBullet's port (Docker'sDOCKER-USERchain, re-applied whenever Docker starts).check.sh: run on the host byscripts/agent-host.sh check; says "all checks passed" only once every check has run.caddy/nisse-memory.dongar.net.caddy: the site for the operator's Caddy ondocker.garrett-hall.com. HTTPS from Caddy's usual certificate, behind Authelia.
The vault
/srv/nisse/vault, one copy on the host's disk, nothing synced:
- The operator's: the root and everything in it but
memory/, written through SilverBullet.infrastructure/holds material fornisse-ops, whichnisse-devwill never be given. - The agents':
memory/<agent>/, one writer each, when the agents move in. SilverBullet sees them read-only.
Backed up nightly with the VM (Proxmox; backup: true in infra/tofu).
Installing and checking
From the development VM, with the bring-up key the operator added for ubuntu:
scripts/agent-host.sh install # copy this folder over and run setup.sh
scripts/agent-host.sh check # running, mounts, firewall
Then the operator adds the Caddy site from
caddy/nisse-memory.dongar.net.caddy, behind Authelia, and reloads Caddy.
There's no setup wizard: SilverBullet starts serving the vault at once.
Making memory/ writable for a while (for example, to upload material that
will be sorted into the agents' folders): on the host, add
/opt/stacks/silverbullet/compose.override.yaml that replaces the volumes with
the vault alone (volumes: !override [/srv/nisse/vault:/data]), give memory/
to uid 1000, and docker compose up -d. check fails while it's in place.
To end it, delete the override and run install again, which gives memory/
back to root.