config.toml. It’s idempotent, so
re-running it detects an existing config and key and reuses them unless
you pass --force.
Flags
Plus the global
--config <FILE>.
What it asks (interactively)
- Storage bucket / namespace: default
obsidianlog. - Storage backend:
local(no Sia node needed) orsia. - If
local: local storage directory, default./obsidianlog-data. Ifsia: an indexer URL, defaulting tohttps://sia.storage(the hosted, zero-setup option), then a recovery phrase prompt (typeseedto generate a new one) to complete onboarding inline, no separate command needed. See Choosing a Backend for what this actually connects to and when to use a different URL instead. - Ingest server bind address: default
127.0.0.1:7080. - Chunk time window (seconds): default
3600.
Where credentials live
The encryption key and, if you chose Sia, the indexd app key are stored together as one bundled credential (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux), falling back to a0600 secrets file
(~/.obsidianlog/) if the keychain isn’t reachable. It is never
transmitted or committed anywhere.
A fresh setup means at most one keychain authorization prompt, whether you
choose the local or the Sia backend (macOS may skip it entirely once it
already trusts the binary). On macOS this uses a direct, “create only”
keychain write rather than the usual check-then-write pattern most tools
use. See ADR-0015
for why that matters.
A config file from before this bundled format (obsidianlog 0.1.x) isn’t
migrated automatically: init fails with a clear message telling you to
either stay on obsidianlog v0.1.1 to keep reading archives created under
it, or pass --force to knowingly start fresh (this rotates the encryption
key).