Project Structure

Sietch is inspired by robust, decentralized systems and provides a resilient, portable vault-built for hostile or disconnected environments. If you’re familiar with Go, CLI tools, or modern static site generators, you’ll feel right at home.

Vault Directory Structure

When you initialize a Sietch vault (sietch init), the CLI creates a self-contained directory with everything needed for secure, offline-first storage and sync. A typical Sietch vault directory looks like:

.sietch/              # Control room: keys, encryption material, internal state
  keys/               # Encryption keys (AES, GPG, etc.)
  chunks/             # Chunked, encrypted file storage
  sync/               # Sync Keys
  manifest/           # Stores the manifests for all the data stored
vault.yaml            # Manifest: vault ID, encryption, chunking, sync config
Optionally, you can customize the vault location or structure using flags during sietch init.

Extensibility & Recovery

  1. Manifest & Metadata: vault.yaml acts as the genetic map of your vault-future-proofed for new features, sync strategies, and cryptographic extensions.
  2. Recovery: Sietch supports rehydration and recovery via CLI (sietch recover), allowing you to rebuild your vault from chunks or peer metadata if your manifest is lost or corrupted.
Sietch is designed for resilience, security, and portability-whether you’re running a documentation site or a nomadic, encrypted vault.