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

Обзор развертывания 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.

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

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

  1. Подготовка системы: Обновление пакетов apt, установка компилятора gcc и библиотек ядра.

  2. Установка драйверов NVIDIA и CUDA:

  3. Установка утилит nvidia-utils-550-server.

  4. Добавление репозитория CUDA.

  5. Установка пакетов cuda-toolkit и nvidia-cuda-toolkit.

  6. Настройка переменных окружения PATH и LD_LIBRARY_PATH в профиле пользователя.

  7. Настройка среды Python:

  8. Установка Miniconda в директорию /opt/miniconda3.

  9. Создание виртуального окружения hallo с версией python=3.10.

  10. Установка зависимостей через pip, включая gradio и huggingface-hub.

  11. Подготовка данных:

  12. Клонирование репозитория hallo3 из GitHub в /opt/hallo3.

  13. Загрузка предобученных моделей с Hugging Face в директорию /opt/hallo3/pretrained_models.

  14. Установка Docker и прокси:

  15. Установка Docker и интеграции nvidia-docker2 для поддержки GPU в контейнерах.

  16. Развертывание 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.

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

Для обновления основного приложения необходимо выполнить следующие действия:

  1. Перейти в директорию приложения: cd /opt/hallo3.

  2. Обновить исходный код (если требуется): git pull origin main.

  3. Перезапустить процесс выполнения Python-скрипта для применения изменений.

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

  • Веса моделей: /opt/hallo3/pretrained_models

  • Конфигурация Nginx: /root/nginx/compose.yml и файлы в /data/nginx/user_conf.d/

  • Среда Python: /opt/miniconda3/envs/hallo

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

  • 443 (HTTPS) — основной порт доступа через домен.

  • 7860 (HTTP) — локальный порт приложения.

Запуск, остановка приложения

Запуск приложения: Для запуска основного процесса используется команда:

source /opt/miniconda3/etc/profile.d/conda.sh
conda activate hallo
python hallo3/app.py

Управление прокси-сервером (Nginx): Переход в директорию с конфигурацией и управление контейнерами:

cd /root/nginx
docker compose up -d # Запуск
docker compose down # Остановка

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