I was just playing with a few DMSs yesterday after work, including DEVONthink and paperless-ngx, because I urgently need to sort the documents for my income tax return better (= at all...), because otherwise I'll be shoving things into folders and mailboxes for months every year that I won't be able to remember.
I was only half-impressed.
Anyway: DEVONthink looks really great, but is simply oversized (and too expensive) for my needs. As a private person who doesn't earn any money with document management, it's certainly a nice gimmick, but no more. paperless-ngx seems to be the most sensible alternative, especially because it stores the files where you can find them again. I'm using it now on my QNAP NAS until it makes me too angry.
One big problem with paperless-ngx is that the installation is extremely complex and would not work properly on my OpenBSD server, for example. My NAS can run Docker, so it's easier. However, it is
extremely important to ensure that the versions interact correctly. With the following configuration, .eml files could also be read in (there were errors with another version of gotenberg):
YAML:
version: '3.6'
networks:
paperless-net:
external: false
services:
broker:
container_name: paperless-redis
image: docker.io/library/redis:7
networks:
- paperless-net
volumes:
- /share/paperless/redis:/redis
restart: unless-stopped
db:
container_name: paperless-db
image: docker.io/library/postgres:15
networks:
- paperless-net
restart: unless-stopped
volumes:
- /share/paperless/db:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: CHANGE_THIS!!!!!!!
webserver:
container_name: paperless
image: ghcr.io/paperless-ngx/paperless-ngx:latest
networks:
- paperless-net
restart: unless-stopped
depends_on:
- db
- broker
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- /share/paperless/data:/usr/src/paperless/data
- /share/paperless/media:/usr/src/paperless/media
- /share/paperless/Export:/usr/src/paperless/export
- /share/paperless/Import:/usr/src/paperless/consume
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_DBPASS: CHANGE_THIS!!!!!!!
USERMAP_UID: 1000
USERMAP_GID: 100
PAPERLESS_OCR_LANGUAGES: deu eng
PAPERLESS_TIME_ZONE: Europe/Berlin
PAPERLESS_OCR_LANGUAGE: deu
PAPERLESS_FILENAME_FORMAT: "{correspondent}/{created} {title}"
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
container_name: paperless-gotenberg
image: docker.io/gotenberg/gotenberg:7.10
restart: unless-stopped
networks:
- paperless-net
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
- "--libreoffice-start-timeout=30s"
- "--api-timeout=300s"
tika:
container_name: paperless-tika
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
networks:
- paperless-net
(Paths and passwords, of course, can be changed as you like.)