Обзор развертывания CogVideo на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu версии 22.04. Требуется наличие видеокарты NVIDIA с установленными драйверами для поддержки вычислений CUDA.
Необходимы права суперпользователя (root) для выполнения операций установки и конфигурации. Приложение использует следующие порты и сервисы: - Порт 7860 для интерфейса Gradio. - Доступ к сети для загрузки репозиториев и пакетов. - Наличие Docker для запуска прокси-сервера Nginx с поддержкой SSL.
Структура файлов и каталогов¶
Основные компоненты приложения и конфигурации размещаются в следующих директориях:
/opt/CogVideo— корневая директория приложения, содержащая исходный код и виртуальное окружение Python./opt/CogVideo/env— виртуальное окружение Python с установленными зависимостями./root/nginx— директория для конфигурации Docker Compose прокси-сервера./data/nginx/user_conf.d— директория с пользовательскими конфигурационными файлами Nginx./data/nginx/nginx-certbot.env— файл переменных окружения для настройки Nginx и Certbot./etc/systemd/system/cogvideo.service— файл конфигурации системного сервиса.
Процесс установки приложения¶
Установка выполняется вручную или через скрипт, который подготавливает систему, устанавливает драйверы и зависимости.
-
Обновление системы и установка базовых пакетов:
-
Установка компилятора GCC и компонентов CUDA:
-
Настройка переменных окружения для CUDA в файле
~/.bashrc: -
Инициализация модулей ядра NVIDIA:
-
Установка Docker и модуля
nvidia-docker2: -
Клонирование репозитория CogVideo:
-
Создание и настройка виртуального окружения Python 3.10:
-
Установка зависимостей из файла
requirements.txt: -
Установка PyTorch с поддержкой CUDA 11.8:
-
Установка дополнительных пакетов:
Контейнеры Docker и их запуск¶
Для обеспечения работы прокси-сервера и получения SSL-сертификатов используется контейнер Nginx с Certbot.
Конфигурация контейнера описана в файле /root/nginx/compose.yml.
Запуск контейнера выполняется командой:
в директории/root/nginx. Контейнер использует образ jonasal/nginx-certbot:latest и работает в режиме network_mode: host.
Прокси серверы¶
Прокси-сервер Nginx настроен для перенаправления трафика на локальный порт 7860, где работает приложение CogVideo.
Конфигурация прокси-сервера находится в файле /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf.
В блоке location / добавлена директива:
Сертификаты SSL управляются через Certbot, данные хранятся в томе nginx_secrets, который монтируется в /etc/letsencrypt внутри контейнера.
Настройки прав¶
Права на файлы и директории устанавливаются следующим образом:
- Директория
/root/nginxимеет права0755, владелецroot, группаroot. - Файл
/root/nginx/compose.ymlимеет права0644, владелецroot, группаroot. - Скрипт установки
/tmp/install_script.shимеет права0755. - Сервис
cogvideoзапускается от имени пользователяroot.
Запуск, остановка и обновление¶
Управление приложением осуществляется через системный сервис cogvideo.
Запуск сервиса:
Остановка сервиса:
Перезапуск сервиса:
Проверка статуса сервиса:
Включение автозапуска при загрузке системы:
Обновление конфигурации сервиса после изменения файла /etc/systemd/system/cogvideo.service: