docker/docker-compose.yml runs the ingest server in a container against
the local backend by default. It needs no Sia node, no wallet, and
nothing beyond Docker itself.
The local-backend path
obsidianlog-data named
volume. They survive docker compose restart/down (without -v), so you
only run step 2 once. The key lands in that volume rather than a host
keychain because a bare container has no keychain daemon to talk to. The
same file-based fallback described in
Security Model kicks in
automatically. To ship real logs instead of the curl smoke test,
see Sending Logs with Vector.
Optional: self-hosted indexd
The sia Compose profile adds indexd + the PostgreSQL database it
requires, matching indexd’s own official example. It’s off by default.
docker compose up alone never starts it:
indexd itself needs its own one-time setup first (indexd’s own documented
flow, not an ObsidianLog step):
obsidianlog init interactively, choose the Sia backend, and enter
http://localhost:9982 at the indexer URL prompt in place of the
https://sia.storage default. Onboarding happens inline, no separate
command needed. See
Bring Your Own Indexer for when
this is the right choice.