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

Обзор развертывания 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.

    /usr/bin/python3 /root/ComfyUI/main.py
    

  • Диспетчер служб: Приложение управляется через systemd с использованием созданного для службы файла юнита.

  • Контроль версий: Приложение работает с той версией ComfyUI, которая находится в каталоге /root/ComfyUI/.

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

Реверс-прокси с завершением SSL развернут с использованием Docker. Этот контейнер обрабатывает трафик HTTPS и пересылает запросы во внутренний экземпляр ComfyUI.

  • Метод развертывания: Docker Compose.

  • Расположение файла Compose: /root/nginx/compose.yml

  • Образ контейнера: jonasal/nginx-certbot:latest

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

Для запуска или перезапуска служб прокси используется следующая команда:

cd /root/nginx
docker compose up -d

Конфигурация службы 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.

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

    systemctl start comfyui
    

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

    systemctl stop comfyui
    

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

    systemctl restart comfyui
    

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

    systemctl enable comfyui
    

Управление прокси Nginx

Прокси Nginx управляется через Docker Compose.

  • Запустить/Перезапустить прокси:

    cd /root/nginx
    docker compose up -d
    

  • Остановить прокси:

    cd /root/nginx
    docker compose down
    

Обновление приложения

Для обновления приложения ComfyUI:

  1. Обновите код в каталоге /root/ComfyUI/.

  2. Перезапустите службу systemd:

    systemctl restart comfyui
    

Для обновления прокси Nginx:

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