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

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

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

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

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

  • Наличие установленных драйверов NVIDIA и поддержки CUDA для использования графического процессора (GPU).

  • Доступ к интернету для загрузки образов Docker, моделей Ollama и SSL-сертификатов.

  • Открытые порты: 80 (HTTP) и 443 (HTTPS) для веб-интерфейса.

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

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

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

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

В процессе установки создаются и используются следующие директории:

  • /root/nginx — рабочая директория для конфигурации прокси-сервера Nginx.

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

  • /etc/systemd/system/ollama.service.d — директория для переопределения параметров сервиса Ollama.

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

Развертывание выполняется в несколько этапов:

  1. Подготовка системы: Установка необходимых системных пакетов curl и ca-certificates.

  2. Установка движка нейросетей (Ollama):

  3. Выполняется установочный скрипт через curl -fsSL https://ollama.com/install.sh | sh.

  4. Создается системный пользователь ollama.

  5. Настраивается системная служба для работы в режиме прослушивания всех интерфейсов (OLLAMA_HOST=0.0.0.0) и поддержки CORS (OLLAMA_ORIGINS=*).

  6. Загрузка модели: Автоматическая загрузка нейросети deepseek-r1:14b через команду ollama pull.

  7. Развертывание веб-интерфейса: Запуск контейнера Open WebUI с поддержкой CUDA.

  8. Настройка проксирования и SSL:

  9. Создание конфигурации Nginx для автоматического получения сертификатов Let's Encrypt через Certbot.

  10. Настройка перенаправления (proxy_pass) с порта 443 на внутренний порт приложения.

Права доступа и безопасность

  • Сервис Ollama работает под системным пользователем ollama.

  • Конфигурационные файлы Nginx имеют права доступа 0644 для чтения.

  • Директория /root/nginx имеет права 0755.

  • Веб-трафик перенаправляется с HTTP (порт 80) на HTTPS (порт 443).

Базы данных

Приложение использует встроенную базу данных внутри контейнера Open WebUI. Данные хранятся в Docker volume под названием open-webui по пути /app/backend/data.

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

В системе работают следующие контейнеры:

open-webui

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

  • Сеть: Режим host (прямое использование сетевого стека хоста).

  • Порты: Использует порт 8080 для взаимодействия с Ollama на локальном интерфейсе.

  • Тома (volumes): open-webui:/app/backend/data

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

  • ENV: dev

  • OLLAMA_BASE_URLS: http://127.0.0.1:11434

  • Особенности: Поддержка GPU (device requests) для ускорения вычислений.

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

nginx

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

  • Сеть: Режим host.

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d

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

Кастомные скрипты и дополнительные настройки

В процессе развертывания выполняются следующие действия:

  • Настройка окружения Ollama: Создается файл переопределения службы в /etc/systemd/system/ollama.service.d/override.conf для включения параметра LLAMA_FLASH_ATTENTION=1.

  • Конфигурация Nginx: Автоматически создаются файлы конфигурации виртуальных хостов в /data/nginx/user_conf.d/, обеспечивающие корректную передачу заголовка Host и проксирование запросов на локальный адрес http://127.0.0.1:8080.

Инструкция по обновлению приложения

Для обновления основного интерфейса Open WebUI необходимо выполнить следующие команды в директории с проектом (если используется Docker Compose) или обновить контейнер вручную:

docker pull ghcr.io/open-webui/open-webui:cuda
docker stop open-webui
docker rm open-webui
# После чего запустить контейнер заново с теми же параметрами

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

Тип данных Путь / Имя
Данные Open WebUI Docker Volume open-webui
Конфигурация Nginx (пользовательская) /data/nginx/user_conf.d/
Сертификаты SSL Docker Volume nginx_secrets

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

  • 443 (HTTPS): Основной порт для доступа к веб-интерфейсу через доменное имя.

  • 80 (HTTP): Используется для автоматического перенаправления на HTTPS и проверки сертификатов.

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