Обзор развертывания Hallo3 на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы и настройки доступа:
-
Операционная система: Ubuntu (рекомендуемая версия 22.04).
-
Права доступа: Права суперпользователя (
sudo) для установки системных пакетов и драйверов. -
Порты:
-
7860— внутренний порт приложения (локальный доступ). -
443— внешний порт для HTTPS трафика.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | hallo |
| Домен | hostkey.in |
| Полный шаблон | hallo{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/opt/hallo3— рабочая директория приложения, исходный код и предобученные модели. -
/opt/miniconda3— среда управления пакетами Python (Miniconda). -
/root/nginx— конфигурация прокси-сервера Nginx. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/data/nginx/nginx-certbot.env— переменные окружения для SSL.
Процесс установки приложения¶
Развертывание приложения выполняется в несколько этапов:
-
Подготовка системы: Обновление пакетов
apt, установка компилятораgccи библиотек ядра. -
Установка драйверов NVIDIA и CUDA:
-
Установка утилит
nvidia-utils-550-server. -
Добавление репозитория CUDA.
-
Установка пакетов
cuda-toolkitиnvidia-cuda-toolkit. -
Настройка переменных окружения
PATHиLD_LIBRARY_PATHв профиле пользователя. -
Настройка среды Python:
-
Установка
Minicondaв директорию/opt/miniconda3. -
Создание виртуального окружения
halloс версиейpython=3.10. -
Установка зависимостей через
pip, включаяgradioиhuggingface-hub. -
Подготовка данных:
-
Клонирование репозитория
hallo3из GitHub в/opt/hallo3. -
Загрузка предобученных моделей с Hugging Face в директорию
/opt/hallo3/pretrained_models. -
Установка Docker и прокси:
-
Установка Docker и интеграции
nvidia-docker2для поддержки GPU в контейнерах. -
Развертывание Nginx через Docker Compose для обеспечения SSL-сертификатов.
Права доступа и безопасность¶
-
Для работы с системными компонентами требуются права
root. -
Конфигурационные файлы Nginx имеют права доступа
0644(чтение владельцем). -
Директория
/root/nginxимеет права0755. -
Установлен драйвер NVIDIA для обеспечения аппаратного ускорения.
Базы данных¶
В данной конфигурации внешние базы данных не используются; приложение работает с локальными файлами и весами моделей, загруженными в /opt/hallo3/pretrained_models.
Контейнеры Docker и их запуск¶
Для работы веб-интерфейса через защищенное соединение используется следующий контейнер:
| Имя образа | Порты (внутри) | Тома (volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|
jonasal/nginx-certbot:latest | 80, 443 | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d | CERTBOT_EMAIL=hkadm@hostkey.com | unless-stopped |
Примечание: Контейнер Nginx работает в режиме network_mode: host для прямого управления портами.
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Установочный скрипт: Выполняет настройку драйверов NVIDIA, установку CUDA и интеграцию с Docker.
-
Загрузка моделей: Автоматическое скачивание весов
fudan-generative-ai/hallo3через интерфейс командной строки Hugging Face. -
Настройка проксирования: В конфигурационные файлы Nginx автоматически вносится правило
proxy_pass, перенаправляющее трафик с порта443на локальный порт приложенияhttp://127.0.0.1:7860.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Перейти в директорию приложения:
cd /opt/hallo3. -
Обновить исходный код (если требуется):
git pull origin main. -
Перезапустить процесс выполнения Python-скрипта для применения изменений.
Расположение конфигурационных файлов и данных¶
-
Веса моделей:
/opt/hallo3/pretrained_models -
Конфигурация Nginx:
/root/nginx/compose.ymlи файлы в/data/nginx/user_conf.d/ -
Среда Python:
/opt/miniconda3/envs/hallo
Доступные порты для подключения¶
-
443(HTTPS) — основной порт доступа через домен. -
7860(HTTP) — локальный порт приложения.
Запуск, остановка приложения¶
Запуск приложения: Для запуска основного процесса используется команда:
Управление прокси-сервером (Nginx): Переход в директорию с конфигурацией и управление контейнерами: