Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted

Paperless-ngxv3.3.0

Электронный архив на вашем сервере вместо папок со сканами: распознает русский текст, находит договоры по содержимому и дает сотрудникам доступ к выбранным документам.

Найдите договор по фразе из его текста, даже если файл называется Scan001.pdf. Paperless-ngx собирает сканы и PDF в общий архив: распознает текст, показывает документ рядом с результатом OCR и помогает разложить его по корреспондентам, датам и меткам. Отдельным сотрудникам можно дать доступ только к нужным документам. Русский интерфейс и распознавание русского текста включены сразу.

После заказа на Ubuntu 24.04 LTS автоматически запускаются приложение, база и очередь обработки. Администратор уже создан, Caddy выпускает сертификат Let's Encrypt для адреса сервера. В проверенном заказе от создания сервера до готовности прошло 6 минут 17 секунд; время скачивания образов зависит от сети. После письма о готовности можно входить и загружать документы.

Что внутри

Paperless-ngx 3.3.0 с локальным Tesseract/OCRmyPDF и поисковым индексом Tantivy
распознавание сканов, поиск по содержимому, просмотр PDF, метаданные и права доступа.
PostgreSQL 18.6
пользователи, карточки документов, метки и разрешения.
Valkey 9.1.2-alpine
очередь фоновых задач, чтобы загрузка и распознавание выполнялись за пределами страницы браузера.
Caddy 2.11.7-alpine
доступ по HTTPS и автоматическое продление сертификата Let's Encrypt.

Четыре контейнера работают через Docker Compose. Оригиналы, архивные PDF/A и миниатюры хранятся в отдельном томе; данные сохраняются при перезапуске приложения.

Безопасность

  • Закрытая регистрацияадминистратор создан установкой; посторонний не может зарегистрироваться по публичному адресу. Новых пользователей создает администратор.
  • Документы требуют входаанонимный запрос к списку документов получает отказ; доступ к отдельным документам назначается в приложении.
  • HTTPS с автопродлениемсоединение с браузером защищено сертификатом Let's Encrypt. Порт приложения 8000 доступен на сервере только через 127.0.0.1, снаружи работает Caddy.
  • fail2ban для SSHпосле пяти неудачных попыток за десять минут блокирует IP на час, ограничивая подбор пароля сервера.
  • Секреты создаются при установкепароль базы и секретный ключ приложения генерируются отдельно для сервера; файлы секретов и первоначального доступа имеют права 600, доступны только root.
  • ИИ выключен при первом запускеобычный OCR выполняется локально, ключа внешней модели в установке нет. Отправка документов провайдеру начинается только после вашей настройки ИИ.

Как войти

  1. Возьмите IP сервера из личного кабинета, замените точки на дефисы и добавьте .fatmetal.net. Например, IP 45.15.159.110 дает адрес https://45-15-159-110.fatmetal.net. Ваш адрес также будет в письме о готовности.

  2. Администратор уже создан: логин admin, первоначальный пароль - пароль этого сервера из личного кабинета, тот же, что для SSH. Публичная регистрация закрыта.

  3. Смените пароль приложения: «Настройки» → «Открыть настройки Django» → «Пользователи» → admin → изменение пароля. Файл /root/paperless-ngx-credentials.txt хранит первоначальный пароль и не обновляется после его смены в интерфейсе.

  4. На главной странице выберите файл скана в области загрузки. Дождитесь обработки, введите фразу из документа в строке поиска и откройте найденный результат. Проверьте распознанный текст и дату документа, затем назначьте корреспондента и метки.

Важно

Для отправки документов по электронной почте и восстановления пароля настройте свой SMTP в /etc/paperless-ngx-mp/params.env: SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD и SMTP_FROM. Для STARTTLS оставьте SMTP_USE_TLS=true, SMTP_USE_SSL=false и порт 587. Примените изменения командой sudo /opt/paperless-ngx-mp/install.sh. Архив, распознавание и поиск работают без почты.

