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

Обзор развертывания Dokku и Nginx-Certbot на сервере

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

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

Необходимо обеспечить доступ к следующим портам и сетевым ресурсам: - Порт 80 и 443 для работы веб-сервера и получения SSL-сертификатов. - Доступ к внешним репозиториям для загрузки скриптов установки и образов Docker.

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

Установка платформы Dokku выполняется с использованием официального скрипта bootstrap. Процесс включает следующие этапы:

  1. Загрузка скрипта установки Dokku версии, указанной в переменной dokku_version, в каталог /tmp/bootstrap.sh.
  2. Запуск скрипта установки с установкой тега версии через переменную окружения DOKKU_TAG.
  3. Установка глобального домена для Dokku с использованием команды dokku domains:set-global и значения переменной dokku_domain.
  4. Установка зависимостей для ядра 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 для пользовательских конфигураций.

Запуск контейнеров выполняется командой:

docker compose up -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.

Для запуска контейнеров используется команда:

docker compose up -d

Для остановки контейнеров используется команда:

docker compose down

Для обновления конфигурации после изменения файла compose.yml или переменных окружения необходимо выполнить перезапуск контейнеров:

docker compose up -d

Управление платформой Dokku осуществляется через команды dokku, доступные в терминале после установки.

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