VPSРейтинг
Self-hostedМарт 2026 · 10 мин чтения

Stirling-PDF на VPS: свой PDF-комбайн за 5 минут

ilovepdf, smallpdf, pdf2doc — все они загружают ваши документы на свои серверы. Stirling-PDF — 74 000+ звёзд на GitHub, 50+ инструментов для PDF и полная приватность. Запускается одной командой Docker, работает на VPS от 1 ГБ RAM.

1. Что такое Stirling-PDF и зачем он нужен

Когда нужно объединить два PDF или вырезать несколько страниц, большинство людей открывают первый попавшийся сайт. Проблема в том, что ваш документ — договор, паспорт, медицинская справка — оказывается на чужом сервере. Что с ним происходит дальше, неизвестно.

Stirling-PDF решает это радикально: вся обработка происходит на вашем VPS. Никакой загрузки на внешние сервисы, никакой подписки, никаких ограничений на размер файлов. Установил один раз — пользуйся бесплатно сколько угодно.

🔒 Полная приватность

Файлы обрабатываются только на вашем сервере. Ничего не уходит на внешние сервисы. Особенно важно для корпоративных и юридических документов.

📄 50+ инструментов

Объединить, разделить, сжать, конвертировать, повернуть, добавить водяной знак, OCR, редактировать метаданные — в одном приложении.

🌍 40+ языков интерфейса

Интерфейс переведён на русский и другие языки. OCR поддерживает 100+ языков через Tesseract.

Работает на слабом VPS

Базовые операции — на 1 ГБ RAM. Образ :ultra-lite весит всего ~170 МБ и запускается за секунды.

🔌 REST API

Каждая операция доступна через API. Можно автоматизировать обработку PDF в своих скриптах и приложениях.

🆓 Apache 2.0

Открытый исходный код, коммерческое использование разрешено. 74 000+ звёзд на GitHub — активная разработка.

2. Требования к серверу

ОбразRAMЧто включает
:ultra-lite512 МБТолько базовые PDF-операции (без LibreOffice и Tesseract)
:latest1–2 ГБВсе инструменты: OCR, конвертация через LibreOffice

Рекомендация

Используйте образ :latest — он включает всё, что нужно для работы, в том числе OCR и конвертацию документов. Для личного использования хватит VPS с 2 ГБ RAM.

3. Быстрый запуск (docker run)

Если Docker уже установлен — одна команда, и Stirling-PDF доступен в браузере.

Запуск Stirling-PDF на порту 8080
docker run -d \
  --name stirling-pdf \
  -p 8080:8080 \
  -v ./stirling-data:/configs \
  --restart unless-stopped \
  stirlingtools/stirling-pdf:latest

Откройте в браузере:

Адрес в браузере
http://IP_ВАШЕГО_СЕРВЕРА:8080

Откройте порт 8080

Если на сервере включён UFW, разрешите порт:

ufw allow 8080/tcp

4. Docker Compose с настройками

Для постоянного использования рекомендую Docker Compose — проще обновлять и добавлять переменные окружения.

/opt/stirling-pdf/docker-compose.yml
services:
  stirling-pdf:
    image: stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    ports:
      - '127.0.0.1:8080:8080'
    volumes:
      - ./data/configs:/configs
      - ./data/tessdata:/usr/share/tessdata
      - ./data/logs:/logs
    environment:
      - DOCKER_ENABLE_SECURITY=false
      - SECURITY_ENABLELOGIN=false
      - LANGS=rus
    restart: unless-stopped
Запуск
mkdir -p /opt/stirling-pdf && cd /opt/stirling-pdf
# Создайте docker-compose.yml из примера выше
docker compose up -d

Переменные окружения

LANGSЯзыки для OCR (Tesseract). Скачиваются автоматически при старте. (rus)
SECURITY_ENABLELOGINВключить авторизацию по логину/паролю. (true/false)
DOCKER_ENABLE_SECURITYДополнительные настройки безопасности контейнера. (true/false)
SYSTEM_DEFAULTLOCALEЛокаль интерфейса по умолчанию. (ru-RU)

5. Nginx + SSL для своего домена

Чтобы открывать Stirling-PDF по адресу вида https://pdf.ваш-домен.ru, настройте Nginx как reverse proxy и получите SSL-сертификат через Certbot.

Шаг 1: DNS-запись

У вашего DNS-провайдера
pdf.ваш-домен.ru  →  A  →  IP_СЕРВЕРА

Шаг 2: Nginx-конфиг

/etc/nginx/sites-available/stirling-pdf
server {
    listen 80;
    server_name pdf.ваш-домен.ru;

    location / {
        proxy_pass         http://127.0.0.1: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;

        # Для загрузки больших PDF-файлов
        client_max_body_size 100M;
        proxy_read_timeout   120s;
    }
}
Активировать конфиг и получить SSL
ln -s /etc/nginx/sites-available/stirling-pdf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

# Получить SSL-сертификат
certbot --nginx -d pdf.ваш-домен.ru

После этого закройте порт 8080 в UFW — Stirling-PDF будет доступен только через Nginx:

