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

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

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

Для успешного развертывания приложения необходимо наличие сервера с установленной операционной системой, поддерживающей Docker и Docker Compose. Требуется наличие прав суперпользователя (root) или доступа через sudo для выполнения команд установки и управления сервисами.

Система должна иметь доступ к интернету для загрузки образов контейнеров. Для работы веб-интерфейса необходимо открыть порты 80 и 443 в брандмауэре.

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

Все файлы конфигурации и управления приложением размещаются в каталоге /opt/docuseal.

Основные компоненты структуры:

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

  • /opt/docuseal/compose.yml — файл описания сервисов Docker Compose.

Данные приложений хранятся в изолированных томах Docker:

  • docuseal_data — данные самого приложения DocuSeal.

  • postgres_data — данные базы данных PostgreSQL.

  • caddy_data — данные и сертификаты веб-сервера Caddy.

  • caddy_config — конфигурация веб-сервера Caddy.

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

Развертывание осуществляется через Docker Compose. Приложение использует следующие версии образов:

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

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

  • caddy:latest — веб-сервер и прокси.

Перед запуском необходимо создать тома для хранения данных. Это делается с помощью команд:

docker volume create docuseal_data
docker volume create postgres_data
docker volume create caddy_data
docker volume create caddy_config

После создания томов и подготовки файлов конфигурации в директории /opt/docuseal, запуск всех сервисов выполняется командой:

docker compose up -d
Команда должна выполняться из каталога /opt/docuseal.

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

Для обеспечения безопасности трафика настроен брандмауэр firewalld. Разрешен входящий трафик только на портах 80/tcp и 443/tcp в зоне public.

Конфигурация брандмауэра включает следующие правила:

  • Порт 80/tcp — разрешен.

  • Порт 443/tcp — разрешен.

Веб-сервер Caddy обрабатывает входящие запросы и перенаправляет их на внутренний порт приложения 3000.

Базы данных

Приложение использует базу данных PostgreSQL версии 15. Она развернута в отдельном контейнере и подключается к сервису app через внутреннюю сеть Docker.

Параметры подключения базы данных:

  • Имя пользователя: postgres.

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

  • Хост подключения: postgres.

  • Порт: 5432.

Данные базы данных сохраняются в томе postgres_data, который монтируется в директорию /var/lib/postgresql/data внутри контейнера.

Контейнеры Docker и их запуск

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

  1. app:

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

  3. Зависит от успешного запуска сервиса postgres.

  4. Экспонирует порт 3000 внутри сети Docker.

  5. Монтирует том docuseal_data в /data/docuseal.

  6. Переменные окружения включают FORCE_SSL и DATABASE_URL.

  7. postgres:

  8. Образ: postgres:15.

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

  10. Имеет настроенную проверку здоровья (healthcheck) для контроля готовности.

  11. caddy:

  12. Образ: caddy:latest.

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

  14. Монтирует тома caddy_data и caddy_config.

  15. Использует файл конфигурации /opt/docuseal/Caddyfile для настройки обратного прокси.

Все сервисы настроены на автоматический перезапуск (restart: always или restart: unless-stopped).

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

В качестве обратного прокси используется контейнер Caddy. Он слушает порты 80 и 443 и перенаправляет запросы на сервис app по адресу app:3000.

Файл конфигурации Caddyfile определяет доменное имя, на котором будет доступен сервис. Конфигурация поддерживает как основной домен, так и дополнительные домены.

Сертификаты SSL автоматически управляются Caddy через томы caddy_data и caddy_config.

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

Файлы конфигурации в каталоге /opt/docuseal имеют следующие права доступа:

  • Директория /opt/docuseal: владелец root, группа root, права 0755.

  • Файл Caddyfile: владелец root, группа root, права 0644.

  • Файл compose.yml: владелец root, группа root, права 0644.

Тома Docker создаются с правами, необходимыми для работы соответствующих контейнеров.

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

Управление сервисами осуществляется через Docker Compose из каталога /opt/docuseal.

Команды управления:

  • Запуск всех сервисов в фоновом режиме:

    docker compose up -d
    

  • Остановка всех сервисов:

    docker compose down
    

  • Перезапуск сервисов с обновлением образов:

    docker compose up -d --force-recreate
    

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

    docker compose logs -f
    

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