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

Обзор развертывания DeepSeek-R1:70B на сервере

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

Перед развертыванием приложения необходимо выполнить следующие системные требования:

  • Операционная система: Ubuntu (подтверждено использованием пакетного менеджера apt).

  • Привилегии: Требуется доступ root (sudo) для установки системных пакетов, управления службами systemd и настройки Docker.

  • Зависимости:

  • curl

  • ca-certificates

  • Docker: Docker Engine должен быть установлен и запущен для поддержки контейнеризированных сервисов.

  • Железо: Для работы контейнера open-webui с указанной моделью требуется GPU с поддержкой ускорения CUDA.

FQDN финальной панели

Приложение доступно по следующему формату полностью квалифицированного доменного имени (FQDN):

  • deepseek<Server ID>.hostkey.in

Сервис работает на стандартном HTTPS-порту 443.

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

Развертывание включает установку времени выполнения Ollama, загрузку модели DeepSeek и запуск интерфейса Open WebUI.

  1. Установка Ollama: Время выполнения Ollama устанавливается с использованием официального скрипта установки.

    curl -fsSL https://ollama.com/install.sh | sh
    

  2. Загрузка модели DeepSeek: Специфическая модель deepseek-r1:70b загружается в локальный реестр Ollama.

    ollama pull deepseek-r1:70b
    

  3. Запуск Open WebUI: Веб-интерфейс развертывается в виде контейнера Docker с именем open-webui.

    docker run -d --name open-webui --network host --gpus all -v open-webui:/app/backend/data -e ENV=dev -e OLLAMA_BASE_URLS=http://127.0.0.1:11434 ghcr.io/open-webui/open-webui:cuda
    

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

Развертываются два основных сервиса Docker: прокси-стека для завершения SSL-сессий и приложение Open WebUI.

Контейнер Open WebUI

  • Имя: open-webui

  • Образ: ghcr.io/open-webui/open-webui:cuda

  • Режим сети: host

  • Политика перезапуска: always

  • Переменные окружения:

  • ENV: dev

  • OLLAMA_BASE_URLS: http://127.0.0.1:11434

  • Тома:

  • open-webui:/app/backend/data (Именованный том для сохранения данных бэкенда)

  • Запросы устройств: Включена поддержка GPU.

Стеки Nginx и Certbot

Проксирование и управление SSL реализованы с помощью конфигурации Docker Compose.

  • Расположение файла Compose: /root/nginx/compose.yml

  • Имя сервиса: nginx

  • Образ: jonasal/nginx-certbot:latest

  • Политика перезапуска: unless-stopped

  • Режим сети: host

  • Тома:

  • nginx_secrets:/etc/letsencrypt (Внешний именованный том)

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d (Bind mount для пользовательской конфигурации)

  • Окружение:

  • CERTBOT_EMAIL: hkadm@hostkey.com

  • Файл окружения: /data/nginx/nginx-certbot.env

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

Приложение использует Nginx с Certbot для управления SSL-сертификатами и обработки входящего HTTPS-трафика.

  • Провайдер SSL: Let's Encrypt через Certbot.

  • Хранилище сертификатов: /etc/letsencrypt (отображается из тома Docker nginx_secrets).

  • Каталог конфигурации: /data/nginx/user_conf.d.

  • Конфигурация Vhost Nginx:

  • Файл: /data/nginx/user_conf.d/deepseek<Server ID>.hostkey.in.conf

  • Функция: Перенаправляет HTTP в HTTPS и проксирует запросы к внутреннему сервису Open WebUI.

  • Цель прокси: http://127.0.0.1:8080

  • Конфигурация заголовков: proxy_set_header Host $host обеспечивает передачу исходного заголовка хоста на вышестоящий узел (upstream).

  • Вызов ACME:

  • Порт: 80 (HTTP)

  • Файл: /data/nginx/user_conf.d/deepseek<Server ID>.hostkey.in.http.conf

  • Корневой путь: /var/www/certbot (Внутри контейнера Nginx)

Конфигурация службы Ollama

Служба Ollama управляется как нативная служба systemd, модифицированная для поддержки внешних подключений и специфических переменных окружения.

  • Файл службы: /etc/systemd/system/ollama.service (Исходная версия сохранена в .bak)

  • Директория переопределения: /etc/systemd/system/ollama.service.d/

  • Файл переопределения: /etc/systemd/system/ollama.service.d/override.conf

  • Переменные окружения:

  • OLLAMA_HOST: 0.0.0.0

  • OLLAMA_ORIGINS: *

  • LLAMA_FLASH_ATTENTION: 1

  • Статус: Включена и работает.

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

Следующие пути содержат критическую конфигурацию и данные для развертывания:

Компонент Путь Описание
Конфигурация Nginx /data/nginx/user_conf.d/ Каталог, содержащий конфигурации блоков серверов Nginx.
Файл окружения Nginx /data/nginx/nginx-certbot.env Переменные окружения для контейнера Nginx.
Compose Nginx /root/nginx/compose.yml Файл Docker Compose для прокси-стека.
Каталог Nginx /root/nginx Рабочий каталог для развертывания прокси через Docker Compose.
Переопределение Ollama /etc/systemd/system/ollama.service.d/override.conf Переопределение systemd для настройки окружения Ollama.
Данные Open WebUI open-webui (Том) Именованный том Docker, хранящий данные приложения.

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

Система открывает следующие порты для коммуникации:

  • Порт 443: HTTPS-трафик для интерфейса Open WebUI через прокси Nginx.

  • Порт 80: HTTP-трафик для вызовов ACME и первичного перенаправления SSL.

  • Порт 8080: Внутренний трафик; Nginx проксирует этот порт в сервис Open WebUI.

  • Порт 11434: API-эндпоинт Ollama (внутренний, привязан к 127.0.0.1).

  • Порт 3000: Задан в переменных группы как internal_port, однако текущая конфигурация прокси направляет трафик напрямую на порт 8080.

Запуск, остановка и обновление

Управление службой Ollama

Управляйте службой Ollama с использованием команд systemd:

sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl status ollama

Управление контейнерами Docker

  • Open WebUI:

    sudo docker start open-webui
    sudo docker stop open-webui
    sudo docker pull ghcr.io/open-webui/open-webui:cuda
    sudo docker update open-webui
    

  • Прокси-стек Nginx: Перейдите в каталог compose и управляйте сервисами:

    cd /root/nginx
    sudo docker compose up -d
    sudo docker compose down
    

Управление контейнером Nginx

Для перезагрузки конфигурации Nginx внутри контейнера после внесения изменений:

sudo docker exec nginx-nginx-1 nginx -t
sudo docker exec nginx-nginx-1 nginx -s reload

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