docspell is a free, open source document management & e-signatures project written in Elm and released under AGPL-3.0. It has 2,329 GitHub stars, 184 forks and 235 open issues, and was last pushed 7 hours ago. On this registry it ranks #11 of 18 tracked projects in Document Management & E-Signatures, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is docspell?

Docspell is a self-hosted document management system that helps households, families, and small groups or companies organise the piles of paper, scans, and e-mails that accumulate from scanners and other sources, using machine learning and OCR to cut down the manual effort of adding metadata.

What it is

Docspell is a personal document organiser, also described as a Document Management System (DMS). It is written primarily in Scala with an Elm front end, is licensed under AGPL-3.0, and lives in the open-source document management ecosystem, alongside the topics dms, edms, ocr, nlp, and personal-document-system. It takes files arriving from scanners, e-mails, and other sources and unifies them into one searchable store. Documents can carry tags, correspondents, dates, and other predefined or custom metadata, and everything is reachable through a REST/HTTP API.

The concrete problem it replaces is the routine of manually filing and labelling scans. Adding metadata by hand is tedious, so Docspell suggests correspondents, guesses tags, and finds dates using machine learning. It learns metadata from the documents already present and locates things using NLP, backed by the free GPL-licensed Stanford CoreNLP library. Where needed it runs OCR on documents, provides fulltext search, and offers e-mail integration — replacing the loose pile of scanner output and mailbox attachments that would otherwise have to be sorted by hand.

Key capabilities

  • Automatic metadata assistance: suggests correspondents, guesses tags, and finds dates using machine learning trained on existing documents, with NLP via Stanford CoreNLP.
  • OCR processing on documents when the uploaded file requires it, feeding fulltext search.
  • Fulltext search over the organised store, once metadata and extracted text are associated.
  • E-mail integration for pulling documents in from mailboxes.
  • REST/HTTP API exposing the whole system, with a mobile-friendly SPA web application as the default user interface.
  • Android app for uploading files from a phone or tablet, plus a command-line client, dsc.
  • Metadata model covering tags, correspondents, and both predefined and custom fields.

Who uses it and how

  • Home use: families and households scanning paper correspondence and filing it into one collective.
  • Smaller groups and companies that need a shared DMS without a hosted service.
  • Users who already own a scanner and want the resulting files organised with minimal manual tagging.
  • People who receive documents by e-mail and want them captured automatically rather than saved by hand.
  • Mobile-first users who photograph or share documents from a phone or tablet through the Android client, then curate them later in the web application.

Getting started

The quickest route is the Docker setup from the docspell/docker repository: clone it, enter docker-compose, run docker-compose up -d, then open http://localhost:7880, sign up, and log in using the same name for collective and user. Alternatives are documented on the get-started and quickstart pages: installing the provided deb file on a Debian-based system, downloading the provided zip and running the script in bin/, or using the nix package manager.

How it compares

No comparable tools are named in the supplied facts, and no list of paid products this project replaces is provided. On the evidence available, Docspell stands alone in this registry. Its AGPL-3.0 licence, its self-hosted multi-component architecture, and the absence of any hosted or paid tier mean the comparison has to be made against whatever else an operator is already running, not against named commercial alternatives.

When to use it — and when not to

A self-hoster must run and maintain the whole multi-component stack that the docker-compose setup brings up, keep up with updates, and configure the e-mail integration against real mailboxes, since mail handling is a core rather than optional feature. It is a poor fit for anyone who wants a managed service, for organisations that cannot accept AGPL-3.0 copyleft obligations, or for teams unwilling to operate a database-backed server alongside a browser client. The repository itself carries 235 open issues, which is worth weighing as a signal of maintenance load, and the machine learning component depends on an external GPL library, so the dependency chain is worth reviewing before standardising on it.

project readme (upstream, from github) — read inline

Scala Steward badge License Docker Pulls Gitter chat

Docspell - Document Management System (DMS)

Docspell is a personal document organizer. Or sometimes called a "Document Management System" (DMS). You'll need a scanner to convert your papers into files. Docspell can then assist in organizing the resulting mess :wink:. It can unify your files from scanners, emails and other sources. It is targeted for home use, i.e. families, households and also for smaller groups/companies.

You can associate tags, set correspondends and lots of other predefined and custom metadata. If your documents are associated with such meta data, you can quickly find them later using the search feature. But adding this manually is a tedious task. Docspell can help by suggesting correspondents, guessing tags or finding dates using machine learning. It can learn metadata from existing documents and find things using NLP. This makes adding metadata to your documents a lot easier. For machine learning, it relies on the free (GPL) Stanford Core NLP library.

Docspell also runs OCR (if needed) on your documents, can provide fulltext search and has great e-mail integration. Everything is accessible via a REST/HTTP api. A mobile friendly SPA web application is the default user interface. An Android app exists for conveniently uploading files from your phone/tablet and a cli. The feature overview lists some more points.

Impressions

Checkout the short demo videos (<1min), present on the project page. Here are some screenshots:

screenshot-1 screenshot-2 screenshot-3 screenshot-4 screenshot-5 screenshot-7 screenshot-8

Try it

Docspell consists of several components. The probably quickest way to get started is to use the docker setup as described in the get started page. This is only three commands away:

git clone https://github.com/docspell/docker docspell-docker
cd docspell-docker/docker-compose
docker-compose up -d

Then go to http://localhost:7880, sign up and login. Use the same name for collective and user for now. More on that can be found here.

Other ways are documented here:

Documentation

The project page has lots of information on how to use and setup docspell.

Contributions/Support

Feedback and other contributions are very welcome! There is a gitter room for chatting and questions. You can also open an issue for questions, problems and other feedback; or make a mail to info [at] docspell.org. I'll try to answer in time. You may want to check Contributing.md for some starting points, too.

If you find this project any useful and want to support it via other means, giving a :star: is always encouraging and much appreciated. You can also support activity by donating via liberapay or paypal.

Thank you so much!

Tech Stack

Backend

The servers is written in Scala in a pure functional style, based on libraries from the typelevel stack: Cats, FS2, Doobie, Http4s, Circe and Pureconfig.

There are more libraries and technologies used, of course. Docspell is only a orchestration of great tools and libs. One important is the Stanford-NLP, that provides the ML features. Furthermore, file processing relies on external tools like tesseract, unoconv and ocrmypdf. All dependencies can be looked up in project/Dependencies.scala.

Frontend

The web frontend is a SPA written in Elm. The UI framework in use is tailwind.

License

Docspell is free software, distributed under the AGPLv3 or later.

Frequently asked questions

Is docspell free to use?

docspell is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does docspell do?

Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.

What is docspell written in?

docspell is primarily written in Elm. Its source is publicly available at https://github.com/eikek/docspell, and it has 2,329 GitHub stars.