#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" STACK_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" # shellcheck disable=SC1091 source "${SCRIPT_DIR}/ensure-dirs.sh" cd "${STACK_DIR}" if [[ ! -f .env ]]; then echo "ERROR: .env not found. Run: cp .env.example .env" exit 1 fi set -a # shellcheck disable=SC1091 source .env set +a DATA_ROOT="${DATA_ROOT:-/data}" if ! mountpoint -q "${DATA_ROOT}" 2>/dev/null; then echo "ERROR: ${DATA_ROOT} is not mounted" exit 1 fi ensure_comfyui_dirs "${DATA_ROOT}" if ! docker info &>/dev/null; then echo "ERROR: Docker is not running" exit 1 fi if docker ps --format '{{.Names}}' | grep -qx localai; then echo "UWAGA: Kontener localai jest uruchomiony." echo " Na RTX 3090 Ti 24 GB uruchom tylko jeden duży workload GPU." echo " Zatrzymaj LocalAI przed generowaniem obrazów:" echo " cd ../localai && docker compose --profile localai stop localai" echo "" read -r -p "Kontynuować mimo to? [y/N]: " confirm if [[ "${confirm,,}" != "y" ]]; then exit 1 fi fi echo "=== ComfyUI stack ===" echo "Image: ${COMFYUI_IMAGE:-yanwk/comfyui-boot:cu126-slim}" echo "Port: ${COMFYUI_PORT:-8188}" echo "Models: ${DATA_ROOT}/apps/comfyui/models" echo "GPU: CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES:-0}" echo "" echo "Pierwszy start kopiuje ComfyUI do ${DATA_ROOT}/apps/comfyui/storage/ (~kilka minut)." echo "" docker compose --profile comfyui pull docker compose --profile comfyui up -d echo "" echo "Started. Follow logs:" echo " docker compose --profile comfyui logs -f comfyui" echo "" echo "Web UI (po starcie):" echo " http://localhost:${COMFYUI_PORT:-8188}" echo "" echo "Health:" echo " curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:${COMFYUI_PORT:-8188}/"