Skip to main content
Already have Rust? This is the fastest path to a working obsidianlog if you don’t want to download a release archive or clone the repository. Want the latest, possibly-unreleased code instead of the last published version? See Building From Source.

Prerequisites

You need Rust and Cargo installed. Check:
If that fails, install Rust via rustup:
Follow the on-screen prompts, then restart your terminal (or run the source command it prints at the end) so cargo is on your PATH.

Installing

This matches the local backend’s default: no Sia support, obsidianlog init defaults to the local backend. To include Sia support (what the official release binaries ship with):
Either command installs the obsidianlog binary into your Cargo bin directory (~/.cargo/bin by default, %USERPROFILE%\.cargo\bin on Windows), already on your PATH if you’ve used cargo install before. Unlike the release binary or Docker paths, there’s no folder to extract or cd into, obsidianlog runs from wherever you are. Want the standalone ingest server too?
Most people don’t need this separately, obsidianlog serve already wraps it and manages its encryption key for you. See Running the standalone ingest server directly if you do.

Archive your first log and get it back

The same setup, ingestion, retrieval, and integrity-check loop as the Quickstart, just running obsidianlog directly instead of ./obsidianlog from an extracted folder.
Two terminals. Leave the first running serve; use the second for everything else.1. Set up.
You’ll see:
2. Start the server.
The terminal won’t return to a prompt after this, it keeps running until you stop it. Leave it running and use your second terminal for the rest.3. In the second terminal, send a log.
A successful ingest has an empty body, so the 200 printed on its own line (from -w) is the actual confirmation, not the absence of output.4. Query it back.
5. Verify the hash chain.
See the full CLI reference for every command’s flags.
On macOS, init will prompt at most once for your login-keychain password. This is the OS asking permission for obsidianlog to store the credentials it just generated, not an ObsidianLog password. Click Always Allow rather than just Allow, so later serve/query/verify runs read them without prompting again.

What’s next