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-lite | 512 МБ | Только базовые PDF-операции (без LibreOffice и Tesseract) |
| :latest | 1–2 ГБ | Все инструменты: OCR, конвертация через LibreOffice |
Рекомендация
Используйте образ :latest — он включает всё, что нужно для работы, в том числе OCR и конвертацию документов. Для личного использования хватит VPS с 2 ГБ RAM.
3. Быстрый запуск (docker run)
Если Docker уже установлен — одна команда, и Stirling-PDF доступен в браузере.
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, разрешите порт:
4. Docker Compose с настройками
Для постоянного использования рекомендую Docker Compose — проще обновлять и добавлять переменные окружения.
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-stoppedmkdir -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-запись
pdf.ваш-домен.ru → A → IP_СЕРВЕРАШаг 2: Nginx-конфиг
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;
}
}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 разбивает все инструменты по разделам. Вот что умеет каждый из них:
7. OCR: распознавание текста на русском
OCR (оптическое распознавание символов) превращает отсканированный PDF в документ с искомым текстом. Stirling-PDF использует Tesseract — один из лучших open-source OCR-движков. Чтобы работал русский, нужно добавить языковой пакет.
Включить русский язык
В docker-compose.yml добавьте переменную LANGS. При первом запуске Stirling-PDF автоматически скачает нужные файлы:
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.
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.pdfcurl -X POST http://localhost:8080/api/v1/general/compress-pdf \
-F 'fileInput=@large.pdf;type=application/pdf' \
-F 'optimizeLevel=3' \
-o compressed.pdfimport 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 — там интерактивная документация всех эндпоинтов с возможностью отправить запрос прямо из браузера.