Обзор развертывания Dokku и Nginx-Certbot на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Требуется доступ к серверу с правами суперпользователя (root) или возможность использования команды sudo.
Необходимо обеспечить доступ к следующим портам и сетевым ресурсам: - Порт 80 и 443 для работы веб-сервера и получения SSL-сертификатов. - Доступ к внешним репозиториям для загрузки скриптов установки и образов Docker.
Процесс установки приложения¶
Установка платформы Dokku выполняется с использованием официального скрипта bootstrap. Процесс включает следующие этапы:
- Загрузка скрипта установки Dokku версии, указанной в переменной
dokku_version, в каталог/tmp/bootstrap.sh. - Запуск скрипта установки с установкой тега версии через переменную окружения
DOKKU_TAG. - Установка глобального домена для Dokku с использованием команды
dokku domains:set-globalи значения переменнойdokku_domain. - Установка зависимостей для ядра Dokku через команду
dokku plugin:install-dependencies --core.
Для развертывания веб-сервера и системы получения сертификатов используется Docker Compose. Конфигурация генерируется в каталог /root/nginx с именем файла compose.yml.
Контейнеры Docker и их запуск¶
Развертывание веб-сервера и менеджера сертификатов осуществляется через Docker Compose в каталоге /root/nginx.
Используемый образ контейнера: - jonasal/nginx-certbot:latest
Параметры запуска контейнера nginx: - Политика перезапуска: unless-stopped. - Режим сети: host. - Переменная окружения CERTBOT_EMAIL установлена в значение hkadm@hostkey.com. - Файл переменных окружения: /data/nginx/nginx-certbot.env.
Монтированные тома: - Внешний том nginx_secrets монтируется в /etc/letsencrypt для хранения сертификатов. - Каталог /data/nginx/user_conf.d монтируется в /etc/nginx/user_conf.d для пользовательских конфигураций.
Запуск контейнеров выполняется командой:
Команда должна выполняться из директории/root/nginx. Структура файлов и каталогов¶
Система использует следующую структуру каталогов для хранения конфигураций и данных:
/root/nginx: Каталог для хранения файла конфигурации Docker Compose (compose.yml)./data/nginx/user_conf.d: Каталог для хранения пользовательских конфигурационных файлов Nginx./etc/letsencrypt: Каталог внутри контейнера для хранения SSL-сертификатов (монтируется из внешнего томаnginx_secrets)./tmp/bootstrap.sh: Временный каталог для хранения скрипта установки Dokku.
Права доступа и безопасность¶
Каталог /root/nginx создается с правами доступа 0755 и владельцем root:root. Файл конфигурации compose.yml создается с правами 0644 и владельцем root:root.
Контейнер Nginx работает в режиме сети host, что означает использование сетевого стека хоста напрямую. Для получения SSL-сертификатов используется сервис Certbot, интегрированный в образ jonasal/nginx-certbot.
Запуск, остановка и обновление¶
Управление контейнерами Nginx и Certbot осуществляется через Docker Compose в директории /root/nginx.
Для запуска контейнеров используется команда:
Для остановки контейнеров используется команда:
Для обновления конфигурации после изменения файла compose.yml или переменных окружения необходимо выполнить перезапуск контейнеров:
Управление платформой Dokku осуществляется через команды dokku, доступные в терминале после установки.