Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.
Go to file
Eike Kettner e6d9ce2c37 Remove obsolete type capabilities
These are now detected by the new scala compiler and lead to compile
errors.
2021-03-01 00:16:30 +01:00
artwork Remove old site 2020-07-31 01:28:09 +02:00
docker Add npm to docker build image 2021-02-14 10:33:59 +01:00
modules Remove obsolete type capabilities 2021-03-01 00:16:30 +01:00
nix Update nix setup 2021-02-19 23:30:59 +01:00
project Update sbt-scalafix to 0.9.26 2021-02-27 22:35:27 +01:00
tools Move consumedir entrypoint to docker and fix compose setup 2021-01-28 22:31:58 +01:00
website Set version to 0.21.0-SNAPSHOT 2021-02-19 23:32:10 +01:00
.dockerignore Proper docker files (build from code) - 2.1 (#311) 2020-10-19 13:56:44 +02:00
.gitignore Proper docker files (build from code) - 2.1 (#311) 2020-10-19 13:56:44 +02:00
.mergify.yml Extend mergify to merge my own prs on ci success 2020-06-13 14:53:38 +02:00
.projectile Add local/ to .gitignore 2020-09-13 11:48:31 +02:00
.scala-steward.conf Ignore poi updates for now 2021-01-17 19:49:15 +01:00
.scalafix.conf Add scalafix and organize-imports rule 2020-06-28 21:20:47 +02:00
.scalafmt.conf Update scalafmt-core to 2.7.5 2020-10-16 22:37:52 +02:00
.travis.yml Update travis build to scala 2.13.5 and jdk11 2021-02-28 23:35:34 +01:00
build.sbt Remove obsolete type capabilities 2021-03-01 00:16:30 +01:00
Changelog.md Add mobile screenshots and update changelog 2021-02-19 20:57:56 +01:00
Contributing.md Update README 2021-01-20 00:59:35 +01:00
elm-analyse.json Fix elm-analyse issues 2020-01-29 20:56:14 +01:00
elm-package.json Add scalafmt.conf and elm compile options 2019-12-29 20:52:43 +01:00
elm.json Replace js code with proper elm using elm-scroll package 2020-09-14 23:35:21 +02:00
LICENSE.txt Initial version. 2019-09-21 22:02:36 +02:00
NOTICE.txt Improve handling encodings 2020-03-23 22:51:28 +01:00
package-lock.json Setup tailwind with docspell build 2021-02-03 21:35:15 +01:00
package.json First version of new ui based on tailwind 2021-02-14 01:46:13 +01:00
postcss.config.js Remove unused styles and prevent postcss from purging relevant ones 2021-02-14 02:20:01 +01:00
README.md Update README 2021-02-19 22:36:55 +01:00
tailwind.config.js First version of new ui based on tailwind 2021-02-14 01:46:13 +01:00
version.sbt Set version to 0.21.0-SNAPSHOT 2021-02-19 23:32:10 +01:00

Build Status Scala Steward badge License Docker Pulls Gitter chat

Docspell

Docspell is a personal document organizer. You'll need a scanner to convert your papers into files. Docspell can then assist in organizing the resulting mess 😉. It is targeted for home use, i.e. families and 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. 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-5 screenshot-5

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/eikek/docspell
cd docspell/docker
DOCSPELL_HEADER_VALUE="my-secret-123" docker-compose up

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 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 GPLv3 or later.