What it is
- One binary. No Postgres, no Redis, no Celery, no external services for the MVP. Idle RAM budget: ~100 MB.
- Content-addressed storage. Dedup for free; rename never touches
bytes; backups are
blobs/+ a SQLite snapshot. See backup and restore for the safe patterns. - Plugin at every layer. Ingest, OCR, storage, search, auth, classification, export — every seam is an interface.
- Lossless bundle import.
suchi import paperlessbrings tags, correspondents, custom fields verbatim from a compatible export bundle. Existing DMS mobile clients drive suchi’s wire surface directly. - Johnny.Decimal as the default taxonomy. Ships a starter tree on first boot; flat mode is available for migrators.
- Local-first by default, every egress opt-in. No telemetry, ever. See privacy.
Where to go next
Getting started
Five-minute quickstart — docker compose or bare binary.
Importing a bundle
suchi import paperless — verbatim metadata, dedup, —verify.Configuration
Every env var + purpose.
PUBLIC_URL is the only required one.Supported file types
What ingests, what binary it needs, slim vs full image matrix.
HTTP API
Endpoints today + planned mobile-client compat surface.
Architecture
Data flow, design principles, SQLite discipline, CAS.
Privacy & encryption
What leaves the box (nothing). The encryption ladder. What
suchi never logs.
Backup & restore
What to back up, when it’s safe to copy, and how to bring an
instance back from bytes.
Alternatives
Honest side-by-side vs Paperless-ngx, Papra, docspell.
Automations
Trigger→conditions→actions rules on document events.
Approvals
Human-in-the-loop review chains + timeouts.
Permissions
Groups + object ACLs. Household sharing without admin roles.
MCP
Model Context Protocol tools:
search_documents, get_document,
list_inbox, resolve_approval_task, create_share_link.