Tropic Host

Stirling PDF на VPS: встановлення власного редактора PDF

5 хв. читання
Tropic
Stirling PDF на VPS: встановлення власного редактора PDF

Stirling PDF: як встановити власний редактор PDF на VPS

Щоб об'єднати договір із додатком, стиснути скан паспорта або приховати платіжні реквізити, багато хто завантажує документ на перший знайдений онлайн-сервіс. Разом із файлом на сторонній сайт можуть потрапити підписи, адреси, рахунки та інші конфіденційні дані.

Stirling PDF пропонує інший підхід. Це вебзастосунок із десятками інструментів PDF, який можна запустити на власному VPS. Інтерфейс відкривається в браузері на комп'ютері або телефоні, а документи обробляє ваш сервер.

Нижче розглянемо найцікавіші можливості Stirling PDF, вимоги до сервера та встановлення на Ubuntu за допомогою Docker Compose, автентифікації й HTTPS.

Що таке Stirling PDF?

Stirling PDF — self-hosted платформа для редагування та обробки PDF-файлів. Вона поєднує понад 55 операцій: об'єднання і розділення файлів, перестановку сторінок, стиснення, конвертацію, OCR, підписи, водяні знаки, порівняння документів, а також видалення метаданих і конфіденційної інформації.

Сервіс можна використовувати як настільний застосунок, хмарний продукт або self-hosted сервер. У self-hosted режимі файли обробляє ваш екземпляр Stirling PDF, а доступ можна захистити паролем і HTTPS. Безкоштовна серверна редакція призначена для груп до п'яти користувачів; для більших команд і окремих корпоративних функцій доступні платні редакції.

Головна відмінність від звичайного онлайн-конвертера — контроль. Ви обираєте провайдера, розташування сервера, користувачів і правила доступу. При цьому не потрібно шукати окремий сайт для кожної операції: один інтерфейс замінює набір сервісів для стиснення, конвертації, підпису й OCR.

Найцікавіші можливості Stirling PDF

Візуальне керування сторінками

У режимі Multi-Tool документ відображається у вигляді сітки мініатюр. Сторінки можна перетягувати, обертати, видаляти, розділяти, вставляти в потрібне місце й вибірково експортувати. Файл завантажується лише один раз, а зміни підтримують скасування та повторення.

OCR для сканованих документів

OCR додає текстовий шар до відсканованого PDF. Після обробки можна шукати слова в документі, виділяти й копіювати текст. Доступні вирівнювання, видалення шуму та покращення контрасту. Для російської мови потрібно окремо додати пакет Tesseract rus.traineddata.

Безпечне приховування даних

Чорний прямокутник поверх номера рахунку не завжди видаляє оригінальний текст. Інструмент Redact може видалити збіги зі структури PDF, а не просто накрити їх візуальним шаром. Можна вручну позначити область або виконати пошук по всьому документу за номерами телефонів, email-адресами, номерами карток та іншими даними за словами чи регулярними виразами.

Порівняння версій і мобільний сканер

Compare показує, які слова додано або видалено між двома версіями договору, звіту чи технічної специфікації. Для паперових документів є мобільний сканер: на комп'ютері з'являється QR-код, телефон завантажує фотографії безпосередньо в поточну сесію, а тимчасові файли автоматично видаляються після завантаження або десяти хвилин бездіяльності.

Автоматизація та API

Automate працює як макроси для PDF-файлів. Наприклад, можна один раз зберегти такий workflow:

OCR → видалити порожні сторінки → стиснути → додати водяний знак → встановити пароль

Потім цей workflow можна застосовувати до нових файлів без повторення кожного кроку. Stirling PDF також підтримує обробку файлів із відстежуваної папки та надає REST API з вбудованою документацією Swagger.

Який VPS потрібен Stirling PDF?

Обробка PDF може вимагати значно більше пам'яті, ніж займає сам вихідний файл. Особливо ресурсомісткі OCR, перетворення сторінок на зображення та конвертація офісних документів через LibreOffice.

Для тестового розгортання достатньо 2 GB RAM, але для регулярного використання краще обрати:

  • 2 vCPU;
  • 4 GB RAM;
  • щонайменше 10–20 GB вільного місця на SSD або NVMe;
  • Ubuntu 22.04 або 24.04.

Якщо кілька користувачів одночасно запускають OCR або конвертацію, розумніше вибрати 4 vCPU і 8 GB RAM. Для малопотужного сервера є image latest-ultra-lite, а latest-fat містить додаткові шрифти й інструменти для якіснішої конвертації. Стандартний image latest підходить більшості користувачів.

Встановлення Stirling PDF за допомогою Docker Compose

У наведеній конфігурації контейнер слухає лише локальний інтерфейс. Зовнішній доступ пізніше проходитиме через Nginx із HTTPS, тому порт 8080 не буде відкритий усьому інтернету.

Крок 1. Встановіть Docker

ssh root@SERVER_IP
apt update && apt upgrade -y
apt install -y curl
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
rm get-docker.sh

Перевірте встановлення:

docker --version
docker compose version

Крок 2. Створіть конфігурацію Docker Compose

mkdir -p /opt/stirling-pdf/{configs,logs,pipeline}
cd /opt/stirling-pdf
nano docker-compose.yml

Додайте конфігурацію:

