Files
gpu-rent/README.md
T
Leonid Pershin 7ed6a99df2 Enhance LLM and SwarmUI integration with improved configuration options
- Updated `env.example` and `gpu-rent.vars.example` to include new variables for LLM runtime and SwarmUI options.
- Refactored CLI commands to support interactive selection of LLM runtime and workload type (SwarmUI, LLM, or both).
- Improved access link generation to handle cases where SwarmUI is disabled, providing clearer user feedback.
- Enhanced provisioning logic to conditionally bootstrap SwarmUI based on user configuration, allowing for LLM-only setups.
- Updated documentation across multiple files to reflect changes in LLM integration, CLI usage, and configuration management.
2026-08-21 06:44:50 +03:00

96 lines
4.4 KiB
Markdown

# gpu-rent
Прерываемый GPU в [Selectel](https://selectel.ru) + [SwarmUI](https://github.com/mcmonkeyprojects/SwarmUI) на `http://127.0.0.1:17801`.
Модели и ComfyUI живут на сетевом диске. **GPU платится только пока жив compute** (`up``stop` или idle-killer). Диск — **всегда**, даже после `stop`.
---
## С нуля → первая картинка
Делай по порядку. Подробности и скрины панели — в [docs/setup.md](docs/setup.md).
| # | Шаг | Команда / действие |
| --- | --- | --- |
| 1 | Python 3.11+, клон репо | — |
| 2 | Квота GPU в Selectel (> 0) или тикет | [setup §2](docs/setup.md#2-selectel-проект-и-квота-gpu) |
| 3 | Сервисный пользователь + `.env` из RC | [setup §3](docs/setup.md#3-ключи-openstack-это-и-есть-api-key-для-gpu-rent) |
| 4 | (Опц.) Civitai token + `models.yaml` | [setup §4](docs/setup.md#4-civitai-api-token-модели) |
| 5 | Preflight | `.\gpu-rent.ps1 doctor` |
| 6 | Поднять GPU + туннель | `.\gpu-rent.ps1 up --yes` |
| 7 | Открыть UI | браузер сам / `.\gpu-rent.ps1 open` |
| 8 | Закончить сессию | `.\gpu-rent.ps1 stop` |
Unix: `./gpu-rent.sh …` (один раз `chmod +x gpu-rent.sh`).
**Не начинай с `up`**, пока `doctor` не зелёный. Ключ панели `X-Token` для этого CLI **не подходит**.
---
## Обычный день
```powershell
.\gpu-rent.ps1 up --yes # GPU + SwarmUI + туннель :17801
# работаешь в браузере…
# Ctrl+C в терминале = только туннель off, GPU жив
.\gpu-rent.ps1 tunnel --open # снова UI
.\gpu-rent.ps1 hold # отложить idle-killer
.\gpu-rent.ps1 stop # погасить GPU, диски оставить
```
| Важно | |
| --- | --- |
| `Ctrl+C` на туннеле | **не** гасит GPU |
| Простой ~30 мин | idle-killer сам удалит compute |
| Preemptible | ~24 ч → `EXPIRED`; `tunnel` / `up` поднимут снова |
| Двойной клик лаунчера | задай `GPU_RENT_DEFAULT_ARGS=up --yes` в `gpu-rent.vars` |
---
## Команды (кратко)
| Команда | Смысл |
| --- | --- |
| `setup` | Wizard: `.env`, LLM, watchdog |
| `doctor` | Preflight без create |
| `flavors` / `dry-run` | Что выберет / план без денег |
| `up` / `up --yes` | GPU + seed + туннель; без `--yes` — меню Selectel/LLM |
| `up --ollama` / `--llamacpp` | + LLM (см. [docs/llm.md](docs/llm.md)) |
| `up --llm-only --llamacpp` | только LLM, без SwarmUI |
| `tunnel` / `open` | Снова UI / браузер |
| `hold` / `status` | Пауза killer / состояние |
| `stop` / `destroy --i-understand-data-loss` | Стоп GPU / + диски |
| `push` / `pull-output` / `seed-*` / `capture` | Файлы ↔ VM; capture = ссылки в yaml |
Полный список: [docs/cli.md](docs/cli.md).
---
## Конфиг в корне репо
| Файл | Что |
| --- | --- |
| `.env` | из `env.example``OS_*`, Civitai (не в git) |
| `gpu-rent.vars` | из example — несекретные дефолты, лаунчер |
| `models.yaml` / `extensions.yaml` | манифесты (из `*.example.yaml`) |
| `ollama-models.yaml` / `llamacpp-models.yaml` | LLM (из example; gitignore) |
| `Models/` … | локальный push на `up` |
| `.gpu-rent/` | state, SSH-ключ (gitignore) |
Лаунчер сам создаёт `.venv` и ставит пакет.
---
## Документация
| Док | Зачем |
| --- | --- |
| [docs/setup.md](docs/setup.md) | **Пошаговая подготовка** до первого `up` |
| [docs/cli.md](docs/cli.md) | Все команды и переменные |
| [docs/llm.md](docs/llm.md) | Ollama / llama.cpp |
| [docs/models.md](docs/models.md) | Civitai + папка `Models/` |
| [docs/spike-notes.md](docs/spike-notes.md) | Чеклист первого живого прогона |
| [docs/README.md](docs/README.md) | Оглавление всего `docs/` |
MIT. Секреты и веса в git не коммитить.