Гид по технологиям

Установка Paperwork на Ubuntu 18.04

6 min read Самохостинг Обновлено 18 Nov 2025
Paperwork на Ubuntu 18.04 — установка и настройка
Paperwork на Ubuntu 18.04 — установка и настройка

TL;DR

Paperwork — бесплатный открытый менеджер документов для самохостинга. Эта инструкция шаг за шагом показывает, как развернуть Paperwork на Ubuntu 18.04: установить LAMP (Apache, MariaDB, PHP), Node.js, расширение mcrypt, Composer, выполнить миграции, собрать фронтенд и настроить виртуальный хост Apache. В конце — советы по отладке, безопасности и альтернативы.

  • Сервер с Ubuntu 18.04.
  • Пользователь с sudo (не root).
  • Статический IP, например 192.168.0.235 (локальная сеть) — настройте по необходимости.

Важно: Paperwork — старый проект, и его совместимость с новыми версиями PHP/Ubuntu ограничена. Если вы планируете продакшн, рассмотрите контейнеризацию или альтернативы.

Что такое Paperwork

Paperwork — это локальный менеджер сканированных документов и PDF с поддержкой OCR, меток, поиска и быстрых правок. Ключевые возможности: автоматическое определение ориентации страницы, OCR, теги/метки, подсказки ключевых слов и поиск.

Краткое определение: OCR — оптическое распознавание текста, которое превращает изображение в текст для поиска и индексации.


План установки (мини-методология)

  1. Подготовить сервер и пользователя.
  2. Установить LAMP (Apache, MariaDB, PHP 7.2 и зависимости).
  3. Установить Node.js и сборщики фронтенда.
  4. Установить PHP-расширение mcrypt через PECL.
  5. Создать базу данных и пользователя MariaDB.
  6. Скачать Paperwork, установить Composer-зависимости, выполнить миграции.
  7. Собрать фронтенд (npm, bower, gulp).
  8. Настроить права и виртуальный хост Apache.
  9. Открыть веб-интерфейс и завершить установку.

Установка LAMP

Обновите пакеты и установите Apache, MariaDB, PHP 7.2 и необходимые расширения. Выполните эти команды на сервере:

sudo apt-get update -y  
sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-cli php7.2-gd php7.2-mysql php7.2-curl php7.2-xml php7.2-mbstring php-pear php7.2-zip php-dev git wget libmcrypt-dev php7.2-gd unzip -y

Примечание: пакет php7.2 может быть недоступен в более новых релизах. Для Ubuntu 18.04 это стандартный вариант.

Установка Node.js

По умолчанию в репозитории Ubuntu 18.04 может не быть нужной версии Node.js. Добавьте репозиторий NodeSource и установите Node.js 10:

curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -

sudo apt-get install nodejs -y

Установка PHP mcrypt

Paperwork требует mcrypt (устаревшее расширение). Установим через PECL:

sudo pecl channel-update pecl.php.net  
sudo pecl install mcrypt-1.0.1

При запросе подтверждения просто нажмите Enter.

Добавьте расширение mcrypt в конфигурацию PHP CLI и Apache:

sudo sed -i.bak '927iextension=mcrypt.so' /etc/php/7.2/cli/php.ini

sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"

sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"

Проверьте, что mcrypt загружен:

sudo php -i | grep "mcrypt"

Ожидаемый вывод:

mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

Важно: сообщения вида “Module ‘mcrypt’ already loaded” при запуске PHP можно игнорировать, но это указывает на то, что расширение подключено более одного раза. Убедитесь, что в php.ini и conf.d не дублируются записи.

Перезапустите Apache и MariaDB и включите автозапуск:

sudo systemctl restart apache2  
sudo systemctl restart mariadb  
sudo systemctl enable apache2  
sudo systemctl enable mariadb

Конфигурация базы данных

Сначала запустите скрипт безопасности MariaDB:

sudo mysql_secure_installation

