Stirling-PDF – бесплатное и открытое веб-приложение, позволяющее работать с PDF-документами прямо в браузере без необходимости устанавливать специальное ПО. Приложение работает как самостоятельный веб-сервер и может быть развёрнуто локально или на удалённом виртуальном сервере. Использование Stirling-PDF особенно удобно для корпоративных или локальных сетей, где важна приватность.
Функциональность у Stirling-PDF обширная: можно объединять, разделять, сжимать PDF-файлы, удалять их и переупорядочивать страницы, накладывать водяные знаки, поворачивать, обрезать и даже редактировать метаданные. Stirling-PDF умеет распознавать текст с помощью OCR, извлекать изображения или страницы, конвертировать изображения в PDF и наоборот. В Stirling-PDF есть поддержка работы с паролями: установка, удаление или проверка. Для продвинутых пользователей доступны различные настройки, включая возможность ограничить размер загружаемых файлов, язык интерфейса, а также логирование и мониторинг активности.
Stirling-PDF часто выбирают те, кто работает в условиях, когда нельзя использовать сервисы типа iLovePDF, SmallPDF. В статье разберём, как установить Stirling-PDF на виртуальный выделенный сервер, работающий под управлением Ubuntu 24.04.
Как установить Stirling-PDF на Ubuntu
Во-первых, перед установкой нового софта обновите списки пакетов Ubuntu:
$ sudo apt update
Затем установите зависимости, требуемые для дальнейшей работы:
$ sudo apt install git automake autoconf libtool libleptonica-dev pkg-config zlib1g-dev make g++ openjdk-21-jdk python3 python3-pip
Далее в домашнем каталоге создайте директорию для нового проекта и перейдите в неё:
$ mkdir ~/.git
$ cd ~/.git
В Stirling-PDF для определённых функций распознавания текста используется одна из реализаций энкодера JBIG2 – jbig2enc
. Для его установки в текущую директорию склонируйте его репозиторий с GitHub:
$ git clone https://github.com/agl/jbig2enc.git
Перейдите в каталог, который появился в результате работы предыдущей команды:
$ cd jbig2enc
Здесь запустите скрипт autogen.sh
для автоматической генерации конфигурационных файлов, необходимых для сборки проекта:
$ ./autogen.sh
Затем запустите скрипт, который настроит сборку под вашу систему:
$ ./configure
Далее выполните команду для запуска сборки проекта на основе специально определённых инструкций:
$ make
После чего запустите непосредственно установку в систему энкодера jbig2en
:
$ sudo make install
Следующей командой установите отдельные компоненты офисного пакета LibreOffice:
$ sudo apt install libreoffice-writer libreoffice-calc libreoffice-impress
Затем установите движок для оптического распознавания текста – Tesseract, а также дополнительный языковой пакет для него, добавляющий поддержку кириллицы:
$ sudo apt install tesseract-ocr tesseract-ocr-rus
Далее при помощи утилиты для установки Python-пакетов запустите инсталляцию Python-библиотек и инструментов для:
- работы с LibreOffice через Python –
uno
,unoserver
; - обработки изображений без GUI –
opencv-python-headless
; - генерации PDF из HTML –
WeasyPrint
; - сжатия PNG-изображений –
pngquant
.
$ pip3 install uno opencv-python-headless unoserver pngquant WeasyPrint --break-system-packages
После чего перейдите в свой домашний каталог и загрузите в него исполняемый Java‑архив, содержащий приложение Stirling-PDF:
$ cd ~
$ wget https://files.stirlingpdf.com/Stirling-PDF.jar
Создайте каталог для Stirling-PDF:
$ sudo mkdir /opt/Stirling-PDF/
Затем скопируйте загруженный архив в созданный каталог:
$ sudo cp Stirling-PDF.jar /opt/Stirling-PDF/
Веб-интерфейс Stirling-PDF по умолчанию доступен по TCP-порту 8080. Поэтому, чтобы получить доступ к приложению, откройте порт 8080 в брандмауэре UFW:
$ sudo ufw allow 8080
Затем перейдите в /opt/Stirling-PDF/
:
$ cd /opt/Stirling-PDF/
И запустите приложение, чтобы проверить его работоспособность:
$ sudo java -jar Stirling-PDF.jar
Для того, чтобы убедиться в работоспособности приложения, откройте браузер и перейдите на http://X.X.X.X:8080
, где вместо X.X.X.X
укажите IP-адрес вашего сервера. В браузере должна открыться стартовая страница веб-интерфейса Stirling-PDF.

Чтобы завершить работу приложения, вернитесь в командную строку и нажмите Ctrl C
.
Настройка Stirling-PDF для работы в качестве системного сервиса
Для того, чтобы каждый раз не запускать приложение вручную и обеспечить его функционирование на постоянной основе и в фоновом режиме, необходимо настроить его работу в качестве системной службы. Во-первых, добавьте в систему пользователя, от имени которого будет запускаться Stirling-PDF с именем, например, stirling-user
.
$ sudo useradd --system --no-create-home --shell /usr/sbin/nologin stirling-user
В данном случае опция --system
нужна для того, чтобы была создана именно системная учётная запись, предназначенная для запуска службы, а не для использования в качестве реального пользователя. Опция --no-create-home
отвечает за то, что для пользователя stirling-user
не будет создаваться домашний каталог. Параметр --shell /usr/sbin/nologin
, в свою очередь, позволяет установить оболочку /usr/sbin/nologin
, которая блокирует интерактивный вход в систему.
Далее измените владельца папки /opt/Stirling-PDF/
и всего её содержимого на пользователя stirling-user
и группу stirling-user
:
$ sudo chown -R stirling-user:stirling-user /opt/Stirling-PDF/
Затем создайте unit-файл для новой службы:
$ sudo nano /etc/systemd/system/stirlingpdf.service
Скопируйте в него следующее содержимое:
[Unit]
Description=Stirling-PDF service
After=syslog.target network.target
[Service]
SuccessExitStatus=143
User=stirling-user
Group=stirling-user
Type=simple
WorkingDirectory=/opt/Stirling-PDF
ExecStart=/usr/bin/java -jar Stirling-PDF.jar
ExecStop=/bin/kill -15 $MAINPID
[Install]
WantedBy=multi-user.target
Закройте файл, сохранив внесённые изменения, и обновите конфигурацию сервисов в памяти systemd
:
$ sudo systemctl daemon-reload
После чего запустите созданную службу:
$ sudo systemctl start stirlingpdf
Установите её в автозагрузку;
$ sudo systemctl enable stirlingpdf
Для того, чтобы убедиться в успешном запуске сервиса, выведите на экран его текущее состояние:
$ systemctl status stirlingpdf
Вывод команды не должен содержать каких-либо ошибочных сообщений:

Если служба работает без ошибок, откройте браузер и перейдите на главную страницу сервиса по адресу http://X.X.X.X:8080
, где замените X.X.X.X
на IP-адрес вашего виртуального сервера.
