Обзор развертывания ComfyUI на сервере¶
Предварительные требования и базовые условия¶
Перед развертыванием приложения на сервере должны быть выполнены следующие требования:
-
Операционная система: Linux (рекомендуется основа на Ubuntu/Debian для совместимости с Docker и Python3).
-
Права доступа: Для управления Docker, межсетевым экраном (firewall) и системными службами требуются права root или привилегии
sudo. -
Домен: Сервер должен быть доступен через домен
hostkey.in. -
Порты:
-
Порт
443(HTTPS) используется для внешнего доступа через прокси Nginx. -
Порт
8188— внутренний порт, используемый приложением ComfyUI.
Финальный URL для доступа к панели¶
Приложение доступно по Fully Qualified Domain Name (FQDN, полное доменное имя) в формате <prefix>-<ID_сервера>.hostkey.in. На основе предоставленной конфигурации:
-
Доменная зона:
hostkey.in -
Префикс:
comfyui -
Внешний порт:
443(стандартный HTTPS, обычно опускается в URL браузера) -
Формат URL:
comfyui-<ID_сервера>.hostkey.in
Замените <ID_сервера> на фактический уникальный идентификатор, назначенный экземпляру сервера.
Структура файлов и директорий¶
Для развертывания используется следующая структура каталогов для конфигурации, данных и сертификатов:
-
/root/ComfyUI/: Содержит основной исходный код приложения ComfyUI. -
/root/nginx/: Содержит конфигурацию Docker Compose и скрипты, связанные с Nginx. -
/data/nginx/: Постоянное хранилище для пользовательских конфигураций Nginx и переменных окружения. -
/data/nginx/nginx-certbot.env: Файл переменных окружения для конфигурации Certbot/Nginx. -
/data/nginx/user_conf.d/: Каталог для пользовательских конфигураций сервера Nginx. -
/etc/letsencrypt/: Подмонтированный том для сертификатов SSL/TLS, управляемых Certbot (через томnginx_secrets).
Процесс установки приложения¶
Приложение ComfyUI развертывается как нативная системная служба, работающая в фоновом режиме, а не как контейнер Docker. Установка включает размещение исходного кода и создание юнита службы systemd.
-
Команда запуска: Приложение запускается через Python 3 с точкой входа
main.py. -
Диспетчер служб: Приложение управляется через
systemdс использованием созданного для службы файла юнита. -
Контроль версий: Приложение работает с той версией ComfyUI, которая находится в каталоге
/root/ComfyUI/.
Контейнеры Docker и их развертывание¶
Реверс-прокси с завершением SSL развернут с использованием Docker. Этот контейнер обрабатывает трафик HTTPS и пересылает запросы во внутренний экземпляр ComfyUI.
-
Метод развертывания: Docker Compose.
-
Расположение файла Compose:
/root/nginx/compose.yml -
Образ контейнера:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped
Для запуска или перезапуска служб прокси используется следующая команда:
Конфигурация службы Docker¶
Конфигурация Docker Compose включает следующие параметры:
| Параметр | Значение | Описание |
|---|---|---|
| Image | jonasal/nginx-certbot:latest | Nginx со встроенным Certbot для SSL. |
| Network Mode | host | Использует сетевой стек хоста напрямую. |
| Volume (SSL) | nginx_secrets | Внешний том, смонтированный в /etc/letsencrypt для сертификатов. |
| Volume (Config) | /data/nginx/user_conf.d | Каталог хоста, смонтированный в /etc/nginx/user_conf.d для конфигураций. |
| Environment | CERTBOT_EMAIL | Установлено значение hkadm@hostkey.com для уведомлений о сертификатах. |
| Env File | /data/nginx/nginx-certbot.env | Путь к файлу переменных окружения. |
Серверы прокси¶
В развертывании используется Nginx в качестве реверс-прокси с автоматическим управлением сертификатами SSL через Let's Encrypt (Certbot).
-
Образ прокси:
jonasal/nginx-certbot:latest -
Провайдер SSL: Let's Encrypt (Certbot)
-
Хранилище сертификатов: Хранится в томе
nginx_secretsв директории/etc/letsencrypt. -
Конфигурация: Пользовательские конфигурации Nginx размещаются в
/data/nginx/user_conf.d. -
Маршрутизация:
-
Внешний порт:
443(HTTPS) -
Внешний путь:
/(корневой путь) -
Внутренняя цель:
localhost:8188(внутренний порт ComfyUI) -
Внутренний путь: Пустой (картирование корня)
Настройки прав доступа¶
К следующим каталогам и файлам применяются следующие настройки прав доступа:
-
/root/nginx/: -
Владелец:
root -
Группа:
root -
Режим:
0644(режим создания каталога) -
/root/ComfyUI/main.py: -
Исполняемый системным пользователем, запускающим службу (обычно root или специальный пользователь службы, определенный в systemd).
-
/data/nginx/: -
Должен быть доступен контейнеру Docker для монтирования и чтения файлов конфигурации.
Расположение файлов конфигурации и данных¶
| Компонент | Путь к файлу | Описание |
|---|---|---|
| ComfyUI Source | /root/ComfyUI/ | Основной код приложения. |
| Service Unit | /etc/systemd/system/comfyui.service | (Сгенерировано из comfyui.service.j2) |
| Docker Compose | /root/nginx/compose.yml | Конфигурация для прокси Nginx. |
| Nginx Env | /data/nginx/nginx-certbot.env | Переменные окружения для прокси. |
| Nginx Custom Config | /data/nginx/user_conf.d/ | Каталог для пользовательских блоков серверов. |
| SSL Certificates | nginx_secrets (Docker Volume) | Сертификаты Let's Encrypt. |
Доступные порты для подключения¶
-
Порт 443: HTTPS. Основной входной пункт для пользователей, подключающихся к веб-интерфейсу ComfyUI через FQDN.
-
Порт 8188: HTTP. Внутренний порт, используемый приложением ComfyUI. Этот порт обычно не открыт напрямую для общественного интернета, но доступен через прокси Nginx.
Запуск, остановка и обновление¶
Управление приложением ComfyUI¶
Приложение ComfyUI управляется как служба systemd.
-
Запустить службу:
-
Остановить службу:
-
Перезапустить службу:
-
Включить при загрузке:
Управление прокси Nginx¶
Прокси Nginx управляется через Docker Compose.
-
Запустить/Перезапустить прокси:
-
Остановить прокси:
Обновление приложения¶
Для обновления приложения ComfyUI:
-
Обновите код в каталоге
/root/ComfyUI/. -
Перезапустите службу systemd:
Для обновления прокси Nginx:
- Загрузите последнюю версию образа и пересоздайте контейнер: