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

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

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

Для корректной работы приложения требуются следующие условия:

  • Операционная система с установленным Docker.

  • Доступ к управлению портами (80 и 443 должны быть открыты).

  • Наличие прав суперпользователя (root) для создания директорий и управления контейнерами.

FDQN итоговой панели на домене hostkey.in

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

Параметр Значение
Префикс nginx-certbot
Домен hostkey.in
Полный шаблон nginx-certbot{Server_ID_from_Invapi}.hostkey.in

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

Все основные данные и конфигурации сосредоточены в директории /data/nginx/:

  • /data/nginx/docker-compose.yml — файл описания контейнеров Docker Compose.

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

  • /data/nginx/nginx-certbot.env — файл с переменными окружения.

  • /data/nginx/user_conf.d/{prefix}{server_id}.{zone}.conf — основной файл конфигурации сервера.

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

Развертывание выполняется путем автоматического создания структуры директорий, генерации конфигурационных файлов на основе шаблонов и запуска контейнера через docker compose. В процессе создается Docker-volume nginx_secrets для хранения SSL-сертификатов.

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

В системе развернут один основной контейнер:

Параметр Значение
Имя образа jonasal/nginx-certbot:latest
Порты (host:container) 80:80, 443:443
Тома (volumes) nginx_secrets:/etc/letsencrypt
./user_conf.d:/etc/nginx/user_conf.d
Переменные окружения CERTBOT_EMAIL=hkadm@hostkey.com
Политика перезапуска unless-stopped

Обновление приложения

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

docker compose pull && docker compose up -d
которая загружает новые версии образов и перезапускает контейнеры.

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

Для обеспечения безопасности установлены следующие права на директории и файлы:

  • Директория /data/nginx/ и вложенные папки: владелец root, группа root, режим доступа 0640.

  • Конфигурационные файлы (docker-compose.yml, .conf, .env): владелец root, группа root, режим доступа 0644.

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

  • Конфигурация Nginx: /data/nginx/user_conf.d/

  • Данные сертификатов (внутри Docker volume): /etc/letsencrypt в контейнере.

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

Порт Протокол Назначение
80 TCP HTTP (для проверки Let's Encrypt)
443 TCP HTTPS (основной трафик)
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×