Paperless-ngx

Contents

Overview

Projectpage: https://docs.paperless-ngx.com.

This article descibes our paperless-ngx setup using their docker setup with PostgreSQL as the database backend.

Installation & Configuration

While following the setup page of the project and choosing PostgreSQL as the database backend adjust docker-compose.env as needed, e.g.

PAPERLESS_APP_TITLE=my-paperless-instance

# Run paperless as root (in the container) aka. the user running podman (outside the container).
# This will ensure the volume folder are owned by the user starting the container.
USERMAP_UID=0
USERMAP_GID=0

# This is required if you will be exposing Paperless-ngx on a public domain
# (if doing so please consider security measures such as reverse proxy)
PAPERLESS_URL=https://paperless.example.com

# Adjust this key if you plan to make paperless available publicly. It should
# be a very long sequence of random characters. You don't need to remember it.
PAPERLESS_SECRET_KEY=my-super-secret-pass

# Use this variable to set a timezone for the Paperless Docker containers. Defaults to UTC.
PAPERLESS_TIME_ZONE=Europe/Berlin

# The default language to use for OCR. Set this to the language most of your
# documents are written in.
PAPERLESS_OCR_LANGUAGE=deu

# As we use podman to check for new versions, we disable the update check in paperless.
PAPERLESS_ENABLE_UPDATE_CHECK=false

# File name handling
# By default, paperless stores your documents using the identifier which it has assigned to each document. 
# To let paperless use a folder structure, configure something like the following,
# compare https://docs.paperless-ngx.com/advanced_usage/#file-name-handling
PAPERLESS_FILENAME_FORMAT={{ created_year }}/{{ correspondent }}/{{ title }}

# Une more than one task to parse documents
PAPERLESS_TASK_WORKERS=4

# Consume documents in subfolders
PAPERLESS_CONSUMER_RECURSIVE=true

Useful configuration

Here are some setup options that might be useful:

Tips & Tricks

Sanity checker

Paperless-ngx has a build-in sanity checker that inspects your document collection for issues:

document_sanity_checker