Обзор развертывания 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.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка системы: Установка необходимых системных пакетов
curlиca-certificates. -
Установка движка нейросетей (Ollama):
-
Выполняется установочный скрипт через
curl -fsSL https://ollama.com/install.sh | sh. -
Создается системный пользователь
ollama. -
Настраивается системная служба для работы в режиме прослушивания всех интерфейсов (
OLLAMA_HOST=0.0.0.0) и поддержки CORS (OLLAMA_ORIGINS=*). -
Загрузка модели: Автоматическая загрузка нейросети
deepseek-r1:14bчерез командуollama pull. -
Развертывание веб-интерфейса: Запуск контейнера Open WebUI с поддержкой CUDA.
-
Настройка проксирования и SSL:
-
Создание конфигурации Nginx для автоматического получения сертификатов Let's Encrypt через Certbot.
-
Настройка перенаправления (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 и проверки сертификатов.