Skip to main content
The node’s configuration lives in config.json inside the config directory (/config in the container, ./data/config on the host with the default compose file). The file is created on first boot with defaults; edits are picked up and applied live — recorders and detectors reconcile against the new config without a restart. Writes are atomic.

config.json

Top level

retention

cloud

If no URL/key is available from config or environment, the cloud link simply stays disabled — the node runs local-only.

go2rtc

paths

Camera entries

Cameras are normally added through the UI or API, but they live in this file:
Motion and detection thresholds (frame diff limits, YOLOX confidence, clip pre/post-roll) are currently constants in the code, not configuration. See Recording and events for their values.

Environment variables

The Docker compose file wires the directories to ./data/* on the host and passes the two NIGHTJAR_SUPABASE_* variables through (defaults point at the official cloud).

identity.json

Alongside config.json, the node keeps identity.json: the node’s machine secret (generated on first boot), its cloud node id after registration, and the current claim code while unclaimed. Treat it like a credential — anyone with the secret can act as your node. Deleting it resets the node’s cloud identity.