Обзор развертывания DocuSeal на сервере¶
Предварительные требования¶
Для корректной работы приложения необходимы следующие условия:
-
Операционная система: CentOS, Rocky Linux или AlmaLinux (для автоматической настройки брандмауэра).
-
Права доступа: права суперпользователя (
root) для установки Docker и управления системными директориями. -
Сетевые доступы: открытые порты 80 (HTTP) и 443 (HTTPS) по протоколу TCP.
FDQN итоговой панели на домене hostkey.in¶
Если не указан кастомный домен, используется стандартный шаблон:
| Параметр | Значение |
|---|---|
| Префикс | docuseal |
| Домен | hostkey.in |
| Полный шаблон | docuseal{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Все основные файлы конфигурации и данные приложения сосредоточены в директории /opt/docuseal:
-
/opt/docuseal/compose.yml— файл конфигурации Docker Compose. -
/opt/docuseal/Caddyfile— конфигурационный файл веб-сервера Caddy. -
docuseal_data— том для хранения данных приложения. -
postgres_data— том для хранения базы данных PostgreSQL. -
caddy_data— том для данных SSL-сертификатов. -
caddy_config— том для конфигураций Caddy.
Процесс установки приложения¶
Развертывание выполняется с использованием Docker Compose и включает следующие этапы:
-
Подготовка окружения: Создание рабочей директории
/opt/docusealс правами доступа0755. -
Настройка веб-сервера: Генерация конфигурационного файла
Caddyfileдля управления SSL и проксированием трафика. -
Создание томов: Инициализация внешних Docker-томов:
docuseal_data,postgres_data,caddy_dataиcaddy_config. -
Запуск контейнеров: Развертывание стека приложений через команду
docker compose up -dиз директории/opt/docuseal.
Права доступа и безопасность¶
-
Брандмауэр: В системах на базе Red Hat (CentOS, Rocky, AlmaLinux) автоматически открываются порты 80/tcp и 443/tcp.
-
Безопасность данных: Контейнеры работают в изолированной сети Docker; доступ к портам приложения ограничен через прокси-сервер Caddy.
Базы данных¶
В качестве системы управления базами данных используется PostgreSQL 15.
-
Имя базы данных:
docuseal. -
Пользователь:
postgres. -
Метод подключения: Приложение подключается к базе по имени сервиса
postgresчерез внутреннюю сеть Docker. -
Хранение: Данные БД персистентны и хранятся в томе
postgres_data.
Контейнеры Docker и их запуск¶
Приложение развернуто в виде стека из трех контейнеров:
Контейнер приложения (app)
-
Имя образа:
docuseal/docuseal:latest -
Порты: Экспортирует порт
3000внутри сети. -
Тома:
docuseal_data:/data/docuseal -
Переменные окружения:
FORCE_SSL,DATABASE_URL. -
Политика перезапуска:
always.
Контейнер базы данных (postgres)
-
Имя образа:
postgres:15 -
Тома:
postgres_data:/var/lib/postgresql/data -
Переменные окружения:
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB. -
Политика перезапуска:
always.
Контейнер веб-сервера (caddy)
-
Имя образа:
caddy:latest -
Порты:
80:80,443:443,443:443/udp -
Тома:
-
caddy_data:/data -
caddy_config:/config -
/opt/docuseal/Caddyfile:/etc/caddy/Caddyfile:ro(монтирование конфига в режиме "только чтение"). -
Политика перезапуска:
unless-stopped.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию с конфигурацией:
-
Подтянуть новые версии образов и перезапустить контейнеры: