Обзор развертывания ComfyUI на сервере¶
Предварительные требования и базовые условия¶
Для развертывания ComfyUI требуется серверная среда на базе Linux со следующими характеристиками:
-
Операционная система: Дистрибутив на базе Debian (например, Ubuntu, Debian).
-
Привилегии: Для установки пакетов, управления службами и настройки системы требуются права root или привилегии
sudo. -
Сеть: Сервер должен иметь исходящий доступ в интернет для клонирования репозиториев, загрузки пакетов Python и получения моделей ИИ.
-
Порты:
-
Порт
8188: Внутренний порт, используемый приложением ComfyUI. -
Порт
443: Внешний порт, используемый для безопасного доступа по HTTPS через прокси Nginx.
FQDN конечной панели¶
Приложение доступно по следующему формату Полного Квалифицированного Доменного Имени (FQDN) в домене hostkey.in:
-
Формат:
comfyui<Server ID>.hostkey.in:443 -
Зона:
hostkey.in -
Префикс:
comfyui -
Внешний путь:
/
Структура файлов и каталогов¶
Приложение и его вспомогательные компоненты организованы в следующей структуре каталогов:
-
Исходный код приложения:
/root/ComfyUI -
Содержит основную кодовую базу ComfyUI, клонированную из официального репозитория.
-
Пользовательские данные и рабочие процессы:
/root/ComfyUI/user/default -
Рабочие процессы:
/root/ComfyUI/user/default/workflows -
Конфигурация:
/root/ComfyUI/user/default/comfy.settings.json -
Модели ИИ:
/root/ComfyUI/models/checkpoints -
Хранит загруженные файлы моделей, такие как
flux1-dev-fp8.safetensors. -
Конфигурация прокси Nginx:
/root/nginx -
Содержит файл Docker Compose (
compose.yml) для обратного прокси и управления SSL. -
Служба Systemd:
/etc/systemd/system/comfyui.service -
Определяет юнит службы для управления процессом ComfyUI.
Процесс установки приложения¶
Приложение ComfyUI устанавливается непосредственно на хост-систему с помощью следующих шагов:
-
Обновление системы: Пакеты APT обновляются и обновляются до последней версии для обеспечения наличия последних патчей безопасности и зависимостей.
-
Клонирование репозитория: Исходный код ComfyUI клонируется из
https://github.com/comfyanonymous/ComfyUI.gitв/root/ComfyUI. -
Настройка среды Python:
-
Python 3 pip устанавливается через менеджер пакетов APT.
-
PyTorch, TorchVision и TorchAudio устанавливаются с поддержкой CUDA 12.6 с помощью команды:
-
Специфичные требования ComfyUI устанавливаются из файла
requirements.txt, расположенного в каталоге приложения. -
Развертывание моделей:
-
Модель Flux (
flux1-dev-fp8.safetensors) загружается с Hugging Face в каталог контрольных точек (checkpoints). -
Пользовательский файл рабочего процесса (
flux1-dev-fp8.json) развертывается в каталоге рабочих процессов. -
Конфигурация:
-
Файл
comfy.settings.jsonгенерируется с настройками по умолчанию, включая язык интерфейса, установленный на английский (en), и включенное новое меню.
Права доступа и безопасность¶
Реализованы меры безопасности для ограничения доступа и управления сетевым трафиком:
-
Модификация файла Hosts: IP-адрес
5.180.174.199сопоставлен сhuggingface.coв/etc/hostsдля облегчения загрузки моделей. -
Межсетевой экран (Firewall): Система полагается на обратный прокси Nginx для обработки внешнего трафика на порту
443, в то время как внутреннее приложение слушает порт8188. -
Контекст пользователя: Приложение работает от имени пользователя
rootчерез службу Systemd.
Контейнеры Docker и их развертывание¶
Для обработки терминации SSL и маршрутизации развернут обратный прокси на базе Docker. Развертывание использует Docker Compose:
-
Образ контейнера:
jonasal/nginx-certbot:latest -
Метод развертывания: Docker Compose
-
Расположение файла Compose:
/root/nginx/compose.yml -
Конфигурация службы:
-
Политика перезапуска:
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.
-
Прокси-серверы¶
Контейнер Nginx действует как обратный прокси для обеспечения безопасного доступа к приложению ComfyUI:
-
SSL/TLS: Автоматически управляется Certbot внутри контейнера Nginx.
-
Маршрутизация:
-
Внешний трафик на порту
443маршрутизируется на внутреннюю службу ComfyUI на порту8188. -
Внешний путь установлен как
/. -
Конфигурация: Пользовательские конфигурации Nginx хранятся в
/data/nginx/user_conf.dи монтируются в контейнер.
Настройки прав доступа¶
Права доступа к файлам и каталогам настроены следующим образом:
-
Файл службы ComfyUI:
/etc/systemd/system/comfyui.serviceустановлен в0644с владениемroot. -
Каталог рабочих процессов:
/root/ComfyUI/user/default/workflowsустановлен в0755. -
Файл рабочего процесса:
/root/ComfyUI/user/default/workflows/flux1-dev-fp8.jsonустановлен в0644. -
Каталог Nginx:
/root/nginxустановлен в0644с владениемroot. -
Файл Compose:
/root/nginx/compose.ymlустановлен в0644с владениемroot.
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и места хранения данных приведены ниже:
| Файл или каталог | Путь | Описание |
|---|---|---|
| Исходный код приложения | /root/ComfyUI | Основная кодовая база ComfyUI |
| Файл настроек | /root/ComfyUI/user/default/comfy.settings.json | Предпочтения пользователя и настройки интерфейса |
| Файл рабочего процесса | /root/ComfyUI/user/default/workflows/flux1-dev-fp8.json | Определение рабочего процесса по умолчанию |
| Контрольные точки моделей | /root/ComfyUI/models/checkpoints | Хранилище моделей ИИ |
| Служба Systemd | /etc/systemd/system/comfyui.service | Определение службы для ComfyUI |
| Nginx Compose | /root/nginx/compose.yml | Конфигурация Docker Compose для прокси |
Доступные порты для подключения¶
Для приложения настроены следующие порты:
-
Порт 8188: Внутренний порт для веб-интерфейса ComfyUI (не открыт напрямую для публичного интернета).
-
Порт 443: Внешний порт HTTPS, управляемый прокси Nginx для безопасного доступа пользователей.
Запуск, остановка и обновление¶
Приложение ComfyUI управляется как служба Systemd. Используйте следующие команды для управления службой:
-
Запуск службы:
-
Остановка службы:
-
Перезапуск службы:
-
Включение автозапуска при загрузке:
-
Проверка статуса службы:
Для обновления приложения исходный код в /root/ComfyUI должен быть обновлен вручную (например, с помощью git pull), при необходимости переустановлены зависимости, и служба перезапущена.