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:
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.
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 the provided
consumedir.sh script as a
service (there is a docker container to get started) that watches this
directory and uploads all incoming files to Docspell. The script can
watch directories recursively and can skip files already uploaded, so
you can organize the files as you want in there (rename, move etc).
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.
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.
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, so there is a small script that accepts one or more files and uploads them to a configured Docspell url. It is possible to let the script delete all successfully uploaded files.
The script can also be used to only check if a file already exists in your account.
For Firefox, there is a browser extension that creates a context-menu entry if you right-click on a link. It then downloads the file to your disk and uploads it to Docspell.