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

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

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

  • Операционная система: Ubuntu

  • Привилегии: Для выполнения команд установки и управления требуются права root или привилегии sudo.

  • Домен: Запись DNS должна указывать на сконфигурированное доменное имя приложения.

  • Порты: Порт 443 (HTTPS) является назначенным внешним портом для входящего трафика.

FQDN финальной панели управления

Приложение доступно через Полно Квалифицированное Доменное Имя (FQDN), сформированное по следующему шаблону: <prefix><Server ID>.hostkey.in:443

Исходя из параметров конфигурации:

  • Зона: hostkey.in

  • Префикс: dokku

  • Пример FQDN: dokku<Server ID>.hostkey.in

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

Приложение развертывается с использованием официального скрипта запуска Dokku с фиксированной версией для обеспечения согласованности.

  • Версия: v0.34.8

  • Скрипт установки: bootstrap.sh

  • Шаги установки:

  • Загрузите скрипт запуска в /tmp/bootstrap.sh из официального репозитория Dokku.

  • Выполните установку с помощью следующей команды:

    sudo DOKKU_TAG=v0.34.8 bash /tmp/bootstrap.sh
    

  • Установите глобальный домен для экземпляра Dokku:

    dokku domains:set-global dokku<Server ID>.hostkey.in
    

  • Установите основные зависимости для окружения Dokku:

    dokku plugin:install-dependencies --core
    

Контейнеры Docker и их развертывание

Обратный прокси-сервер и управление SSL-сертификатами обрабатываются контейнерами Docker, оркестрируемыми через Docker Compose.

  • Директория: /root/nginx

  • Файл оркестрации: compose.yml

  • Образ контейнера: jonasal/nginx-certbot:latest

  • Команда развертывания:

    docker compose up -d
    
    Эта команда выполняется в директории /root/nginx.

Конфигурация контейнера

Настройка Docker Compose включает следующие спецификации:

Параметр Значение / Описание
Имя сервиса nginx
Образ jonasal/nginx-certbot:latest
Политика перезапуска 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

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

Контейнер nginx-certbot служит обратным прокси-сервером, обеспечивая завершение соединений HTTPS и управление SSL-сертификатами через Let's Encrypt.

  • Директория конфигурации прокси: /etc/nginx/user_conf.d (смонтировано из /data/nginx/user_conf.d)

  • Расположение SSL-сертификатов: /etc/letsencrypt (смонтировано из тома nginx_secrets)

  • Email сертификата: hkadm@hostkey.com

  • Внешний порт: 443

  • Внутреннее сопоставление пути: /

Настройки разрешений

Определенные директории настроены с заданным владением и правами доступа для обеспечения корректной работы сервисов:

  • Директория: /root/nginx

  • Владелец: root

  • Группа: root

  • Режим: 0755

  • Файл: /root/nginx/compose.yml

  • Владелец: root

  • Группа: root

  • Режим: 0644

Расположение файлов конфигурации и данных

  • Конфигурация домена Dokku: Управляется глобально через команду dokku domains:set-global.

  • Файл Docker Compose: /root/nginx/compose.yml

  • Директория пользовательской конфигурации Nginx: /data/nginx/user_conf.d

  • Переменные окружения Certbot: /data/nginx/nginx-certbot.env

  • Том с секретами SSL: Сопоставлен с /etc/letsencrypt внутри контейнера.

Доступные порты для подключения

  • Порт 443: Защищенный трафик HTTPS для приложения Dokku и прокси-сервера.
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×