Files
gpu-rent/docs/extensions.md
T
Leonid Pershin 2ab32a8ab5 Refactor LLM configuration to remove llamacpp support
- Removed references to llamacpp from configuration files, scripts, and documentation, streamlining the LLM setup process to focus solely on Ollama.
- Updated environment variables and paths to eliminate llamacpp-related entries, ensuring clarity in the configuration.
- Adjusted CLI commands and help messages to reflect the removal of llamacpp, enhancing user experience and reducing confusion.
- Revised documentation to provide clear guidance on using Ollama exclusively, including updates to setup instructions and runtime options.
2026-08-21 08:51:36 +03:00

5.5 KiB
Raw Blame History

Расширения: git-репы на bootstrap

Быстрый старт

copy extensions.example.yaml extensions.yaml
# добавь url реп (публичные — без GIT_TOKEN)
.\gpu-rent.ps1 up --yes
# доклонировать на уже живой VM:
.\gpu-rent.ps1 seed-extensions
# записать установленные на VM репы обратно в extensions.yaml (без clone локально):
.\gpu-rent.ps1 capture extensions

Срабатывает на каждом upseed-extensions):

  • нет каталога → git clone;
  • каталог есть → по умолчанию fetch + reset --hard на ref (или текущую ветку для уже установленных вне yaml);
  • --no-update / UPDATE_GIT=false → существующие репы не трогаем, только недостающие clone.

Также обновляется сам SwarmUI в /opt/swarmui (тот же флаг).

Два разных мира — не путать:

Вид Куда клонировать Что это
swarmui /mnt/swarm_data/Extensions/<dir>/opt/swarmui/src/Extensions/<dir> C# extension SwarmUI (класс : Extension). После рестарта подхватывается сам
comfy /mnt/swarm_data/DLNodes/<dir>…/ComfyUIBackend/DLNodes/<dir> Custom nodes ComfyUI (Python). requirements.txt ставит SwarmUI/Comfy при первом старте backend

Пустой манифест или его нет — ничего не клонируем, SwarmUI как из коробки. Это не связано с Civitai-токеном.

Манифест

Пример: extensions.example.yaml. Рабочая копия: extensions.yaml в корне репо (или EXTENSIONS_MANIFEST).

swarmui:
  - url: https://gitea.hsrv.site/mrleo1nid/swarm-assistent.git
    ref: main
    dir: swarm-assistent
    requires: ollama   # none | ollama | any-llm; default none = always
  - url: https://github.com/example/SwarmUI-SomeExt.git
    ref: main
    dir: SomeExt
comfy:
  - url: https://github.com/example/ComfyUI-Something.git
    ref: v1.2.0
requires Когда клонировать
none (или поле отсутствует) всегда
ollama только при LLM_RUNTIME=ollama
any-llm при LLM_RUNTIME=ollama

Строки с несовпавшим requires пропускаются (лог), остальные ставятся как обычно. В extensions.example.yaml по умолчанию — swarm-assistent с requires: ollama (чат/vision под Krea 2).

В git репозитория gpu-rent не коммитить рабочий список с лишними приватными URL сверх примера.

Когда в жизненном цикле

Idle-killer ещё не вооружён. Git нужен на VM (apt в bootstrap, если нет в образе).

  1. Маркер FS data volume.
  2. Clone extensions (этот документ). Маркер /mnt/swarm_data/.gpu-rent-extensions-seeded после успешного прохода всех строк.
  3. Civitai-seed моделей (models.md), если есть токен.
  4. Первый systemctl start swarmui: видит src/Extensions, собирает их; ComfyUI ставит pip из DLNodes.
  5. Backend Idle → idle-killer.

Порядок 2→3 важен: расширения до старта UI, модели тоже до старта (чтобы не качать дефолт SwarmUI).

Позже: gpu-rent seed-extensions — те же clone/fetch на живом диске, затем рестарт SwarmUI (иначе новый C# extension не подхватится). CLI предупреждает и делает systemctl restart swarmui, если VM жива.

Clone на VM

  • git clone --recurse-submodules.
  • Если ref — ветка/тег: --depth 1 + checkout.
  • Если ref похож на SHA: fetch этого commit (shallow может не хватить).
  • Каталог уже есть и remote origin совпадает с urlfetch + checkout ref, не rm -rf.
  • Каталог есть, origin другой → fail этой строки, не молча перезаписывать.

Публичный HTTPS без секретов. Приватный репозиторий:

  • GIT_TOKEN в .env (GitHub: x-access-token; GitLab: oauth2 / PAT). CLI подставляет в URL только на VM, не пишет токен в yaml и не в cloud-init.
  • Либо отдельный deploy key <repo>/.gpu-rent/git_deploy — v1.1, не обязательно сейчас.

Не использовать git://. Только https:// и git@ + ключ.

Сбой

Одна строка упала (404, auth, сеть) — остальные можно продолжить; up в конце ненулевой, маркер seeded не ставить, повтор доклонирует. Не оставлять полупустой .git.

Конфиг

EXTENSIONS_MANIFEST=   # пусто = <repo>/extensions.yaml
GIT_TOKEN=             # опционально, для приватных https