Getting started
Requirements
Pepper 0.1.0 requires Rust 1.85 or newer. Storage works on a normal development machine. Compute additionally requires Linux, /dev/kvm, Firecracker, mkfs.ext4, debugfs, a guest kernel, and an allowlisted ext4 rootfs containing /pepper-guest-agent.
Build
git clone https://github.com/peppermesh/pepper.git
cd pepper
git checkout v0.1.0
cargo build --locked --workspace --releaseThe resulting host binaries are target/release/pepper-agent and target/release/pepper.
Start a development node
./target/release/pepper-agent init --config ./dev/node1.toml
./target/release/pepper-agent --config ./dev/node1.tomlKeep the agent running. In another terminal, verify it and store a block:
./target/release/pepper node status
printf 'hello pepper\n' > /tmp/input.txt
./target/release/pepper --json block put /tmp/input.txt
./target/release/pepper block get '<cid-from-put>' -o /tmp/output.txtdev/node1.toml uses relative paths and development settings. Do not use it unchanged for a system deployment.
Add a second node
Initialize and start dev/node2.toml in separate terminals. It bootstraps through node 1 and exposes its local API on port 9081.
./target/release/pepper-agent init --config ./dev/node2.toml
./target/release/pepper-agent --config ./dev/node2.toml
./target/release/pepper --api http://127.0.0.1:9080 node peers
./target/release/pepper --api http://127.0.0.1:9081 node statusObjects, directories, and retention
./target/release/pepper --json object put ./dataset.bin
./target/release/pepper object get '<object-cid>' -o ./restored.bin
./target/release/pepper --json dir put ./dataset
./target/release/pepper dir get '<directory-cid>' ./restored-directoryUser-facing puts create a permanent root pin. A root pin protects every reachable chunk. Delete the pin through the node that created it before running GC:
./target/release/pepper pin delete '<root-cid>'
./target/release/pepper admin gc --dry-run
./target/release/pepper admin gcDeployment boundaries
- The HTTP API must remain on loopback; use an authenticated TLS proxy or VPN remotely.
- A non-loopback P2P listener requires a cluster secret file with mode 0600 or stricter.
- Upgrade all nodes together: protocol v4 is not compatible with older development protocol versions.
- This release is a developer preview, not a production multi-tenant security boundary.