Перейти к содержанию

Обзор развертывания Docuseal на сервере

Предварительные требования и базовые условия

Для развертывания Docuseal на сервере должны быть выполнены следующие требования:

  • Операционная система: Дистрибутив Linux, совместимый с Docker и Docker Compose.

  • Привилегии: Доступ root или учетная запись с правами sudo для управления службами Docker и правилами межсетевого экрана (firewall).

  • Домен: Действующее доменное имя или поддомен, указывающий на IP-адрес сервера.

  • Порты: TCP-порты 80 и 443 должны быть доступны для внешнего подключения.

FQDN конечной панели

Приложение доступно по следующему формату полностью квалифицированного доменного имени (FQDN):

  • docuseal<Server ID>.hostkey.in:443

Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера. Приложение слушает порт 443 для трафика HTTPS.

Структура файлов и каталогов

Развертывание использует следующую структуру каталогов для файлов конфигурации и хранения данных:

  • /opt/docuseal: Основной каталог, содержащий файлы конфигурации.

  • /opt/docuseal/Caddyfile: Конфигурация обратного прокси-сервера Caddy.

  • /opt/docuseal/compose.yml: Файл определения Docker Compose.

  • Docker-объемы (Volumes):

  • docuseal_data: Хранит данные приложения.

  • postgres_data: Хранит файлы базы данных PostgreSQL.

  • caddy_data: Хранит данные и сертификаты Caddy.

  • caddy_config: Хранит файлы конфигурации Caddy.

Процесс установки приложения

Приложение развертывается с использованием Docker Compose. Процесс установки включает следующие шаги:

  1. Создание необходимых каталогов в /opt/docuseal.

  2. Генерация файлов конфигурации Caddyfile и compose.yml.

  3. Создание требуемых Docker-объемов: docuseal_data, postgres_data, caddy_data и caddy_config.

  4. Выполнение команды Docker Compose для запуска служб.

Для развертывания используются следующие образы Docker:

  • docuseal/docuseal:latest для основного приложения.

  • postgres:15 для базы данных.

  • caddy:latest для обратного прокси-сервера и завершения SSL-соединений (SSL termination).

Права доступа и безопасность

Правила межсетевого экрана настроены для разрешения внешнего трафика на определенных портах:

  • Порт 80 (TCP): Включен для трафика HTTP.

  • Порт 443 (TCP): Включен для трафика HTTPS.

Эти правила применяются к зоне public межсетевого экрана для обеспечения безопасного внешнего доступа.

Базы данных

Приложение использует базу данных PostgreSQL со следующей конфигурацией:

  • Образ: postgres:15

  • Имя базы данных: docuseal

  • Пользователь: postgres

  • Метод подключения: Внутренняя сеть Docker.

  • Место хранения: Данные сохраняются в Docker-объеме postgres_data, смонтированном в /var/lib/postgresql/data.

  • Проверка состояния (Health Check): База данных выполняет проверку состояния с помощью команды pg_isready -U postgres каждые 5 секунд с тайм-аутом 5 секунд и 5 попытками повторения.

Контейнеры Docker и их развертывание

Развертывание состоит из трех основных контейнеров, определенных в файле compose.yml:

Имя контейнера Образ Описание
app docuseal/docuseal:latest Основная служба приложения Docuseal.
postgres postgres:15 Служба базы данных PostgreSQL.
caddy caddy:latest Обратный прокси-сервер, обрабатывающий SSL и маршрутизацию.

Контейнер app зависит от того, что контейнер postgres находится в рабочем состоянии (healthy), перед запуском. Все контейнеры настроены с политиками перезапуска для обеспечения высокой доступности.

Прокси-серверы

Caddy используется в качестве обратного прокси-сервера для обработки входящего трафика и завершения SSL-соединений:

  • Файл конфигурации: /opt/docuseal/Caddyfile

  • Функция: Маршрутизирует трафик с внешнего домена на внутреннюю службу app на порту 3000.

  • SSL: Автоматически управляет SSL-сертификатами для настроенного домена.

  • Порты:

  • 80 (TCP): HTTP

  • 443 (TCP): HTTPS

  • 443 (UDP): HTTPS (поддержка QUIC)

Контейнер Caddy монтирует файл конфигурации из /opt/docuseal/Caddyfile в /etc/caddy/Caddyfile внутри контейнера.

Настройки прав доступа

Права доступа к файлам и каталогам настроены следующим образом:

  • /opt/docuseal: Владелец root, Группа root, Режим 0755.

  • /opt/docuseal/Caddyfile: Владелец root, Группа root, Режим 0644.

  • /opt/docuseal/compose.yml: Владелец root, Группа root, Режим 0644.

Docker-объемы управляются демоном Docker и не требуют ручной корректировки прав доступа в файловой системе хоста.

Расположение файлов конфигурации и данных

Файлы конфигурации и данные находятся по следующим путям:

  • Каталог конфигурации: /opt/docuseal

  • Caddyfile: Конфигурация прокси-сервера.

  • compose.yml: Определения служб.

  • Объемы данных:

  • docuseal_data: Данные приложения.

  • postgres_data: Хранилище базы данных.

  • caddy_data: Данные Caddy.

  • caddy_config: Конфигурация Caddy.

Доступные порты для подключения

Следующие порты доступны для внешних и внутренних подключений:

Порт Протокол Описание
80 TCP HTTP (Перенаправляется на HTTPS через Caddy)
443 TCP HTTPS (Безопасный доступ к Docuseal)
443 UDP HTTPS (Поддержка QUIC)
3000 TCP Внутренний порт приложения (не открыт для внешнего доступа)
5432 TCP Внутренний порт PostgreSQL (не открыт для внешнего доступа)

Запуск, остановка и обновление

Управление службами осуществляется с помощью команд Docker Compose, выполняемых из каталога /opt/docuseal:

  • Запуск служб:

    cd /opt/docuseal
    docker compose up -d
    

  • Остановка служб:

    cd /opt/docuseal
    docker compose down
    

  • Обновление служб: Для обновления приложения загрузите последние образы и перезапустите контейнеры:

    cd /opt/docuseal
    docker compose pull
    docker compose up -d
    

  • Просмотр логов:

    cd /opt/docuseal
    docker compose logs -f
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×