b664b5771d
- The first tag was rendered with slightly higher height than the rest - Columns between first and last are hidden on small screens - Use `break-all` to break all words if necessary without trying to keep whole words |
||
---|---|---|
.github | ||
artwork | ||
docker | ||
modules | ||
nix | ||
project | ||
tools | ||
website | ||
.gitignore | ||
.mergify.yml | ||
.projectile | ||
.redocly.lint-ignore.yaml | ||
.scala-steward.conf | ||
.scalafix.conf | ||
.scalafmt.conf | ||
build.sbt | ||
Changelog.md | ||
Contributing.md | ||
LICENSE.txt | ||
NOTICE.txt | ||
README.md | ||
version.sbt |
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 😉. 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:
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/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:
- Install the provided
deb
file at your debian based system. - Download provided zip
file and run the script in
bin/
, as described here. - Using the nix package manager as described here. A NixOS module is available, too.
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 AGPLv3 or later.