Documents → Docspell🔗

One of the main goals is to stow documents away quickly.

Docspell makes no assumptions about where your documents are. It offers just one HTTP endpoint that accepts files. (Well, technically you create them in the webapp, and you can create many of them.) This endpoint is designed to work conveniently with tools like curl and it should be easy to use from other languages, too.

So the idea is to have most flexibility – that is, it is up to you how documents arrive. Of course, there is something prepared:

Upload in Webapp🔗

This is the simplest way, but also the least flexible. You can just login and go to the upload page to submit files.

This requires to login at the webapp. Since this is complicated from other applications, you can create custom hard-to-guess endpoints to use with the following options.

Scanners / Watch Directories🔗

If you have a (document) scanner (or think about getting one), it can usually be configured to place scanned documents as image or PDF files on your NAS. On your NAS, run dsc watch as a service (there is a docker container to get started) that watches this directory and uploads all incoming files to Docspell. The dsc tool can watch directories recursively and can skip files already uploaded, so you can organize the files as you want in there (rename, move etc).

This can be used multiple times on different machines, if desired.

The scanner should support 300dpi for better results. Docspell converts the files into PDF adding a text layer of image-only files.

Check out scanadf2docspell if your scanner is connected to your computer. This can create nice pdf files from scanners with ADF, applying corrections and sending them to docspell.


There is an android client provided that lets you upload files from your android devices. The idea is to use a separate app, like OpenNoteScanner, to "scan" documents using your phone/tablet and then upload it to Docspell. For the upload part, you can use the provided app. It hooks into the Share-With menu and uploads the file to Docspell.

This is especially useful to quickly upload small things like shopping receipts.

Poll E-Mails🔗

Your mailbox can be polled periodically to import mails. For example, create a dedicated folder in your e-mail client and move mails in there that you want to push to Docspell. You can then define a recurring job, that looks into this folders and imports the mails.

E-Mail Server🔗

This is a little more involved, but can be quite nice. A SMTP server can be setup that simply uploads incoming mails to Docspell (using curl), instead of storing the mails on disk. This requires some knowledge to setup such a server and it makes sense to own a domain. Or it can be used internally to connect devices like scanners that offer a scan-to-mail option. The SMTP server would accept mails to [your-username]@[your-domain] and resolves the [your-username] part in Docspell to upload the files to the correct account.

There is a docker container prepared to get started. Click below to read more.


I like to use the command line, and so there is a cli that can be used for some tasks, for example uploading files. Below is a quick demo, it supports many more options, see the link below for details.