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

Обзор развертывания CogVideoX-5b на сервере

Предварительные требования и базовые условия

Для успешного развертывания приложения CogVideoX-5b сервер должен соответствовать следующим требованиям:

  • Операционная система: Ubuntu 22.04 LTS.

  • Привилегии: Для установки и конфигурации требуется доступ root.

  • Оборудование: NVIDIA GPU с поддержкой CUDA toolkit.

  • Сеть: Доступ к общедоступному интернету для загрузки репозиториев и зависимостей.

  • Порты: Порт 443 (HTTPS) для внешнего доступа и порт 7860 для внутренней коммуникации сервисов.

FQDN конечной панели

Приложение доступно через следующий формат полного доменного имени (FQDN):

  • cogvideo<Server ID>.hostkey.in:443

Структура файлов и каталогов

Приложение и файлы его конфигурации организованы в следующих каталогах:

  • /opt/CogVideo: Основной каталог, содержащий исходный код приложения, виртуальное окружение Python и скрипты инференса.

  • /opt/CogVideo/env: Каталог виртуального окружения Python, содержащий установленные пакеты.

  • /root/nginx: Каталог, содержащий конфигурацию Docker Compose для обратного прокси-сервера.

  • /root/nginx/compose.yml: Файл Docker Compose для сервиса Nginx и Certbot.

  • /data/nginx/user_conf.d: Каталог, содержащий файлы конфигурации для конкретного сайта в Nginx.

  • /etc/systemd/system/cogvideo.service: Файл юнита сервиса Systemd.

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

Приложение развертывается с помощью специального скрипта установки и виртуального окружения Python. Процесс включает следующие шаги:

  1. Обновление пакетов системы и установка стека Linux Hardware Enablement (HWE) для Ubuntu 22.04.

  2. Установка компилятора GCC и набора инструментов NVIDIA CUDA.

  3. Конфигурация переменных окружения для CUDA в файле ~/.bashrc.

  4. Загрузка модулей ядра NVIDIA и проверка доступа к GPU.

  5. Установка Docker и NVIDIA-Docker2 для поддержки GPU внутри контейнеров.

  6. Клонирование репозитория CogVideo с https://github.com/THUDM/CogVideo.git в /opt/CogVideo.

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

  8. Установка зависимостей Python, включая PyTorch с поддержкой CUDA 11.8 и moviepy.

Права доступа и безопасность

Безопасность и контроль доступа управляются следующими механизмами:

  • Приложение работает от имени пользователя root через сервис Systemd.

  • Внешний доступ ограничен настроенным FQDN через HTTPS (порт 443).

  • Внутренний трафик маршрутизируется от обратного прокси-сервера к приложению через localhost на порту 7860.

Контейнеры Docker и их развертывание

Для запуска обратного прокси-сервера Nginx и управления SSL-сертификатами используется контейнер Docker. Развертывание управляется через docker compose в каталоге /root/nginx.

  • Image: jonasal/nginx-certbot:latest

  • Service Name: nginx

  • Restart Policy: unless-stopped

  • Network Mode: host

  • Volumes:

  • nginx_secrets (external): Монтируется в /etc/letsencrypt для хранения сертификатов.

  • /data/nginx/user_conf.d: Монтируется в /etc/nginx/user_conf.d для пользовательских конфигураций сайтов.

  • Environment:

  • CERTBOT_EMAIL: Установлен в значение hkadm@hostkey.com.

Прокси-серверы

Обратный прокси-сервер Nginx отвечает за завершение SSL-соединений и передачу трафика приложению.

  • SSL/Certificates: Автоматически управляются Certbot через контейнер Docker nginx-certbot.

  • Configuration Location: /data/nginx/user_conf.d/cogvideo<Server ID>.hostkey.in.conf.

  • Proxy Pass: Настроен для пересылки запросов на http://127.0.0.1:7860.

  • External Path: Путь / отображается в корень внутреннего приложения.

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

Ключевые файлы конфигурации и каталоги данных находятся в следующих местах:

  • /etc/systemd/system/cogvideo.service: Определение сервиса Systemd.

  • /root/nginx/compose.yml: Конфигурация Docker Compose для прокси-сервера.

  • /data/nginx/nginx-certbot.env: Переменные окружения для контейнера Nginx.

  • /opt/CogVideo/requirements.txt: Зависимости пакетов Python.

  • /opt/CogVideo/inference/gradio_composite_demo/cogstudio.py: Основной скрипт точки входа.

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

В развертывании используются следующие порты:

  • Порт 443: Трафик HTTPS для внешнего доступа пользователей.

  • Порт 7860: Внутренний порт коммуникации для интерфейса Gradio, используемого приложением CogVideoX-5b.

Запуск, остановка и обновление

Приложение управляется как сервис Systemd с именем cogvideo. Используйте следующие команды для управления сервисом:

  • Запуск сервиса: systemctl start cogvideo

  • Остановка сервиса: systemctl stop cogvideo

  • Перезапуск сервиса: systemctl restart cogvideo

  • Включение при загрузке: systemctl enable cogvideo

  • Проверка статуса: systemctl status cogvideo

Чтобы обновить конфигурацию прокси-сервера Nginx или сертификаты, выполните следующую команду из каталога /root/nginx: docker compose up -d

Чтобы перезагрузить Systemd после изменения файла сервиса: systemctl daemon-reload

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