
У каждого человека с годами скапливается множество бумажных документов, в которых непросто разобраться или что-то найти. Эта проблема ещё более актуальна для организаций.
Опенсорсная программа Paperless-ngx позиционируется как оптимальное решение для создания цифрового архива. Со встроенной системой распознавание символов (OCR) и обучением на основе ранее отсканированных документов она создаёт хранилище с поиском, где можно быстро найти любой документ. Всем документам присваиваются теги, так что они могут присутствовать в разных тематических категориях, это удобнее распределения по папкам.
Paperless-ngx можно установить на домашний сервер и загружать документы через браузер с любого устройства.
Что оцифровывать? В принципе, для хранения могут пригодиться любые документы: договоры, выписки из банков, коммунальные счета, страховые договоры. По закону гражданин обязан хранить физические копии некоторых документов, таких как свидетельства о регистрации на автомобиль и квартиру, паспорт, удостоверения личности, некоторые финансовые документы, страховые договоры и др. Для всех них можно создать цифровые копии, как и для многих других документов, которые по закону хранить необязательно. Удобно, что в наше время многие документы изначально рассылаются в цифровом виде, что упрощает их добавление в базу. Для этого и создана программа Paperless-ngx
Первая версия называлась Paperless, проект появился на Github в 2016 году, версия 0.3.0 вышла в 2017 году, а версия 1.0 — в 2018-м.
Для дальнейшего развития проекта вскоре был создан форк Paperless-ng, а в 2021 году от него отпочковалась текущая и самая актуальная ветка Paperless-ngx, у которой первый релиз датируется 2022-м годом.

Основные функции
- Управление документами. Организация и управление цифровыми документами в интернете.
- Система тегов. Категоризация документов с помощью тегов для быстрого доступа.
- Интеграция OCR. Оптическое распознавание символов для извлечения текста из изображений и отсканированных документов.
- Автоматическая категоризация. Обучение на основе тегов и категорий, чтобы автоматически классифицировать будущие документы.
- Функциональность поиска. Мощные возможности поиска для быстрого нахождения документов.
- Поддержка нескольких пользователей. Можно сотрудничать с другими пользователями, создавая для них отдельные учётные записи.
- Экспорт данных. Экспорт документов для резервного копирования или миграции. Кроме того, они хранятся в аккуратной структуре папок, что позволяет в случае необходимости отказаться от Paperless.
Документы в архиве сортируются по типам документов (пользователь сам их устанавливает) и неограниченному количеству тегов («жена», «доктор», «автомобиль», «расходы», «дом» и т. д.). Изначально каждому документу присваивается тег «ToDo» как напоминание о необходимости будущей классификации.

Впоследствии можно вывести на экран все документы, помеченные тем или иным тегом, так что тег «ToDo» выполняет роль папки «Входящие»:

Программа также настраивается на сканирование папки «Входящие» в почтовом ящике, чтобы импортировать файлы оттуда. Есть продвинутые настройки для фильтрации определённых ключевых слов, по которым извлекать документы из почты:

Хотя есть функция автоматического импорта, но метаинформацию каждого документа можно отредактировать:

Установка
Инстанс Paperless-ngx проще всего установить на своём сервере в докер-контейнере. На самом деле потребуется три контейнера: база данных (обычно PostgreSQL), брокер Redis для выполнения запланированных задач и сам Paperless-ngx.
Для установки через Docker Compose в репозитории есть папка
/docker/compose
с файлами, которые сконфигурированы на скачивание и установку образа из GitHub Packages.Как вариант, можно самостоятельно сконфигурировать окружение Docker Compose с помощью скрипта установки:
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
Есть вариант обойтись без Docker, но тогда потребуется установить десяток пакетов в качестве зависимостей, включая Python 3 (написано, что последними протестированными версиями являются 3.10−3.12, а на последующих могут возникнуть проблемы из-за изменения зависимостей).
python3 python3-pip python3-dev imagemagick fonts-liberation gnupg libpq-dev default-libmysqlclient-dev pkg-config libmagic-dev libzbar0 poppler-utils
Все эти пакеты нужны для разных задач: конвертации PDF, генерации картинок для предпросмотра из текстовых файлов и т. д.
Следующие пакеты нужны для корректной работы OCRmyPDF:
unpaper ghostscript icc-profiles-free qpdf liblept5 libxml2 pngquant zlib1g tesseract-ocr
Подробнее о процедуре установки см. документации.
Демо-версия
Демо-версия Paperless-ngx доступна на сайте demo.paperless-ngx.com, логин и пароль
demo
. Загрузить свои документы можно в разделе Dashboard
, просто перетянув их мышкой в браузер или нажав кнопку Browse files
. Можно убедиться, что даже документы PDF отлично сканируются, распознаются и по ним доступен полнотекстовый поиск.