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

Обзор развертывания ComfyUI на сервере

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

  • Операционная система: Дистрибутив Linux на базе Debian.

  • Привилегии: Для установки системных пакетов, изменения файла hosts и управления службами systemd требуется доступ root.

  • Порты: Приложение слушает порт 8188 во внутренней сети. Внешний доступ маршрутизируется через порт 443 с использованием обратного прокси-сервера.

  • Домен: Развертывание использует доменную зону hostkey.in.

FQDN итоговой панели

Полный доступный адрес для панели управления ComfyUI: comfyuiServer ID.hostkey.in:443

Примечание: Замените Server ID на конкретный идентификатор, назначенный экземпляру хоста.

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

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

Путь Описание
/root/ComfyUI Главная директория приложения, клонированная из репозитория.
/root/ComfyUI/user/default/workflows Место хранения JSON-файлов рабочих процессов (workflows).
/root/ComfyUI/user/default/comfy.settings.json Файл конфигурации приложения.
/root/nginx Директория с конфигурациями Docker Compose для прокси-сервера.
/root/nginx/compose.yml Определение Docker Compose для Nginx и Certbot.
/data/nginx/nginx-certbot.env Файл окружения для конфигурации прокси-сервера.
/data/nginx/user_conf.d Директория для пользовательских конфигураций Nginx.
/etc/letsencrypt Привязка тома для SSL-сертификатов, управляемых Certbot.
/etc/systemd/system/comfyui.service Файл юнита systemd для службы ComfyUI.

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

Процесс установки включает следующие этапы:

  1. Обновление системы: Пакеты APT обновляются и обновляются до последних версий.

  2. Клонирование репозитория: Исходный код ComfyUI клонируется в /root/ComfyUI из https://github.com/comfyanonymous/ComfyUI.git.

  3. Установка зависимостей:

    • Python pip (python3-pip) устанавливается через APT.

    • PyTorch устанавливается через pip с использованием URL индекса CUDA 12.6:

      /usr/bin/pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu126
      

    • Требования приложения устанавливаются из локального файла requirements.txt:

      /usr/bin/pip install -r requirements.txt
      

  4. Конфигурация Hosts: IP-адрес 5.180.174.199 добавляется в /etc/hosts в качестве алиаса для huggingface.co для оптимизации загрузки моделей.

  5. Развертывание модели:

    • Выполняется проверка наличия модели Flux в /root/ComfyUI/models/checkpoints/flux1-dev-fp8.safetensors.

    • Если модель отсутствует или неполна, она загружается с https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors с возможностью возобновления загрузки.

  6. Настройка рабочих процессов (Workflows):

    • Создается каталог /root/ComfyUI/user/default/workflows с правами доступа 0755.

    • Файл конфигурации рабочего процесса flux1-dev-fp8.json размещается в этой директории.

  7. Конфигурация: Настраивается файл /root/ComfyUI/user/default/comfy.settings.json.

  8. Создание службы: Юнит службы systemd comfyui.service создается в /etc/systemd/system/.

  9. Активация службы: Служба включается и запускается немедленно.

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

  • Межсетевой экран (Firewall): Внешний трафик обрабатывается контейнером Nginx, который управляет портом 443. Прямой доступ к порту 8188 ограничен внутренним использованием, если явно не настроено иное.

  • Пользователи: Служба ComfyUI работает с правами root, как определено в файле юнита systemd.

  • Ограничения: Доступ к репозиторию Hugging Face маршрутизируется через измененную запись в /etc/hosts для обеспечения надежной связности при загрузке моделей.

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

Развертывание использует Docker для реализации обратного прокси-сервера и управления SSL.

  1. Установка Docker: Движок Docker устанавливается и настраивается на хосте.

  2. Конфигурация прокси:

    • Создается каталог /root/nginx с владением root.

    • В /root/nginx/ генерируется файл compose.yml.

  3. Запуск контейнеров: В директории /root/nginx выполняется команда docker compose up -d для запуска служб.

Детали служб Docker

Файл compose.yml определяет следующую службу:

  • Имя службы: nginx

  • Образ: jonasal/nginx-certbot:latest

  • Политика перезапуска: unless-stopped

  • Режим сети: host

  • Окружение:

    • CERTBOT_EMAIL: Установлено значение hkadm@hostkey.com
  • Томы (Volumes):

    • nginx_secrets смонтирован в /etc/letsencrypt (SSL-сертификаты).

    • /data/nginx/user_conf.d смонтирован в /etc/nginx/user_conf.d (конфигурации Nginx).

  • Зависимости: Зависит от ролей docker-managed-install и docker-certbot-proxy для настройки окружения.

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

Обратный прокси-сервер настроен с использованием образа Docker jonasal/nginx-certbot для обработки HTTPS-трафика и управления SSL-сертификатами.

  • Nginx: Выступает в роли обратного прокси-сервера, маршрутизируя внешние запросы с порта 443 на внутренний порт ComfyUI 8188.

  • Certbot: Интегрирован внутри контейнера Docker для автоматического получения и продления SSL-сертификатов через Let's Encrypt.

  • SSL-сертификаты: Хранятся во внешнем томе nginx_secrets, смонтированном в /etc/letsencrypt.

  • Конфигурация: Пользовательские конфигурации Nginx хранятся в /data/nginx/user_conf.d и загружаются контейнером.

Настройки прав доступа

Следующие права доступа установлены для развернутых файлов и директорий:

Файл или директория Права доступа Владелец
/root/ComfyUI/user/default/workflows 0755 root
/root/ComfyUI/user/default/workflows/flux1-dev-fp8.json 0644 root
/root/ComfyUI/user/default/comfy.settings.json 0644 root
/etc/systemd/system/comfyui.service 0644 root
/root/nginx 0644 root
/root/nginx/compose.yml 0644 root

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

  • Исходный код приложения: /root/ComfyUI

  • Рабочие процессы пользователя: /root/ComfyUI/user/default/workflows

  • Настройки приложения: /root/ComfyUI/user/default/comfy.settings.json

  • Служба systemd: /etc/systemd/system/comfyui.service

  • Файл compose для прокси: /root/nginx/compose.yml

  • Окружение прокси: /data/nginx/nginx-certbot.env

  • Запись Hosts: /etc/hosts (содержит 5.180.174.199 huggingface.co)

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

Развертывание открывает следующие порты:

Порт Протокол Описание
443 HTTPS Точка внешнего доступа через обратный прокси-сервер Nginx.
8188 TCP Внутренний порт, используемый ComfyUI; доступен через прокси.

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

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

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

    systemctl start comfyui
    

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

    systemctl stop comfyui
    

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

    systemctl restart comfyui
    

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

    systemctl enable comfyui
    

  • Проверить статус:

    systemctl status comfyui
    

Для контейнера прокси-сервера Nginx управление осуществляется через Docker Compose в директории /root/nginx:

  • Запустить/перезапустить контейнеры:
    cd /root/nginx
    docker compose up -d
    
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×