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

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

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

Для развертывания Docuseal требуется среда Linux-сервера с установленными Docker и Docker Compose. Для успешной установки необходимо соблюдение следующих спецификаций:

  • Операционная система: Дистрибутив Linux, поддерживающий Docker Engine.

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

  • Доступ к сети: На сервере должно быть настроено доступное доменное имя для терминации SSL.

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

FQDN финальной панели

Приложение доступно через домен hostkey.in. Полное доменное имя (FQDN) имеет вид: docuseal<Server ID>.hostkey.in

Сервис принимает подключения по порту 443 для защищенных соединений HTTPS. Server ID — это переменная, уникальная для конкретного экземпляра развертывания, которая добавляется к префиксу docuseal.

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

Все конфигурационные файлы и данные для развертывания Docuseal организованы в директории /opt на хост-системе.

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

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

  • /opt/docuseal/compose.yml: Файл определения Docker Compose, специфицирующий сервисы, сети и тома.

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

Приложение разворачивается с помощью Docker Compose. Установка включает создание специфических Docker-томов для постоянного хранения данных и запуск сервисов, определенных в compose-файле.

  1. Установка создает следующие Docker-тома:

  2. docuseal_data: Хранит основные данные приложения Docuseal.

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

  4. caddy_data: Хранит постоянные данные Caddy, включая SSL-сертификаты.

  5. caddy_config: Хранит конфигурацию времени выполнения Caddy и временные файлы.

  6. Сервисы запускаются с помощью команды docker compose из директории /opt/docuseal. Развертывание обеспечивает рабочее состояние базы данных PostgreSQL перед запуском приложения.

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

Безопасность управляется через правила межсетевого экрана и изоляцию контейнеров.

  • Конфигурация межсетевого экрана: Межсетевой экран разрешает трафик только на следующих портах в зоне public:

  • Порт 80 (TCP): Требуется для HTTP-запросов и выдачи SSL-сертификатов.

  • Порт 443 (TCP): Требуется для HTTPS-трафика.

  • Изоляция контейнеров: Сервисы взаимодействуют через внутреннюю сеть Docker. Контейнер приложения (app) не открывает порты напрямую на хосте; вместо этого он взаимодействует внутренним образом с прокси-сервером caddy.

Базы данных

Docuseal использует базу данных PostgreSQL для хранения данных.

  • Тип базы данных: PostgreSQL версии 15.

  • Метод подключения: Приложение подключается к базе данных через внутреннюю сеть Docker, используя имя сервиса postgres.

  • Местоположение хранения: Данные сохраняются в Docker-томе postgres_data, смонтированном в /var/lib/postgresql/data внутри контейнера.

  • Настройки:

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

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

  • Хост: postgres

  • Порт: 5432

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

Развертывание состоит из трех основных контейнеров, оркестрируемых Docker Compose:

  1. Контейнер приложения (App Container)

  2. Образ: docuseal/docuseal:latest

  3. Внутренний порт: Открывает порт 3000 внутренне.

  4. Томы: Монтирует docuseal_data в /data/docuseal.

  5. Зависимости: Запускается только после того, как сервис postgres станет рабочим.

  6. Окружение: Настроено с FORCE_SSL и DATABASE_URL.

  7. Контейнер Postgres

  8. Образ: postgres:15

  9. Томы: Монтирует postgres_data в /var/lib/postgresql/data.

  10. Проверка состояния (Health Check): Проверяет доступность с помощью pg_isready.

  11. Контейнер Caddy

  12. Образ: caddy:latest

  13. Команда: caddy run --config /etc/caddy/Caddyfile

  14. Порты: Открывает на хосте порты 80 (TCP) и 443 (TCP/UDP).

  15. Томы: Монтирует caddy_data в /data, caddy_config в /config, а также Caddyfile хоста в /etc/caddy/Caddyfile.

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

В качестве обратного прокси и обработчика терминации SSL используется Caddy.

  • Файл конфигурации: Конфигурация прокси определена в /opt/docuseal/Caddyfile.

  • Функциональность: Caddyfile направляет входящий трафик с настроенного домена на сервис app на порту 3000.

  • SSL: Caddy автоматически управляет SSL-сертификатами для указанного домена, обеспечивая защищенные соединения HTTPS.

  • Домены: Поддерживает основной домен и необязательные временные домены, если они определены в конфигурации.

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

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

  • Директория /opt/docuseal:

  • Владелец: root

  • Группа: root

  • Мод: 0755 (доступна для чтения и выполнения всеми, запись разрешена только для root)

  • Конфигурационные файлы (Caddyfile, compose.yml):

  • Владелец: root

  • Группа: root

  • Мод: 0644 (доступны для чтения всем, запись разрешена только для root)

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

Следующие места содержат критическую конфигурацию и данные для развернутой системы:

Компонент Путь на хосте Назначение
Конфигурация приложения /opt/docuseal/Caddyfile Конфигурация обратного прокси и SSL
Docker Compose /opt/docuseal/compose.yml Определение оркестрации сервисов
Данные приложения docuseal_data (Docker-том) Постоянное хранилище для Docuseal
Данные БД postgres_data (Docker-том) Файлы базы данных PostgreSQL
Данные прокси caddy_data (Docker-том) Сертификаты и кэш Caddy
Конфигурация прокси caddy_config (Docker-том) Конфигурация времени выполнения Caddy

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

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

Порт Протокол Описание
80 TCP HTTP-трафик (перенаправляется на HTTPS)
443 TCP HTTPS-трафик (защищенный доступ к приложению)
443 UDP Поддержка HTTP/2 и QUIC

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

Управление сервисами осуществляется через команды 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
ИИ Помощник ×