Building
- Default (local test)
- With Sia
obsidianlog init still
defaults to the local backend, and serve/query/verify work fully
against it. Sia isn’t reachable from this build at all: if a config
points at a Sia indexer anyway, those commands fail with a clear error
instead of silently using local storage.target/release/obsidianlog. Want it on
your PATH instead of just built locally? Use cargo install --path crates/obsidianlog-cli (add --features sia for Sia support) to install
it into your Cargo bin directory.
Testing
--all-features compiles and exercises the
Sia code paths, but skips the live-network test without real credentials.
To actually run it against a real Sia indexer, see
Testing Against a Live Sia Indexer.
Feature flags
Sia is kept behind a flag instead of being on by default because the
underlying SDK is pre-1.0. See
ADR-0006
for the full reasoning, it’s not required reading to use this page.
Running the standalone ingest server directly
obsidianlog-ingest is a standalone binary you can run without the CLI.
Unlike obsidianlog serve (which manages the key for you), the standalone
binary never reads its encryption key from the config file. It refuses to
start until you pass one via OBSIDIANLOG_ENCRYPTION_KEY (a 64-character hex
string) or OBSIDIANLOG_ENCRYPTION_KEY_FILE (a path to a file containing
that string, the convention for a mounted Docker/Kubernetes secret):
obsidianlog CLI’s init/serve manage this key for you instead. See
obsidianlog init and obsidianlog serve.