services:
  stirling-pdf:
    image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - ./configs:/configs
      - ./logs:/logs
      - ./pipeline:/pipeline
    environment:
      - SECURITY_ENABLELOGIN=true
      - SYSTEM_DEFAULTLOCALE=ru-RU
      - SYSTEM_GOOGLEVISIBILITY=false

Запустіть сервіс:

docker compose up -d
docker compose ps

Для діагностики використовуйте:

docker compose logs --tail=100 stirling-pdf

Крок 3. Увійдіть уперше

Перш ніж налаштовувати домен, відкрийте інтерфейс через SSH-тунель. Виконайте команду на своєму комп'ютері:

ssh -L 8080:127.0.0.1:8080 root@SERVER_IP

Перейдіть на http://localhost:8080. Стандартні дані першого входу: ім'я користувача admin і пароль stirling. Негайно змініть пароль у налаштуваннях облікового запису.

Підключення домену та HTTPS

Створіть DNS-запис типу A для адреси на кшталт pdf.example.com і спрямуйте його на IP-адресу сервера. Потім встановіть Nginx і Certbot:

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

Додайте конфігурацію та замініть доменне ім'я:

server {
    listen 80;
    server_name pdf.example.com;
    client_max_body_size 500M;

    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;
        proxy_read_timeout 300s;
    }
}

Увімкніть сайт і отримайте сертифікат:

ln -s /etc/nginx/sites-available/stirling-pdf /etc/nginx/sites-enabled/stirling-pdf
nginx -t
systemctl reload nginx
certbot --nginx -d pdf.example.com

Тепер Stirling PDF доступний через HTTPS, а внутрішній порт 8080 залишається закритим. Для файлів понад 500 MB збільште client_max_body_size.

Як додати російський OCR

Створіть каталог і завантажте пакети Tesseract для англійської та російської:

cd /opt/stirling-pdf
mkdir -p tessdata
curl -L -o tessdata/eng.traineddata \
  https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/eng.traineddata
curl -L -o tessdata/rus.traineddata \
  https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/rus.traineddata

Додайте наступний рядок до секції volumes файлу docker-compose.yml:

      - ./tessdata:/usr/share/tessdata

Застосуйте зміни й перевірте доступні мови:

docker compose up -d
docker exec stirling-pdf tesseract --list-langs

Список має містити eng і rus.

Безпека, оновлення та обмеження

Перед регулярним використанням змініть стандартний пароль, залиште автентифікацію увімкненою, не відкривайте порт 8080 і дозвольте через firewall лише SSH, HTTP та HTTPS. Каталоги configs і pipeline потрібно включити до резервних копій. Аналітика Stirling PDF вмикається лише після згоди користувача і може бути повністю вимкнена адміністратором.

Щоб оновити застосунок, виконайте:

cd /opt/stirling-pdf
docker compose pull
docker compose up -d

Stirling PDF покриває більшість повсякденних завдань, але під час конвертації між PDF та офісними форматами не завжди зберігає складну розмітку. OCR погано розпізнає структуру таблиць і формул, а якість рукописного чи дуже дрібного тексту обмежена. Для хорошого результату використовуйте чіткі скани з роздільною здатністю близько 300 DPI.

Stirling PDF на VPS від tropic.host

Сервіс не потребує відеокарти: важливіші RAM, стабільна продуктивність CPU та швидке сховище. Краще обрати розташування ближче до користувачів, оскільки великі документи спочатку завантажуються на сервер, а потім знову завантажуються.

Для особистого екземпляра або невеликої команди зазвичай достатньо Linux VPS із 2 vCPU і 4 GB RAM. На VPS від tropic.host можна встановити Ubuntu, запустити наведену конфігурацію Docker Compose та розмістити інтерфейс на окремому піддомені. Додаткова пам'ять особливо важлива, якщо на тому самому сервері працюють інші контейнери.

Висновок

Stirling PDF перетворює VPS на власний вебсервіс для роботи з документами. Він поєднує десятки інструментів і підтримує OCR, справжнє видалення конфіденційних даних, порівняння версій, мобільне сканування, автоматизацію та API.

Головна причина розгортати його самостійно — контроль над файлами. Для договорів, рахунків, форм і внутрішніх документів захищений екземпляр з автентифікацією та HTTPS зручніший за набір випадкових онлайн-конвертерів.

Поширені запитання

Stirling PDF безкоштовний?

Так. Безкоштовна self-hosted редакція підтримує до п'яти користувачів. Для більших команд і організацій, яким потрібні корпоративні функції, необхідна платна редакція.

Чи залишають документи мій сервер?

У self-hosted режимі їх обробляє ваш власний екземпляр Stirling PDF. Остаточний рівень безпеки залежить від конфігурації VPS, HTTPS, паролів, оновлень і доступу адміністратора.

Чи достатньо 2 GB RAM?

Для тестування та легких операцій — так. Для регулярного використання, OCR і конвертації краще обрати 4 GB RAM, а для паралельних навантажень — більше.

Чи потрібен домен?

Ні. Сервіс можна відкрити за IP-адресою або через SSH-тунель. Домен корисний для зручної постійної адреси й коректної конфігурації HTTPS.

Чи підтримується російський OCR?

Так. Додайте файл rus.traineddata до каталогу Tesseract і змонтуйте його в контейнер.