ИИ - необязательное дополнение. Для внешней модели нужен ваш ключ выбранного OpenAI-совместимого провайдера; обращения идут через прокси Fatmetal, который входит в VPS и отдельно не оплачивается. В /etc/paperless-ngx-mp/params.env задайте OPENAI_API_BASE - базовый адрес API вашего провайдера - и запустите sudo /opt/paperless-ngx-mp/install.sh. В «Конфигурация» в разделе ИИ выберите OpenAI-совместимый backend для модели и эмбеддингов, укажите их имена и свои ключи, затем включите ИИ. Поля адресов модели и эмбеддингов в этом меню оставьте пустыми: заполненные адреса в Paperless-ngx 3.3.0 обходят настроенный прокси. Для уже загруженных документов перестройте индекс: cd /opt/paperless-ngx && sudo docker compose exec -T -u paperless webserver python manage.py document_llmindex rebuild --no-progress-bar. При включении ИИ содержимое документов передается вашему провайдеру.

Резервные копии сохраняйте отдельно от сервера. Для экспорта архива выполните cd /opt/paperless-ngx && sudo docker compose exec -T -u paperless webserver document_exporter /usr/src/paperless/export, затем перенесите каталог /opt/paperless-ngx/export на другой носитель. Также сохраните /opt/paperless-ngx/secrets.json и /etc/paperless-ngx-mp/params.env в защищенном месте. Инструкция восстановления есть в разборе в Базе знаний.

OCR и автоматически найденные даты требуют проверки человеком: в тестовом договоре пришлось вручную поправить дату. Для подписания и согласования документов нужна отдельная система; эта установка предназначена для хранения и поиска в архиве.

Лицензия

GNU GPL v3. Paperless-ngx можно использовать для личного и рабочего архива; лицензия не ограничивает число пользователей. Если включите внешнюю модель, ее использование регулируется условиями выбранного провайдера.

Свой домен

Автоматический адрес уже работает по HTTPS; собственный домен можно подключить позднее.

  1. Направьте A-запись своего домена на IPv4 этого сервера из личного кабинета. Если сервер не имеет IPv6, уберите AAAA-запись для этого имени.
  2. Дождитесь обновления DNS: getent ahostsv4 ваш.домен должен показывать IPv4 вашего сервера.
  3. По SSH откройте /etc/paperless-ngx-mp/params.env и задайте DOMAIN=ваш.домен без https:// и пути.
  4. Выполните sudo /opt/paperless-ngx-mp/install.sh и дождитесь строки «готово» в /var/log/paperless-ngx-mp.log. Установщик обновит адрес приложения и Caddy и выпустит сертификат Let's Encrypt.
  5. Откройте https://ваш.домен: логин admin, пароль - текущий пароль приложения. Если его еще не меняли - пароль сервера из личного кабинета. Документы сохраняются, смена домена пароль не сбрасывает.

Чтобы вернуться к автоматическому адресу, очистите DOMAIN в /etc/paperless-ngx-mp/params.env и повторите sudo /opt/paperless-ngx-mp/install.sh.

Требования

Тариф CPU4-RAM8-DISK100 подходит для личного или небольшого офисного архива с последовательным импортом документов. На стенде четыре контейнера занимали около 931 МиБ памяти в простое и до 1,22 ГиБ при распознавании; это память процессов без файлового кеша и операционной системы. Восьмистраничный русский скан обработался за 91 секунду, наблюденный пик CPU составил 2,41 ядра при двух задачах обработки по два потока. Четыре ядра дают запас под этот профиль. Если планируете одновременно обрабатывать большие пачки сканов и обслуживать активную работу сотрудников, выбирайте CPU6-RAM16-DISK100 с запасом по процессору и памяти.

Образы занимали около 4,1 ГиБ, сервер после установки и тестовых документов - 8,6 ГиБ вместе с ОС и swap. Архив растет: один восьмистраничный PDF добавил около 6,25 МиБ оригинала, PDF/A и миниатюры; тысяча похожих документов - ориентировочно 6,1 ГиБ без базы, индекса и копий. Если архив перестает помещаться на диске тарифа, закажите дополнительный блочный диск под том документов. Нативного хранения документов в S3 у этой версии нет.

Подробный разбор с замерами и восстановлением архива в Базе знаний →
Paperless-ngx990 ₽/месЗапустить →
Спросить инженера в TelegramМы на связи