Ответы (пример):

Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Затем войдите в MariaDB и создайте базу данных и пользователя для Paperwork:

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE paperwork DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  
MariaDB [(none)]> GRANT ALL PRIVILEGES ON paperwork.* TO 'paperwork'@'localhost' IDENTIFIED BY 'paperwork' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT

Замените пароль и имя пользователя на более безопасные значения в реальной среде.


Скачивание и установка Paperwork

Скачайте исходники в /var/www/html:

cd /var/www/html  
git clone -b 1 https://github.com/twostairs/paperwork.git

Временно подавите сообщение об устаревшем вызове mcrypt в конфигурации приложения:

cd paperwork/frontend/  
sudo sed -i.bak '3ierror_reporting(E_ALL ^ E_DEPRECATED);' app/config/app.php

Установка Composer и PHP-зависимостей

Установите Composer и зависимости проекта:

curl -sS https://getcomposer.org/installer | php  
sudo mv composer.phar /usr/local/bin/composer

sudo composer install

Запуск миграций для заполнения схемы базы данных:

sudo php artisan migrate

Пример частичного вывода:

PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command? y
Migration table created successfully.
Migrated: 2014_07_22_194050_initialize
... (список миграций)

Подтвердите выполнение миграций вводом “y”.

Установка npm, bower и сборка фронтенда

Установите глобально gulp и bower, затем локальные зависимости и соберите ресурсы:

sudo npm install -g gulp bower  
sudo npm install

sudo bower install --allow-root  
sudo gulp

Внимание: при установке npm/bower могут появиться предупреждения. Обычно их можно игнорировать, если сборка проходит успешно.

Права доступа

Дайте правильные права каталогу приложения:

sudo chown www-data:www-data -R /var/www/html/paperwork  
sudo chmod -R 755 /var/www/html/paperwork

Если вы используете SELinux (не типично для Ubuntu), дополнительно настройте контексты.


Конфигурация Apache для Paperwork

Создайте виртуальный хост Apache:

sudo nano /etc/apache2/sites-available/paperwork.conf

Добавьте в файл следующие строки (сохраните и закройте):


     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/html/paperwork/frontend/public
     ServerName example.com

     
          Options Indexes FollowSymlinks
          AllowOverride All
          Require all granted
     

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all


     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

Включите сайт и mod_rewrite, затем перезапустите Apache:

sudo a2ensite paperwork
sudo a2enmod rewrite  
sudo systemctl restart apache2

Замените ServerName и ServerAdmin на реальные значения (например, IP или домен).


Доступ к веб-интерфейсу

Откройте в браузере http://example.com (замените на ваш домен/IP). Вы увидите страницу приветствия Paperwork.

Paperwork installer

На странице установщика нажмите “Next” и следуйте шагам. Важные экраны:

Dependency check

Проверьте наличие зависимостей и продолжите.

Введите параметры базы данных (имя, логин, пароль, порт).

Set database details

Настройте приложение и создайте первую учётную запись администратора.

Customize paperwork

Create first account

После завершения установки вы попадёте на страницу входа:

Sign in to Paperwork

И далее — на панель управления:

Paperwork Dashboard


Отладка и распространённые проблемы (когда это не работает)

  • Ошибка “Application In Production” при миграциях: убедитесь, что вы действительно запускаете миграции в нужной среде. Подтвердите вводом “y”.
  • Ошибки с mcrypt: проверьте, что файл mcrypt.so существует по пути /usr/lib/php/20170718/mcrypt.so и что запись extension не продублирована в нескольких ini-файлах.
  • 500 Internal Server Error при обращении к фронтенду: проверьте права (www-data) и логи Apache (/var/log/apache2/error.log).
  • 404 при загрузке ресурсов фронтенда: убедитесь, что gulp успешно собрал ассеты и что DocumentRoot указывает на frontend/public.
  • Проблемы с Bower: если bower не устанавливает пакеты, попробуйте запуск без –allow-root под обычным пользователем разработчика и затем поменяйте права.

Полезные команды для диагностики:

sudo tail -n 200 /var/log/apache2/error.log
sudo journalctl -u apache2 -e
sudo php -v
mysql -u paperwork -p -e "SHOW DATABASES;"

