Обзор развертывания CogVideo на сервере¶
Предварительные требования и базовые условия¶
Развертывание приложения CogVideo требует среды Linux-сервера с определенными аппаратными и программными конфигурациями. Система должна соответствовать следующим критериям:
-
Операционная система: Ubuntu 22.04 LTS.
-
Привилегии: Для установки и конфигурации требуются права root или привилегии
sudo. -
Аппаратное обеспечение: Видеокарта NVIDIA с совместимыми драйверами для ускорения CUDA.
-
Сеть: Доступ в интернет для загрузки зависимостей и получения SSL-сертификатов.
-
Порты: Порт 443 для внешнего доступа по HTTPS и порт 7860 для внутренней коммуникации приложения.
FQDN финальной панели¶
Приложение доступно по следующему формату Полного Квалифицированного Имени Домена (FQDN) в домене hostkey.in:
cogvideo<Server ID>.hostkey.in:443
Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера.
Структура файлов и каталогов¶
Приложение и его вспомогательные компоненты организованы в следующей структуре каталогов:
-
/opt/CogVideo: Основной каталог приложения, содержащий исходный код, клонированный из репозитория. -
/opt/CogVideo/env: Каталог виртуального окружения Python. -
/root/nginx: Каталог, содержащий конфигурацию Docker Compose для прокси-сервера Nginx. -
/data/nginx/user_conf.d: Каталог, хранящий пользовательские файлы конфигурации Nginx для конкретного домена. -
/data/nginx/nginx-certbot.env: Файл окружения для конфигурации Nginx и Certbot. -
/etc/systemd/system/cogvideo.service: Файл юнита службы systemd для управления приложением.
Процесс установки приложения¶
Приложение CogVideo устанавливается непосредственно в операционную систему хоста с использованием комбинации системных пакетов, виртуальных окружений Python и служб systemd. Установка включает следующие шаги:
-
Обновление системы: Система обновляется и обновляется до последней версии с помощью
apt. -
Ядро и драйверы: Устанавливается пакет
linux-generic-hwe-22.04, за которым следуют установка GCC, набора инструментов CUDA и драйверов NVIDIA. -
Настройка окружения: Устанавливаются Python 3.10 и
python3.10-venv. Виртуальное окружение создается в/opt/CogVideo/env. -
Зависимости: В виртуальном окружении устанавливаются необходимые пакеты Python, включая:
-
torch==2.0.1+cu118 -
torchvision==0.15.2+cu118 -
torchaudio==2.0.2+cu118 -
moviepy==1.0.3 -
Пакеты, перечисленные в
/opt/CogVideo/requirements.txt.
-
-
Создание службы: Создается файл службы systemd для управления жизненным циклом приложения.
Контейнеры Docker и их развертывание¶
Обратный прокси и управление SSL-сертификатами осуществляются через контейнеры Docker с использованием Docker Compose. Развертывание использует следующую конфигурацию:
-
Расположение файла Compose:
/root/nginx/compose.yml. -
Образ:
jonasal/nginx-certbot:latest. -
Режим сети: Host.
-
Томы (Volumes):
-
nginx_secrets(внешний) монтируется в/etc/letsencrypt. -
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.d. -
Выполнение: Контейнер запускается с помощью команды
docker compose up -dв каталоге/root/nginx.
Прокси-серверы¶
Nginx настроен как обратный прокси для обработки входящего трафика и управления SSL-сертификатами через Certbot.
-
Внутренняя цель прокси: Трафик перенаправляется на
http://127.0.0.1:7860. -
Файл конфигурации: Конфигурация конкретного домена находится по адресу
/data/nginx/user_conf.d/cogvideo<Server ID>.hostkey.in.conf. -
Управление SSL: Certbot интегрирован в контейнер Nginx для автоматического получения и продления SSL-сертификатов.
-
Электронная почта: Уведомления о сертификатах отправляются на
hkadm@hostkey.com.
Настройки разрешений¶
Применяются следующие настройки разрешений для обеспечения правильного доступа и безопасности:
-
/root/nginx: Владелецroot:rootс правами0755. -
/root/nginx/compose.yml: Владелецroot:rootс правами0644. -
/opt/CogVideo: Каталог приложения, доступный пользователюroot, как определено в службе systemd. -
/etc/systemd/system/cogvideo.service: Файл системной службы, принадлежащий пользователюroot.
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и места хранения данных следующие:
-
Nginx Compose:
/root/nginx/compose.yml. -
Окружение Nginx:
/data/nginx/nginx-certbot.env. -
Конфигурация домена:
/data/nginx/user_conf.d/cogvideo<Server ID>.hostkey.in.conf. -
Исходный код приложения:
/opt/CogVideo. -
Виртуальное окружение Python:
/opt/CogVideo/env. -
Служба systemd:
/etc/systemd/system/cogvideo.service.
Доступные порты для подключения¶
Для приложения настроены следующие порты:
-
Порт 443: Внешний доступ по HTTPS через прокси Nginx.
-
Порт 7860: Внутренний порт, используемый приложением CogVideo (интерфейс Gradio).
Запуск, остановка и обновление¶
Приложение CogVideo управляется как служба systemd. Используйте следующие команды для управления службой:
-
Запустить службу:
-
Остановить службу:
-
Перезапустить службу:
-
Включить службу при загрузке:
-
Проверить статус службы:
Для обновления приложения исходный код в /opt/CogVideo должен быть обновлен вручную, после чего необходимо перезапустить службу. Контейнер прокси Docker можно обновить, выполнив команды docker compose pull и docker compose up -d в каталоге /root/nginx.