Обзор развертывания DeepSeek-R1:14B на сервере¶
Предварительные требования и базовые условия¶
-
Операционная система: Сервер на базе Linux.
-
Права доступа: Для конфигурирования и управления сервисами требуются права root или sudo.
-
Домен:
hostkey.in. -
Порты:
-
Порт
80: HTTP-трафик и валидация запроса ACME. -
Порт
443: HTTPS-трафик для безопасного доступа. -
Порт
3000: Порт внутреннего сервиса приложения. -
Порт
8080: Порт целевого внутреннего прокси.
-
Доступ к панели управления¶
Приложение доступно по следующему формату полностью квалифицированного доменного имени (FQDN):
-
FQDN:
deepseek<Server ID>.hostkey.in -
Порт:
443(HTTPS)
Структура файлов и директорий¶
Развертывание использует следующую структуру директорий для конфигурации и данных:
-
Конфигурация Nginx:
/data/nginx/user_conf.d/- Содержит специфичные блоки сервера (
server block) для приложения.
- Содержит специфичные блоки сервера (
-
Окружение Certbot для Nginx:
/data/nginx/nginx-certbot.env -
Конфигурация Docker Compose:
/root/nginx/compose.yml -
Секреты Docker (Docker Secrets): Подключены извне как
nginx_secrets(отображаются в/etc/letsencryptвнутри контейнера).
Процесс установки приложения¶
Приложение развертывается с использованием контейнеров Docker. Установка включает подготовку директории конфигурации и выполнение стека Docker Compose:
-
Образ контейнера:
jonasal/nginx-certbot:latest -
Скрипт конфигурации: Основная оркестрация осуществляется через файл
compose.yml, расположенный по пути/root/nginx/compose.yml. -
Настройка директории: Директория
/root/nginxсоздается для размещения файла Docker Compose.
Контейнеры Docker и их развертывание¶
Система запускает единый стек контейнеров, управляемый Docker Compose.
Конфигурация контейнера¶
-
Имя сервиса:
nginx -
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Переменные окружения:
CERTBOT_EMAIL: Значение установлено какhkadm@hostkey.com
Монтирование томов (Volume Mounts)¶
Контейнер использует следующие отображения томов:
-
nginx_secrets(внешний) ->/etc/letsencrypt -
/data/nginx/user_conf.d->/etc/nginx/user_conf.d
Команда развертывания¶
Для развертывания или обновления стека контейнеров из директории /root/nginx выполняется следующая команда:
Прокси-серверы¶
Доступ к приложению осуществляется через обратный прокси Nginx с завершением SSL-соединения.
Файлы конфигурации Nginx¶
-
Конфигурация HTTPS:
/data/nginx/user_conf.d/deepseek<Server ID>.hostkey.in.conf-
Обрабатывает HTTPS-трафик на порту 443.
-
Направлен на пересылку запросов на
http://127.0.0.1:8080. -
Включает
proxy_set_header Host $hostдля передачи исходного заголовка Host.
-
-
Конфигурация HTTP:
/data/nginx/user_conf.d/deepseek<Server ID>.hostkey.in.http.conf-
Слушает порт 80.
-
Перенаправляет весь трафик на HTTPS.
-
Обрабатывает задачи ACME для выдачи сертификатов по пути
/.well-known/acme-challenge/.
-
Управление SSL и сертификатами¶
-
Центр сертификации (CA): Let's Encrypt.
-
Метод валидации: HTTP-01 задача, обслуживаемая через контейнер Nginx.
-
Путь к веб-корню (Webroot Path):
/var/www/certbot(внутри контейнера).
Настройки прав доступа¶
Права доступа к файлам настроены следующим образом для обеспечения безопасности и правильного доступа:
-
Директория:
/root/nginx-
Владелец:
root -
Группа:
root -
Режим:
0755
-
-
Файл:
/root/nginx/compose.yml-
Владелец:
root -
Группа:
root -
Режим:
0644
-
-
Файлы конфигурации Nginx:
/data/nginx/user_conf.d/*.conf- Режим:
0644
- Режим:
Запуск, остановка и обновление¶
Управление сервисом выполняется с помощью команд Docker Compose внутри директории /root/nginx.
-
Запуск или обновление:
-
Остановка:
-
Проверка конфигурации Nginx (внутри контейнера):
-
Перезагрузка Nginx (внутри контейнера):