- Enhanced README.md to clarify the `gpu-rent up` command, including default tunnel behavior and options for cloud-only operation. - Updated cli.md to reflect changes in the `gpu-rent up` command, detailing the new `--no-tunnel` option and its implications. - Revised decisions.md to explain the separation of `up` and `tunnel` commands, emphasizing the default tunnel opening after `up`. - Improved doctor.py to provide clearer instructions regarding tunnel creation and cloud-only usage. - Adjusted notify.py to reflect the updated command usage for accessing the SwarmUI.
87 lines
3.8 KiB
Markdown
87 lines
3.8 KiB
Markdown
# gpu-rent
|
||
|
||
Прерываемый GPU в [Selectel](https://selectel.ru) + SwarmUI на `http://127.0.0.1:17801`.
|
||
Модели и ComfyUI живут на сетевом диске — платишь за GPU только пока он поднят.
|
||
|
||
**Сначала ключи и квота GPU, не `up`.** → [`docs/setup.md`](docs/setup.md)
|
||
|
||
---
|
||
|
||
## Быстрый старт
|
||
|
||
```powershell
|
||
.\gpu-rent.ps1 doctor # preflight
|
||
.\gpu-rent.ps1 flavors # что выберет фоллбек
|
||
.\gpu-rent.ps1 dry-run # план без create
|
||
.\gpu-rent.ps1 up --yes # GPU + SwarmUI + seed + туннель :17801
|
||
.\gpu-rent.ps1 up --yes --no-tunnel # только облако
|
||
.\gpu-rent.ps1 tunnel --open # снова открыть UI, если туннель закрыли
|
||
.\gpu-rent.ps1 hold # отложить idle-killer
|
||
.\gpu-rent.ps1 stop # гасить compute, диски оставить
|
||
```
|
||
|
||
Unix: `./gpu-rent.sh …` (один раз `chmod +x gpu-rent.sh`).
|
||
|
||
Лаунчер сам создаёт `.venv` и ставит пакет. Конфиг — **в корне репо**:
|
||
|
||
| Файл | Что |
|
||
| --- | --- |
|
||
| `.env` | из `env.example` — `OS_*`, Civitai |
|
||
| `models.yaml` | из `models.example.yaml` — seed с Civitai |
|
||
| `extensions.yaml` | из `extensions.example.yaml` |
|
||
| `.gpu-rent/` | state, SSH-ключ (gitignore) |
|
||
|
||
---
|
||
|
||
## Команды
|
||
|
||
| Команда | Смысл |
|
||
| --- | --- |
|
||
| `doctor` | Keystone, квота GPU, flavor, Civitai, манифесты |
|
||
| `flavors` | Живой список по `FLAVOR_PREFERENCE` |
|
||
| `up` / `up --yes` | Поднять GPU + туннель :17801 (браузер). Ctrl+C = туннель off |
|
||
| `up --no-tunnel` | Только облако |
|
||
| `up --no-spot` / `up --flavor ID` | Обычный тариф / явный flavor |
|
||
| `tunnel` / `tunnel --open` | Повторный проброс; watchdog на EXPIRED |
|
||
| `open` | Браузер на 17801 |
|
||
| `hold` / `hold --minutes 90` / `hold --clear` | Пауза idle-killer |
|
||
| `status` | Nova + диск + killer |
|
||
| `seed-models` / `seed-extensions` | Докачать на живой диск |
|
||
| `push` / `push-models` / `pull-output` | Локальные папки ↔ VM |
|
||
| `resize-data --gb 400` | Диск только вверх |
|
||
| `stop` / `destroy --i-understand-data-loss` | Стоп GPU / + диски |
|
||
|
||
---
|
||
|
||
## Деньги и риски
|
||
|
||
- **GPU** — пока жив compute (`up`…`stop` или idle-killer).
|
||
- **Диск data** — **24/7**, даже после `stop`.
|
||
- Цены в OpenStack API **нет** — смотри панель Selectel.
|
||
- Preemptible по умолчанию (~24 ч) → `EXPIRED`; `tunnel` сам unshelve, иначе `up`.
|
||
- Idle-killer: льгота после boot, потом N мин пустой очереди → delete. `hold` откладывает.
|
||
- `Ctrl+C` на tunnel **не** гасит GPU.
|
||
|
||
---
|
||
|
||
## Модели
|
||
|
||
1. Civitai-seed по `models.yaml` (нужен `CIVITAI_API_TOKEN`, хост `civitai.red`).
|
||
2. Локальные `Models/`, `Wildcards/`, `CustomWorkflows/` — непустые едут на каждый `up`.
|
||
|
||
Пример в репо уже с Krea 2 + LoRA — скопируй в `models.yaml`.
|
||
|
||
---
|
||
|
||
## Документация
|
||
|
||
| Док | Зачем |
|
||
| --- | --- |
|
||
| [docs/setup.md](docs/setup.md) | Ключи, квота, RC |
|
||
| [docs/spike-notes.md](docs/spike-notes.md) | Чеклист живого spike |
|
||
| [docs/cli.md](docs/cli.md) | Все команды и `.env` |
|
||
| [docs/decisions.md](docs/decisions.md) | Продуктовые решения |
|
||
| [docs/roadmap.md](docs/roadmap.md) | Что готово / что нет |
|
||
|
||
MIT. Секреты и веса в git не коммитить.
|