84ed0bb47a7d852ea8cb41bcaa63c057bcff0751
Co-authored-by: Cursor <cursoragent@cursor.com>
gpu-rent
Прерываемый GPU в Selectel + SwarmUI на http://127.0.0.1:17801.
Модели и ComfyUI живут на сетевом диске. GPU платится только пока жив compute (up…stop или idle-killer). Диск — всегда, даже после stop.
С нуля → первая картинка
Делай по порядку. Подробности и скрины панели — в docs/setup.md.
| # | Шаг | Команда / действие |
|---|---|---|
| 1 | Python 3.11+, клон репо | — |
| 2 | Квота GPU в Selectel (> 0) или тикет | setup §2 |
| 3 | Сервисный пользователь + .env из RC |
setup §3 |
| 4 | (Опц.) Civitai token + models.yaml |
setup §4 |
| 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 не подходит.
Обычный день
.\gpu-rent.ps1 up --yes # GPU + SwarmUI + туннель :17801
# работаешь в браузере…
# Ctrl+C / Ctrl+D = stop GPU (диски остаются)
.\gpu-rent.ps1 tunnel --open # снова UI, если GPU ещё жив
.\gpu-rent.ps1 hold # отложить idle-killer
.\gpu-rent.ps1 stop # погасить GPU, диски оставить
| Важно | |
|---|---|
Ctrl+C / Ctrl+D на туннеле |
stop 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 |
+ Ollama (см. docs/llm.md) |
up --llm-only --ollama |
только Ollama, без SwarmUI |
tunnel / open |
Снова UI / браузер |
hold / status |
Пауза killer / состояние |
debug |
Read-only Debug API на :17821 (агент / Assistent) |
seed-personas |
Overlay assistent-personas/ → VM |
watchdog |
Локальный safety-net (мёртвый туннель → stop) |
stop / destroy --i-understand-data-loss |
Стоп GPU / + диски |
push / pull-output / seed-* / capture |
Файлы ↔ VM; capture = ссылки в yaml |
Полный список: docs/cli.md. Civitai scrape (без картинок) → Assistent FTS: datasets/README.md.
Конфиг в корне репо
| Файл | Что |
|---|---|
.env |
из env.example — OS_*, Civitai (не в git) |
gpu-rent.vars |
из example — несекретные дефолты, лаунчер |
models.yaml / extensions.yaml |
манифесты (из *.example.yaml) |
ollama-models.yaml |
Ollama-модели (из example; gitignore) |
Models/ … |
локальный push на up |
.gpu-rent/ |
state, SSH-ключ (gitignore) |
Лаунчер сам создаёт .venv и ставит пакет.
Документация
| Док | Зачем |
|---|---|
| docs/setup.md | Пошаговая подготовка до первого up |
| docs/cli.md | Все команды и переменные |
| docs/llm.md | Ollama + Assistent (opt-in LLM) |
| docs/models.md | Civitai + папка Models/ |
| datasets/README.md | Civitai Krea2 scrape → FTS Assistent |
| docs/spike-notes.md | Чеклист первого живого прогона |
| docs/README.md | Оглавление всего docs/ |
MIT. Секреты и веса в git не коммитить.
Languages
Python
96.5%
Shell
2.6%
PowerShell
0.8%