ufw delete allow 8080/tcp
ufw reload

Увеличьте лимит размера файла

По умолчанию Nginx принимает тела запросов до 1 МБ. Директива client_max_body_size 100M в конфиге выше поднимает лимит до 100 МБ — достаточно для большинства PDF-документов. Для очень больших файлов увеличьте значение.

6. Обзор инструментов (50+ операций)

Stirling-PDF разбивает все инструменты по разделам. Вот что умеет каждый из них:

Организация страниц
Объединить PDFСклеить несколько PDF в один. Порядок файлов можно перетаскивать.
Разделить PDFПо номерам страниц или разбить каждую страницу в отдельный файл.
Удалить страницыУбрать выбранные страницы, сохранив остальные.
Упорядочить страницыВизуально перетащить страницы в нужном порядке.
Повернуть страницыНа 90°, 180° или 270° для всего документа или выбранных страниц.
Конвертация
PDF → Word (docx)Экспорт с сохранением форматирования через LibreOffice.
PDF → Excel (xlsx)Таблицы из PDF в редактируемый формат.
PDF → PowerPointКаждая страница PDF — слайд презентации.
Word / Excel / PPT → PDFКонвертация Office-документов в PDF.
PDF → изображенияКаждая страница в PNG или JPG с выбором DPI.
Изображения → PDFСобрать несколько изображений в PDF.
HTML → PDFСконвертировать веб-страницу или HTML-файл в PDF.
Оптимизация
Сжать PDFУменьшить размер файла с выбором качества изображений.
Восстановить PDFПопробовать починить повреждённый файл.
PDF/A конвертацияПривести документ к стандарту архивного хранения PDF/A.
Выровнять (flatten)Запечь интерактивные поля форм в статичный текст.
Безопасность
Добавить парольЗащитить PDF паролем на открытие и/или редактирование.
Снять парольУдалить защиту (если знаете пароль).
Редактировать (Redact)Замазать чёрным блоком выбранные области — безвозвратно.
Цифровая подписьПодписать документ с сертификатом или без.
Права доступаОграничить печать, копирование текста, изменение документа.
Контент и оформление
Водяной знакТекст или изображение поверх страниц с настройкой прозрачности.
Нумерация страницДобавить номера в заголовок или подвал с настройкой позиции.
ШтампыДобавить текстовый штамп (DRAFT, CONFIDENTIAL и т.д.).
МетаданныеРедактировать автора, заголовок, дату создания и другие поля.
Извлечь изображенияВытащить все встроенные изображения из PDF.

7. OCR: распознавание текста на русском

OCR (оптическое распознавание символов) превращает отсканированный PDF в документ с искомым текстом. Stirling-PDF использует Tesseract — один из лучших open-source OCR-движков. Чтобы работал русский, нужно добавить языковой пакет.

Включить русский язык

В docker-compose.yml добавьте переменную LANGS. При первом запуске Stirling-PDF автоматически скачает нужные файлы:

В секции environment вашего docker-compose.yml
environment:
  - LANGS=rus          # Только русский
  # или
  - LANGS=rus,eng      # Русский + английский
  # или
  - LANGS=rus,eng,deu  # Добавить ещё немецкий
Перезапустить после изменения
docker compose up -d --force-recreate

После этого в интерфейсе Stirling-PDF выберите PDF/AI Operations → OCR PDF, загрузите отсканированный PDF и выберите язык «Russian». Stirling-PDF создаст новый PDF с невидимым текстовым слоем — документ станет полнотекстовым.

Совет

Если документ смешанный (русский + английский), выберите оба языка — точность распознавания будет выше. Качество OCR напрямую зависит от качества скана: 300+ DPI даёт наилучший результат.

8. REST API для автоматизации

Каждый инструмент Stirling-PDF доступен через REST API. Это позволяет встроить обработку PDF в скрипты и приложения — без GUI. Документация Swagger доступна по адресу /swagger-ui/index.html.

Пример: объединить два PDF через curl
curl -X POST http://localhost:8080/api/v1/general/merge-pdfs \
  -F 'fileInput=@doc1.pdf;type=application/pdf' \
  -F 'fileInput=@doc2.pdf;type=application/pdf' \
  -o merged.pdf
Пример: сжать PDF
curl -X POST http://localhost:8080/api/v1/general/compress-pdf \
  -F 'fileInput=@large.pdf;type=application/pdf' \
  -F 'optimizeLevel=3' \
  -o compressed.pdf
Пример: конвертировать PDF в Word через Python
import requests

with open('document.pdf', 'rb') as f:
    response = requests.post(
        'http://localhost:8080/api/v1/convert/pdf/docx',
        files={'fileInput': ('document.pdf', f, 'application/pdf')},
    )

with open('document.docx', 'wb') as out:
    out.write(response.content)

print('Готово!')

Swagger UI

Откройте http://localhost:8080/swagger-ui/index.html — там интерактивная документация всех эндпоинтов с возможностью отправить запрос прямо из браузера.

Частые вопросы

Нужен VPS для запуска Stirling-PDF? Смотрите лучшие варианты

Рейтинг VPS-хостингов →

Смотрите также