Обзор развертывания Docuseal на сервере¶
Предпосылки и предварительные требования¶
- На сервере должна быть установлена система Linux (например, CentOS, Rocky Linux или AlmaLinux) с включённым доступом к интернету.
- Необходим доступ к Docker Engine версии >= 20 с поддержкой docker‑compose или установленный пакет docker‑compose.
- В сети должна быть открыта пара портов 80 и 443, чтобы Caddy мог принимать HTTP‑ и HTTPS‑запросы.
- Для корректной работы приложения требуется пароль SSH‑ключа пользователя, используемый как пароль PostgreSQL‑пользователя.
Структура файлов и каталогов¶
После завершения установки в корневой директории пользователя появятся следующие объекты:
/opt/docuseal/
├── Caddyfile # Конфигурация Caddy‑proxy
├── compose.yml # Файл docker‑compose
└── <пусто> (директория для данных и логов)
/opt/docuseal/
└── Caddyfile – создан из шаблона
└── compose.yml – создан из шаблона
Параллельно создаются Docker‑volumes, которые сохраняют данные между перезапусками контейнеров:
docuseal_data – место хранения данных приложения
postgres_data – база данных PostgreSQL
caddy_data – данные Caddy (сert‑store, токены)
caddy_config – конфигурационные файлы Caddy
Права доступа и безопасность¶
- Все файлы в
/opt/docuseal/принадлежат пользователюrootи группеroot. - Доступ к директории и файлам ограничен правами
0755(директория) и0644(файлы). - Docker‑контейнеры запускаются с минимальными привилегиями, привязывая только необходимые тома.
- На сервере открыты только порты 80 и 443, остальные портов по‑умолчанию закрыты.
Базы данных¶
PostgreSQL запускается в отдельном контейнере postgres:15.
Ключевые параметры конфигурации задаются переменными окружения:
Параметр DATABASE_URL передаётся в приложение app:
Состояние сервиса проверяется через health‑check, который запускает команду pg_isready.
Контейнеры Docker и их запуск¶
Запуск всего стека осуществляется командой, выполняемой в каталоге /opt/docuseal:
Docker‑compose создаёт и запускает три контейнера:
| Контейнер | Образ | Служебные порты | Зависимости |
|---|---|---|---|
| app | docuseal/docuseal:latest | 3000 (expose) | postgres |
| postgres | postgres:15 | 5432 | — |
| caddy | caddy:latest | 80, 443 | — |
Контейнер caddy использует файл /opt/docuseal/Caddyfile и обслуживает как HTTP, так и HTTPS (получает сертификаты автоматически).
Прокси серверы¶
Caddy выступает в роли обратного прокси и TLS‑terminator.
Файл Caddyfile формируется так:
Если задана временная зона (temp_domain), она добавляется как альтернативный хост.
Caddy сам управляет сертификатами Let’s Encrypt, поэтому никакого отдельного контейнера certbot не требуется.
Настройки прав, запуск, остановка и обновление¶
Запуск¶
Остановка¶
Перезапуск¶
Обновление образов¶
Проверка статуса¶
Очистка неиспользуемых томов (если необходимо)¶
Эти команды позволяют управлять жизненным циклом контейнеров без изменения конфигурационных файлов.