• Stars
    star
    1,394
  • Rank 32,380 (Top 0.7 %)
  • Language
    Elm
  • License
    GNU Affero Genera...
  • Created almost 5 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 πŸ˜‰. 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/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:

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.

More Repositories

1

sharry

Sharry is a self-hosted file sharing web application.
Elm
716
star
2

emil

Emil is a library for dealing with E-Mail in Scala.
Scala
35
star
3

chee

A command line tool for managing photos.
Scala
26
star
4

yamusca

Yet another mustache impl for scala
Scala
21
star
5

sbt-openapi-schema

Generate schema sources for Scala, Java and Elm from an openapi 3.0 spec.
Scala
20
star
6

calev

Work with systemd.time like calendar events in Scala
Scala
11
star
7

mpc4s

Scala client library for MPD, HTTP interface to MPD via REST/Websockets, finally a Webclient for MPD
Scala
10
star
8

org-expenses

track expenses with org
Emacs Lisp
8
star
9

sitebag

"read it later" (server) app in scala; for storing websites
Scala
5
star
10

confnix

my nixos config files
Nix
5
star
11

meth

Commandline client for mediathekview
Scala
5
star
12

binny

Scala library for dealing with binaries/blobs in databases
Scala
4
star
13

publet

Template Web application
Scala
4
star
14

swing-tasks

A small library that aims to help with executing tasks from swing applications.
Java
3
star
15

dotfiles

Shell
3
star
16

sig

simple image gallery -- static site generator for image galleries
Scheme
3
star
17

dlm

download manager for the command line
Common Lisp
2
star
18

scala-steward

Run scala-steward on my repos
Shell
2
star
19

porter

authentication / authorization service in scala
Scala
2
star
20

spray-openid

OpenId 2 support for use with spray
Scala
2
star
21

magnatune.el

Browse magnatune's music collection in emacs.
Emacs Lisp
2
star
22

scue

Thin Scala wrapper for Blueprints Graph API.
Scala
2
star
23

webact

Run actions from the web. Webact allows to manage scripts on the server and execute them.
Elm
2
star
24

publet-plantuml

PlantUML extensio for publet.
Scala
2
star
25

notelog

create a log of notes across multiple org files
Emacs Lisp
1
star
26

init.el

My Emacs configuration
Emacs Lisp
1
star
27

musicpds

Shell
1
star
28

shelter

manage virtual accounts
Clojure
1
star
29

neoswing

A simple swing-based GUI for Bluepints enabled databases, that uses the JUNG library for visuaization.
Java
1
star
30

swing-uploadfield

A swing component for url inputs.
Java
1
star
31

publet-james

Extension for publet integrating Apache James.
Scala
1
star
32

wicket-quickstart-osgi

Java
1
star
33

attentive

A personal scrobble daemon.
Scala
1
star
34

wicket-commons

Java
1
star
35

county

Lightweight library for Scala for managing counters.
Scala
1
star