Docker Compose (canonical)
docker-compose.yml
/setup:
http://localhost:8000/ in a browser and sign in.
Bare binary + systemd
Download thesuchi binary for your OS/arch from the
releases page.
deploy/
in the repo:
deploy/systemd/suchi.service— systemd unit with a hardened sandbox and the two required env vars pre-set.deploy/caddy/Caddyfile— Caddy reverse-proxy block (auto-TLS).deploy/nginx/suchi.conf— nginx server block (bring your own certs).deploy/traefik/suchi.yml— Traefik dynamic-config snippet.deploy/k8s/suchi.yaml— single-replica Deployment + PVC + Service. SQLite is single-writer; do not scale up.
What just happened?
- On first boot, suchi ran embedded migrations up to the current schema version.
- It auto-loaded the Johnny.Decimal starter tree (four areas: Life admin, Money, Home, System). See JD for the shape.
- It printed a one-time setup token to the log at WARN level.
/healthzis process-alive;/readyzis DB-reachable + schema current./metricsexposes Prometheus counters (idle counts, HTTP latency histogram, job pipeline gauges).
Picking an image: slim vs full
Theghcr.io/suchi-dms/suchi:latest tag is the slim image
(~70 MB, Alpine + qpdf + pdftotext + tesseract). It covers the whole
PDF pipeline including OCR of scanned pages via the in-process
tessocr engine (pdftoppm → tesseract). Image barcodes, EPUBs, and
office documents (docx, xlsx, pptx, odt, rtf, csv via anydoc) work
out of the box. What it doesn’t ship: the ocrmypdf wrapper (so
no text-selectable scanned-PDF archives — the extracted text still
lands in documents.content and FTS indexes it), DjVu, and Outlook
.msg parsing.
For those, pull the full image (~400 MB):
ghcr.io/suchi-dms/suchi:latest-full. Same binary, extra runtime deps.
Both images can be forced to a specific OCR engine via OCR_ENGINE
(auto | tesseract | ocrmypdf). See supported file types
for the per-format matrix.
Next steps
- What suchi actually ingests: supported file types
- Import an existing archive bundle: importer
- Tune the running instance: config
- Add OIDC for team sign-in: config#oidc