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

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

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

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

  1. Подготовка системы: Обновление пакетов ОС, установка компилятора gcc и драйверов NVIDIA через установку cuda-toolkit.

  2. Настройка окружения CUDA: Добавление путей PATH и LD_LIBRARY_PATH в конфигурационный файл пользователя для обеспечения доступа к библиотекам CUDA.

  3. Установка Docker: Установка среды выполнения контейнеров и расширения nvidia-docker2 для поддержки GPU в контейнерах.

  4. Развертывание репозитория: Клонирование исходного кода проекта из GitHub в директорию /opt/CogVideo.

  5. Настройка Python:

  6. Установка интерпретатора python3.10 и модуля venv.

  7. Создание виртуального окружения в /opt/CogVideo/env.

  8. Установка зависимостей из файла requirements.txt.

  9. Установка специализированных библиотек PyTorch с поддержкой CUDA (torch==2.0.1+cu118, torchvision==0.15.2+cu118, torchaudio==2.0.2+cu118) и библиотеки moviepy.

  10. Настройка службы: Создание системной службы для автоматического запуска приложения через 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.

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

Для обновления основного приложения необходимо:

  1. Перейти в директорию /opt/CogVideo.

  2. Выполнить обновление кода (например, через git pull).

  3. Обновить зависимости в виртуальном окружении:

    /opt/CogVideo/env/bin/pip install -r /opt/CogVideo/requirements.txt
    

  4. Перезапустить службу приложения:

    systemctl restart cogvideo
    

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

  • Код приложения: /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

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