Обзор развертывания 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. |
Процесс установки приложения¶
Процесс установки включает следующие этапы:
-
Обновление системы: Пакеты APT обновляются и обновляются до последних версий.
-
Клонирование репозитория: Исходный код ComfyUI клонируется в
/root/ComfyUIизhttps://github.com/comfyanonymous/ComfyUI.git. -
Установка зависимостей:
-
Python pip (
python3-pip) устанавливается через APT. -
PyTorch устанавливается через pip с использованием URL индекса CUDA 12.6:
-
Требования приложения устанавливаются из локального файла
requirements.txt:
-
-
Конфигурация Hosts: IP-адрес
5.180.174.199добавляется в/etc/hostsв качестве алиаса дляhuggingface.coдля оптимизации загрузки моделей. -
Развертывание модели:
-
Выполняется проверка наличия модели Flux в
/root/ComfyUI/models/checkpoints/flux1-dev-fp8.safetensors. -
Если модель отсутствует или неполна, она загружается с
https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensorsс возможностью возобновления загрузки.
-
-
Настройка рабочих процессов (Workflows):
-
Создается каталог
/root/ComfyUI/user/default/workflowsс правами доступа0755. -
Файл конфигурации рабочего процесса
flux1-dev-fp8.jsonразмещается в этой директории.
-
-
Конфигурация: Настраивается файл
/root/ComfyUI/user/default/comfy.settings.json. -
Создание службы: Юнит службы systemd
comfyui.serviceсоздается в/etc/systemd/system/. -
Активация службы: Служба включается и запускается немедленно.
Права доступа и безопасность¶
-
Межсетевой экран (Firewall): Внешний трафик обрабатывается контейнером Nginx, который управляет портом
443. Прямой доступ к порту8188ограничен внутренним использованием, если явно не настроено иное. -
Пользователи: Служба ComfyUI работает с правами root, как определено в файле юнита systemd.
-
Ограничения: Доступ к репозиторию Hugging Face маршрутизируется через измененную запись в
/etc/hostsдля обеспечения надежной связности при загрузке моделей.
Контейнеры Docker и их развертывание¶
Развертывание использует Docker для реализации обратного прокси-сервера и управления SSL.
-
Установка Docker: Движок Docker устанавливается и настраивается на хосте.
-
Конфигурация прокси:
-
Создается каталог
/root/nginxс владением root. -
В
/root/nginx/генерируется файлcompose.yml.
-
-
Запуск контейнеров: В директории
/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на внутренний порт ComfyUI8188. -
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. Используйте следующие команды:
-
Запустить службу:
-
Остановить службу:
-
Перезапустить службу:
-
Включить запуск при загрузке:
-
Проверить статус:
Для контейнера прокси-сервера Nginx управление осуществляется через Docker Compose в директории /root/nginx:
- Запустить/перезапустить контейнеры: