Deploying on a Server
The reference deployment is a single central instance on a trusted
server, with every workstation as a thin client. This chapter condenses
the full runbook (docs/deploy/laniakea.md in the repository) to the
essentials.
Topology
workstations (pi, agents) laniakea (or any always-on host)
┌────────────────────┐ HTTP ┌──────────────────────────┐
│ IJIMA_URL=... │──────────▶│ ijima serve (systemd) │
│ IJIMA_TOKEN=... │ tailnet │ /var/lib/ijima (NVMe) │
└────────────────────┘ │ zpool/backups (nightly) │
└──────────────────────────┘
- Network: Tailscale; the daemon binds the tailnet interface. TLS via
tailscale serve(terminates on the tailnet’s certs) or thetlsfeature directly. - Storage: data directory on fast local disk (SurrealDB/surrealkv); nightly snapshots to bulk storage.
Provision checklist
- Install the binary (see Getting Started) with
cli,backend-sqlite,embeddings-candle,mining,tlsas needed. /etc/ijima/ijima.toml— host/port/data_dir/issuer_key (copy fromdeploy/ijima.toml.example).deploy/ijima.service→ systemd;systemctl enable --now ijima.- Mint grants per principal (operators, harnesses, machine feeds) — Token Management.
curl .../healthliveness;GET /status(admin) for counts.- Import workstation corpora — Importing Legacy Corpora.
- Point each workstation’s
IJIMA_URL/IJIMA_TOKENat the instance.
Backup & restore
The store is a directory. The drill:
systemctl stop ijima
zfs snapshot zpool/backups/ijima@$(date +%F) # or rsync the directory
systemctl start ijima
Restore = stop, replace the directory, start. Run the drill once before trusting it.
Upgrades
systemctl stop ijima && <install new binary> && systemctl start ijima
Schema definitions are idempotent at open. Check the CHANGELOG for on-disk-layout notes before skipping multiple minors.
First-day verification
After provisioning: import one real workstation, run a pi session against
the central instance for a day, and confirm /status counts grow. The
deployment isn’t real until a harness has lived on it.