eikek/docspell
Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.
Docspell – Personal Document Management System
What it is
- An open‑source DMS aimed at households, families and small teams. It helps you store, organise and retrieve scanned papers, e‑mails and other digital documents.
Why it matters
- The biggest pain point of a personal DMS is adding useful metadata (who the document is from, dates, tags, etc.). Docspell reduces that manual work by using Stanford CoreNLP to automatically suggest correspondents, extract dates, guess tags and perform full‑text search. In other words, it brings lightweight natural‑language‑processing to a home‑office workflow.
Key features
- Automatic metadata extraction – NLP‑driven suggestions for tags, dates and correspondents.
- OCR pipeline – integrates tesseract, ocrmypdf and unoconv to turn scanned images into searchable PDFs.
- Full‑text search – powered by the extracted text.
- REST/HTTP API – all functionality is reachable programmatically.
- Web UI – a mobile‑friendly single‑page application built with Elm and Tailwind CSS.
- Android client – quick upload from phones/tablets.
- CLI tool (
dsc) – command‑line access for power users. - Docker, Debian package, Nix, Helm – multiple easy‑install options.
How it works (high‑level)
- Ingestion – you drop files (scans, PDFs, e‑mail attachments) into the system via the web UI, Android app, CLI or API.
- Processing – Docspell runs OCR if needed, then hands the text to Stanford CoreNLP.
- Metadata inference – the NLP step extracts entities (people, organisations, dates) and proposes tags.
- Storage & indexing – the document and its metadata are stored in a PostgreSQL database; full‑text indexes enable fast search.
- Retrieval – you can browse, filter by tags/correspondents, or search by free text.
Technology stack
- Backend – Scala (functional style) using the Typelevel ecosystem: Cats, FS2, Doobie, Http4s, Circe, Pureconfig. ML/NLP is delegated to the external Stanford‑NLP library; OCR relies on tesseract, ocrmypdf and unoconv.
- Frontend – Elm SPA styled with Tailwind CSS.
- Deployment – Docker images (REST server, UI, worker), Debian
.deb, Nix package, Helm chart for Kubernetes.
Getting started
# Quick Docker start (3 commands)
git clone https://github.com/docspell/docker docspell-docker
cd docspell-docker/docker-compose
docker-compose up -d
Then open http://localhost:7880, create a collective/user (same name works for a first run) and start uploading documents.
License
- AGPL‑v3 (or later), so the software remains free and source‑available even when offered as a service.
Who might use it
- Home users who want a searchable archive of receipts, contracts, letters, etc.
- Small offices or NGOs that need a low‑cost, self‑hosted DMS with some intelligent assistance.
- Developers looking for a Scala‑based example of integrating NLP/ML into a production service.
All information above is taken directly from the project's README.
Related
- Project
- Project
- Project
- Dispatch
- Project