Обзор развертывания CogVideo на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu (рекомендуется версия 22.04).
-
Аппаратное обеспечение: Наличие графического процессора NVIDIA для использования CUDA.
-
Права доступа: Права суперпользователя (
root) или доступ кsudo. -
Порты:
-
Внутренний порт приложения:
7860(HTTP). -
Внешний порт:
443(HTTPS).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | cogvideo |
| Домен | hostkey.in |
| Полный шаблон | cogvideo{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/opt/CogVideo— рабочая директория приложения и виртуального окружения Python. -
/root/nginx— конфигурационные файлы Docker Compose для прокси-сервера. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/etc/systemd/system/cogvideo.service— файл службы системного управления (systemd).
Процесс установки приложения¶
Развертывание приложения выполняется в несколько этапов:
-
Подготовка системы: Обновление пакетов ОС, установка компилятора
gccи драйверов NVIDIA через установкуcuda-toolkit. -
Настройка окружения CUDA: Добавление путей
PATHиLD_LIBRARY_PATHв конфигурационный файл пользователя для обеспечения доступа к библиотекам CUDA. -
Установка Docker: Установка среды выполнения контейнеров и расширения
nvidia-docker2для поддержки GPU в контейнерах. -
Развертывание репозитория: Клонирование исходного кода проекта из GitHub в директорию
/opt/CogVideo. -
Настройка Python:
-
Установка интерпретатора
python3.10и модуляvenv. -
Создание виртуального окружения в
/opt/CogVideo/env. -
Установка зависимостей из файла
requirements.txt. -
Установка специализированных библиотек PyTorch с поддержкой CUDA (
torch==2.0.1+cu118,torchvision==0.15.2+cu118,torchaudio==2.0.2+cu118) и библиотекиmoviepy. -
Настройка службы: Создание системной службы для автоматического запуска приложения через
systemd.
Права доступа и безопасность¶
-
Приложение работает от имени пользователя
rootв рамках системной службы. -
Для работы прокси-сервера используется изолированный том Docker
nginx_secretsдля хранения SSL-сертификатов. -
Конфигурационные файлы Nginx имеют права доступа, позволяющие чтение только владельцу и группе
root.
Базы данных¶
В данной конфигурации внешняя база данных не требуется; приложение использует локальные ресурсы сервера.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-интерфейса через HTTPS используется контейнер прокси-сервера:
Nginx с поддержкой SSL (Certbot)
-
Образ:
jonasal/nginx-certbot:latest -
Порты: Работает в режиме
network_mode: host. -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— для хранения сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— для пользовательских настроек проксирования. -
Переменные окружения: Указан контактный email для управления сертификатами (
CERTBOT_EMAIL). -
Политика перезапуска:
unless-stopped.
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняется установочный скрипт /tmp/install_script.sh, который выполняет следующие действия:
-
Обновление системных пакетов через
apt upgrade. -
Установка специфических ядер (HWE) для Ubuntu 22.04.
-
Интеграция репозиториев NVIDIA и установка
cuda-toolkit. -
Удаление модуля
nouveauдля корректной загрузки драйверов NVIDIA.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо:
-
Перейти в директорию
/opt/CogVideo. -
Выполнить обновление кода (например, через
git pull). -
Обновить зависимости в виртуальном окружении:
-
Перезапустить службу приложения:
Расположение конфигурационных файлов и данных¶
-
Код приложения:
/opt/CogVideo -
Виртуальное окружение Python:
/opt/CogVideo/env -
Конфигурация Nginx (Docker):
/root/nginx/compose.yml -
Сертификаты SSL: Внутри тома
nginx_secrets.
Доступные порты для подключения¶
-
443 (HTTPS) — основной порт для доступа к интерфейсу через доменное имя.
-
7860 (HTTP) — внутренний порт, используемый прокси-сервером для связи с приложением.
Запуск, остановка приложения¶
Управление основным сервисом осуществляется через systemctl:
-
Запуск:
systemctl start cogvideo -
Остановка:
systemctl stop cogvideo -
Проверка статуса:
systemctl status cogvideo -
Включение автозапуска при загрузке системы:
systemctl enable cogvideo