Как установить Stirling-PDF: мощный PDF‑редактор на сервер

Установка и настройка Stirling-PDF — бесплатного open-source редактора PDF. Пошаговое руководство по развёртыванию на собственном сервере.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор25 апреля 2026 г.

Подготовка сервера

Обновление системы и установка необходимых пакетов

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl git

Установка Docker

Установка Docker и добавление пользователя в группу docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ${USER}

Установка Docker Compose

Установка Docker Compose плагина

sudo apt install -y docker-compose-plugin

Настройка Stirling-PDF

Создание директории и файла docker-compose.yml

mkdir stirling-pdf
cd stirling-pdf
nano docker-compose.yml

Конфигурация docker-compose.yml

Базовая конфигурация контейнера с аутентификацией

version: '3.8'

services:
  stirling-pdf:
    container_name: stirling-pdf
    image: frooodle/s-pdf:latest
    restart: always
    ports:
      - "8080:8080"
    environment:
      - DOCKER_ENABLE_SECURITY=true
      - SECURITY_ENABLE_LOGIN=true
      - SECURITY_USER_NAME=ваше_имя_пользователя
      - SECURITY_USER_PASSWORD=ваш_пароль
      - TIMEZONE=Europe/Moscow
    volumes:
      - ./logs:/logs
    networks:
      - stirling-pdf-network

networks:
  stirling-pdf-network:
    driver: bridge

Запуск контейнера

Запуск Stirling-PDF в фоновом режиме

docker-compose up -d

Настройка SSL/TLS

Настройка обратного прокси Nginx и SSL через Let's Encrypt

sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/stirling-pdf

# Конфиг Nginx:
server {
    listen 80;
    server_name ваше_доменное_имя;
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

sudo ln -s /etc/nginx/sites-available/stirling-pdf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

# Установка Certbot:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d ваше_доменное_имя

Настройка автоматического обновления SSL

Настройка cron для автоматического обновления сертификатов

sudo crontab -e
# Добавить строку:
45 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

Обновление Stirling-PDF

Процесс обновления до последней версии

cd stirling-pdf
docker-compose down
docker-compose pull
docker-compose up -d

Резервное копирование

Создание скрипта и настройка автоматического резервного копирования

# Скрипт ~/backup-stirling-pdf.sh:
#!/bin/bash
BACKUP_DIR=~/backups/stirling-pdf
STIRLING_DIR=~/stirling-pdf
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="stirling-pdf_$TIMESTAMP.tar.gz"

tar -czf $BACKUP_DIR/$BACKUP_FILE \
  -C $STIRLING_DIR \
  --exclude=logs/*.log \
  --exclude=cache \
  --exclude=temp \
  .

find $BACKUP_DIR -name "stirling-pdf_*.tar.gz" -mtime +30 -delete
echo "Бэкап создан: $BACKUP_DIR/$BACKUP_FILE"

# Настройка cron:
crontab -e
# Добавить строку:
0 2 * * * ~/backup-stirling-pdf.sh

Руководство: Как самостоятельно разместить Stirling-PDF - №1 приложение на GitHub для редактирования PDF файлов на любом устройстве в любом месте

Введение

Stirling-PDF — это мощное приложение с открытым исходным кодом для работы с PDF файлами. На сегодняшний день это самый популярный проект на GitHub в своей категории, предлагающий широкий спектр функций включая объединение, разделение, преобразование, сжатие и защиту PDF документов.

Размещая это приложение на собственном сервере, вы получаете полный контроль над вашими документами, не зависите от сторонних сервисов и можете работать с файлами в безопасной среде. Это особенно важно для тех, кто обрабатывает конфиденциальные документы или просто хочет иметь свой собственный центр для работы с PDF.

Требования

Для успешного развертывания Stirling-PDF вам потребуется:

  • Сервер с Linux (рекомендуется Ubuntu 20.04 или новее)
  • Не менее 2 ГБ оперативной памяти
  • Не менее 10 ГБ свободного места на диске
  • Docker и Docker Compose
  • Доменное имя (не обязательно, но рекомендуется для удобного доступа)

Установка

1. Подготовка сервера

Сначала обновим систему и установим необходимые пакеты:

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl git

2. Установка Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ${USER}

После добавления пользователя в группу docker выйдите из системы и войдите снова, чтобы изменения вступили в силу.

3. Установка Docker Compose

sudo apt install -y docker-compose-plugin

4. Скачивание и настройка Stirling-PDF

Создадим директорию для проекта:

mkdir stirling-pdf
cd stirling-pdf

Создадим файл docker-compose.yml:

nano docker-compose.yml

Добавим в файл следующее содержимое:

version: '3.8'

services:
  stirling-pdf:
    container_name: stirling-pdf
    image: frooodle/s-pdf:latest
    restart: always
    ports:
      - "8080:8080"
    environment:
      - DOCKER_ENABLE_SECURITY=true
      - SECURITY_ENABLE_LOGIN=true
      - SECURITY_USER_NAME=ваше_имя_пользователя
      - SECURITY_USER_PASSWORD=ваш_пароль
      - TIMEZONE=Europe/Moscow
    volumes:
      - ./logs:/logs
    networks:
      - stirling-pdf-network

networks:
  stirling-pdf-network:
    driver: bridge

Сохраняем файл (Ctrl+O, Enter, Ctrl+X).

5. Запуск контейнера

Запускаем Stirling-PDF:

docker-compose up -d

Подождем несколько минут, пока контейнер будет загружаться.

Настройка

После запуска приложения можно получить доступ к нему через веб-браузер по адресу:

http://ваш_IP_адрес:8080

Если используете доменное имя, настроенное для вашего сервера, доступ будет через:

http://ваше_доменное_имя:8080

Настройка безопасности

По умолчанию в файле docker-compose.yml включена аутентификация. Можно изменить имя пользователя и пароль, отредактировав соответствующие переменные в файле docker-compose.yml.

Для изменения порта редактируем строку ports в файле docker-compose.yml, заменив 8080 на нужный порт.

Настройка SSL/TLS (рекомендуется)

Для безопасного доступа через HTTPS настроим обратный прокси с использованием Nginx.

Сначала установим Nginx:

sudo apt install -y nginx

Создадим конфигурационный файл для нашего домена:

sudo nano /etc/nginx/sites-available/stirling-pdf

Добавим следующее содержимое, заменив ваше_доменное_имя на ваше доменное имя:

server {
    listen 80;
    server_name ваше_доменное_имя;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Создадим символическую ссылку для активации сайта:

sudo ln -s /etc/nginx/sites-available/stirling-pdf /etc/nginx/sites-enabled/

Проверим конфигурацию и перезапустим Nginx:

sudo nginx -t
sudo systemctl restart nginx

Теперь настроим SSL с помощью Let's Encrypt:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d ваше_доменное_имя

Следуем инструкциям на экране для завершения настройки SSL.

Важно: Сертификаты Let's Encrypt действуют 90 дней. Чтобы они автоматически обновлялись, установим и настроим cron-задачу:

sudo crontab -e

Добавим следующую строку для автоматического обновления сертификатов каждый день в 3:45 утра:

45 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

Сохраняем файл и выходим.

Использование

После успешной установки и настройки можно использовать Stirling-PDF для работы с PDF файлами:

  1. Открываем браузер и переходим на адрес нашего Stirling-PDF сервера.
  2. Входим с использованием имени пользователя и пароля, заданных при установке.
  3. Выбираем нужную операцию из списка на главной странице.
  4. Загружаем PDF файл(ы), выполняем необходимые операции.
  5. Скачиваем результат.

Основные возможности Stirling-PDF:

  • Объединение нескольких PDF в один
  • Разделение PDF на отдельные страницы
  • Сжатие PDF уменьшение размера файла
  • Преобразование PDF в другие форматы (Word, Excel, PowerPoint и др.)
  • Преобразование других форматов в PDF
  • Извлечение текста и изображений из PDF
  • Добавление или удаление страниц
  • Поворот страниц
  • Добавление водяных знаков
  • Защита паролем и удаление паролей
  • Заполнение форм PDF
  • OCR (распознавание текста)
  • Подпись PDF
  • И многие другие функции

Работа с большими файлами

Stirling-PDF может обрабатывать большие PDF файлы, но для этого необходимо правильно настроить окружение:

Настройка ресурсов Docker

Для обработки больших файлов увеличим лимиты памяти и процессорного времени для контейнера. Отредактируем файл docker-compose.yml:

nano docker-compose.yml

Добавим параметры для ограничения ресурсов:

services:
  stirling-pdf:
    container_name: stirling-pdf
    image: frooodle/s-pdf:latest
    restart: always
    ports:
      - "8080:8080"
    environment:
      - DOCKER_ENABLE_SECURITY=true
      - SECURITY_ENABLE_LOGIN=true
      - SECURITY_USER_NAME=ваше_имя_пользователя
      - SECURITY_USER_PASSWORD=ваш_пароль
      - TIMEZONE=Europe/Moscow
      - MAX_FILE_SIZE=100MB  # Максимальный размер файла
      - JVM_MAX_MEMORY=2G    # Максимальная память для Java
    deploy:
      resources:
        limits:
          memory: 4G
        reservations:
          memory: 2G
    volumes:
      - ./logs:/logs
    networks:
      - stirling-pdf-network

Настройка swap-памяти

Если у вас ограниченная оперативная память, можно настроить swap-файл:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Чтобы swap-файл включался автоматически после перезагрузки, добавим его в /etc/fstab:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Резервное копирование

Регулярное резервное копирование данных — важная часть обслуживания любого сервера. Для резервного копирования Stirling-PDF нам нужно сохранять настройки, логи и, при необходимости, загруженные файлы.

Создание скрипта резервного копирования

Создадим директорию для бэкапов:

mkdir -p ~/backups/stirling-pdf

Создадим скрипт резервного копирования:

nano ~/backup-stirling-pdf.sh

Добавим следующий код:

#!/bin/bash

# Директории
BACKUP_DIR=~/backups/stirling-pdf
STIRLING_DIR=~/stirling-pdf
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="stirling-pdf_$TIMESTAMP.tar.gz"

# Создаем бэкап
tar -czf $BACKUP_DIR/$BACKUP_FILE \
  -C $STIRLING_DIR \
  --exclude=logs/*.log \
  --exclude=cache \
  --exclude=temp \
  .

# Удаляем бэкапы старше 30 дней
find $BACKUP_DIR -name "stirling-pdf_*.tar.gz" -mtime +30 -delete

echo "Бэкап создан: $BACKUP_DIR/$BACKUP_FILE"

Сделаем скрипт исполняемым:

chmod +x ~/backup-stirling-pdf.sh

Настройка автоматического резервного копирования

Добавим задачу в cron для автоматического резервного копирования каждый день в 2:00 ночи:

crontab -e

Добавим следующую строку:

0 2 * * * ~/backup-stirling-pdf.sh

Сохраняем файл и выходим.

Мониторинг

Для отслеживания работы сервера и Stirling-PDF рекомендуется настроить мониторинг.

Установка и настройка Prometheus

Сначала установим Prometheus:

sudo apt update
sudo apt install -y prometheus

Отредактируем конфигурационный файл Prometheus:

sudo nano /etc/prometheus/prometheus.yml

Добавим конфигурацию для сбора метрик с Stirling-PDF:

scrape_configs:
  - job_name: 'stirling-pdf'
    static_configs:
      - targets: ['localhost:8080']
    metrics_path: /metrics
    scrape_interval: 15s

Перезапустим Prometheus:

sudo systemctl restart prometheus

Установка и настройка Grafana

Установим Grafana:

sudo apt install -y grafana

Перезапустим Grafana:

sudo systemctl restart grafana-server

Откроем Grafana в браузере по адресу http://ваш_IP_адрес:3000 и авторизуемся с логином admin и паролем admin.

Добавим источник данных Prometheus:

  1. Перейдем в Configuration → Data Sources → Add data source.
  2. Выберем Prometheus.
  3. В поле URL укажем http://localhost:9090.
  4. Нажмем "Save & Test".

Создадим дашборд для мониторинга Stirling-PDF:

  1. Перейдем в Dashboards → New Dashboard.
  2. Добавим необходимые графики и метрики.

Мониторинг ресурсов Docker

Для мониторинга ресурсов Docker установим ctop:

sudo apt install -y curl git
curl -L https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -o /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctop

Запустим ctop для мониторинга контейнеров:

ctop

Обновление

Для обновления Stirling-PDF выполните следующие шаги:

  1. Переходим в директорию проекта:
cd stirling-pdf
  1. Останавливаем текущий контейнер:
docker-compose down
  1. Обновляем образ Docker:
docker-compose pull
  1. Запускаем контейнер с новым образом:
docker-compose up -d

Stirling-PDF будет автоматически обновлен до последней версии.

Устранение неполадок

Проблемы с запуском контейнера

Если контейнер не запускается, проверьте логи:

docker logs stirling-pdf

Общие причины проблем:

  • Недостаточно ресурсов (увеличьте выделенную память в docker-compose.yml)
  • Конфликт портов (измените порт в конфигурации)
  • Некорректные параметры окружения (проверьте переменные в docker-compose.yml)

Проблемы с памятью

Если приложение работает медленно или вылетает при обработке больших файлов:

  1. Увеличьте лимит памяти в docker-compose.yml:

    environment:
      - JVM_MAX_MEMORY=4G
    
  2. Настройте swap-файл, как описано выше.

  3. Ограничьте максимальный размер файла:

    environment:
      - MAX_FILE_SIZE=50MB
    

Проблемы с SSL

Если HTTPS не работает:

  1. Проверьте конфигурацию Nginx:

    sudo nginx -t
    
  2. Проверьте статус certbot:

    sudo certbot certificates
    
  3. Проверьте корректность путей в конфигурации Nginx.

Проблемы с доступом

Если нет доступа к приложению:

  1. Проверьте, что порт открыт:

    sudo ufw status
    
  2. Проверьте работу контейнера:

    docker ps
    
  3. Проверьте логи брандмауэра:

    sudo tail -f /var/log/ufw.log
    

Заключение

Размещение Stirling-PDF на собственном сервере предоставляет надежное решение для работы с PDF файлами с полным контролем над вашими данными. Благодаря Docker установка и обслуживание приложения становятся простыми и не требуют глубоких технических знаний.

Stirling-PDF регулярно обновляется и пополняется новыми функциями, что делает его отличным выбором как для личного, так и для небольшого офисного использования.

Теперь вы можете работать с PDF файлами в любом месте и с любого устройства, имеющего доступ к вашему серверу, не беспокоясь о безопасности и конфиденциальности ваших данных.

Поделиться:TelegramX / TwitterVK