Skip to main content
nika serve is a foreground process for one project. A production runbook should name its room, binary, state volume, signal path and evidence checks.

Boot gate

Run every probe from the working directory production will use:
This proves binary resolution, project discovery and cadence parsing before a resident process starts. serve --dry is only a calendar preview. It does not exercise provider credentials or external effects.

Supervise the foreground process

The minimal systemd service contract is ordinary:
Pin WorkingDirectory and ExecStart. Provider keys stay in the protected environment file. The project source and .nika/ volume need only the access the workflows and evidence policy require.
Units emitted by nika arm --emit systemd are per-beat timer bridges. They are not the service unit for the resident nika serve loop.

Probe the surfaces that exist

nika serve does not listen on an HTTP port, so an HTTP health probe would be a fictional contract.
SERVER PROBES ยท EACH ANSWERS ONE QUESTION
Treat process liveness and workload success separately. A resident loop can be healthy while one workflow fails, and a completed --once sweep can exit zero after an individual beat failed or paused.

Deploy a project change

1

Stage the exact bytes

Put the candidate nika.yaml and workflows in the release directory that will become the production project room.
2

Preflight there

Run nika arm --plain with the pinned binary. A clean report validates the arm-ready project and cadence without scheduling work.
3

Switch deliberately

Replace the project release or edit the registry. The resident loop swaps only a valid registry and keeps the last good one after a refused edit.
4

Read the next decision

Confirm the process remains live and inspect the next beat line plus its sidecar evidence. Hot reload success is not the same as workflow success.

Investigate one surprising beat

Follow one path instead of searching every log at once:
An unmatched claim is evidence of uncertainty after a crash. It is not proof that the external effect did or did not happen. Keep those effects idempotent and investigate the external system before replaying.

Production checklist

  • One explicit project cwd.
  • One pinned binary path and printed version.
  • An arm-ready nika.yaml for the current released cadence reader.
  • Provider secrets outside source and generated units.
  • Durable project/.nika/ storage with chosen retention and access.
  • Captured stdout decision lines and stderr diagnostics.
  • SIGTERM delivery with enough time for the active firing boundary to settle.
  • An incident path from decision to ledger to verified trace.

Continue

Resident server

Read reload, shutdown and delivery semantics.

CWD and monorepos

Align project discovery and state roots.

Runtime state

Place ledgers, watermarks and traces.

Security boundary

Keep permits, secrets and spend explicit.