Обзор развертывания 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. Процесс установки включает следующие шаги:
-
Создание необходимых каталогов в
/opt/docuseal. -
Генерация файлов конфигурации
Caddyfileиcompose.yml. -
Создание требуемых Docker-объемов:
docuseal_data,postgres_data,caddy_dataиcaddy_config. -
Выполнение команды 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:
-
Запуск служб:
-
Остановка служб:
-
Обновление служб: Для обновления приложения загрузите последние образы и перезапустите контейнеры:
-
Просмотр логов: