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

Обзор развертывания 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. Установка включает следующие шаги:

  1. Обновление системы: Система обновляется и обновляется до последней версии с помощью apt.

  2. Ядро и драйверы: Устанавливается пакет linux-generic-hwe-22.04, за которым следуют установка GCC, набора инструментов CUDA и драйверов NVIDIA.

  3. Настройка окружения: Устанавливаются Python 3.10 и python3.10-venv. Виртуальное окружение создается в /opt/CogVideo/env.

  4. Зависимости: В виртуальном окружении устанавливаются необходимые пакеты Python, включая:

    • torch==2.0.1+cu118

    • torchvision==0.15.2+cu118

    • torchaudio==2.0.2+cu118

    • moviepy==1.0.3

    • Пакеты, перечисленные в /opt/CogVideo/requirements.txt.

  5. Создание службы: Создается файл службы 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. Используйте следующие команды для управления службой:

  • Запустить службу:

    systemctl start cogvideo
    

  • Остановить службу:

    systemctl stop cogvideo
    

  • Перезапустить службу:

    systemctl restart cogvideo
    

  • Включить службу при загрузке:

    systemctl enable cogvideo
    

  • Проверить статус службы:

    systemctl status cogvideo
    

Для обновления приложения исходный код в /opt/CogVideo должен быть обновлен вручную, после чего необходимо перезапустить службу. Контейнер прокси Docker можно обновить, выполнив команды docker compose pull и docker compose up -d в каталоге /root/nginx.

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