Безопасность и соответствие (GDPR и прочее)

  • Используйте HTTPS: настройте Let’s Encrypt или другой сертификат и включите перенаправление с HTTP на HTTPS.
  • Ограничьте доступ к административной панели по IP или двуфакторной аутентификации (если возможно).
  • Хранение данных: при обработке персональных данных соблюдайте правила GDPR — документируйте, где хранятся данные и кто имеет доступ.
  • Резервное копирование: настройте регулярные бэкапы базы данных и каталога /var/www/html/paperwork.

Важно: Paperwork хранит документы локально — это снижает риски облачных сервисов, но повышает ответственность администратора за безопасность сервера.


Альтернативные подходы и варианты

  • Контейнеризация: создайте Docker-контейнеры для PHP, базы и фронтенда — это облегчает деплой на современных системах.
  • Использовать современную альтернативу: если Paperwork не критичен, рассмотрите интеграцию с Nextcloud + только-плагином для OCR/сканов.
  • Обновление PHP: если вы обязаны запускать Paperwork на новых ОС, используйте контейнер с Ubuntu 18.04 и PHP 7.2 внутри, чтобы сохранить совместимость.

Совместимость и миграция

  • Paperwork ориентирован на более старые стеки (PHP 7.2). На Ubuntu 20.04+ PHP 7.2 может отсутствовать, поэтому рекомендуем либо контейнер, либо виртуальную машину с Ubuntu 18.04.
  • При миграции данных в другую систему экспортируйте документы и метаданные (если Paperwork не предоставляет прямой экспорт, копируйте папки storage и дамп базы данных).

Роль‑ориентированные чек-листы

Администратор сервера:

  • Установить систему и обновления.
  • Настроить сеть и DNS.
  • Обеспечить HTTPS и резервное копирование.

Разработчик/DevOps:

  • Проверить зависимости PHP/Node.
  • Сконфигурировать CI для сборки фронта (gulp).
  • Описать Dockerfile/Compose (при необходимости).

Оператор/Пользователь:

  • Создать учётную запись администратора в установщике.
  • Настроить теги/политику хранения документов.

Критерии приёмки

  • Веб-интерфейс доступен по HTTPS и отвечает кодом 200.
  • Вход под администратором работает, можно создать документ и выполнить поиск по тексту (OCR).
  • Регулярные бэкапы базы и файлов настроены.

Короткий словарь

  • LAMP: стек Linux, Apache, MariaDB/MySQL, PHP.
  • Composer: менеджер зависимостей для PHP.
  • Gulp/Bower: инструменты сборки фронтенда.
  • OCR: оптическое распознавание текста.

Быстрое дерево принятия решений

flowchart TD
    A[Нужен локальный менеджер документов?] -->|Да| B{Поддержка PHP 7.2 доступна?}
    B -->|Да| C[Установить Paperwork на Ubuntu 18.04]
    B -->|Нет| D[Рассмотреть Docker с Ubuntu 18.04 или альтернативу]
    A -->|Нет| E[Использовать облачные сервисы или Nextcloud]

Ссылки


Резюме

Paperwork удобен для локального управления отсканированными документами, но проект требует устаревшего стека (PHP 7.2 и mcrypt). Вы можете развернуть его на Ubuntu 18.04 по шагам, описанным выше, либо контейнеризировать для будущей переносимости. Обязательно настройте HTTPS, резервное копирование и проверяйте логи при ошибках.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как мониторить VPN на Windows 10
Сеть

Как мониторить VPN на Windows 10

Shazam на Mac: как распознавать музыку
Руководство

Shazam на Mac: как распознавать музыку

Topgrade — обновление всего в Linux
Linux

Topgrade — обновление всего в Linux

Ошибка 740 при добавлении принтера в Windows 11 — решение
Windows

Ошибка 740 при добавлении принтера в Windows 11 — решение

Как изменить фон профиля Steam
How-to

Как изменить фон профиля Steam

Как делать хорошие туристические фотографии
Фотография

Как делать хорошие туристические фотографии