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

Обзор развертывания 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 выполняется следующая команда:

docker compose up -d

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

Доступ к приложению осуществляется через обратный прокси 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.

  • Запуск или обновление:

    docker compose up -d
    

  • Остановка:

    docker compose down
    

  • Проверка конфигурации Nginx (внутри контейнера):

    docker exec nginx-nginx-1 nginx -t
    

  • Перезагрузка Nginx (внутри контейнера):

    docker exec nginx-nginx-1 nginx -s reload
    

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