Руководство по самостоятельному размещению Stirling-PDF: мощный PDF редактор для вашего сервера

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

Не указано

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

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

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