first commit

This commit is contained in:
Leonid Pershin
2026-08-21 02:42:48 +03:00
commit 167d07a733
46 changed files with 3334 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# gpu-rent
Локальный CLI: прерываемый GPU в [Selectel](https://selectel.ru), SwarmUI через туннель на `localhost:17801`. Модели живут на сетевых дисках.
**Сначала ключи и квота — не `up`.** Пошагово: [`docs/setup.md`](docs/setup.md).
Спецификация: [`docs/`](docs/README.md). Решения: [`docs/decisions.md`](docs/decisions.md).
## Что уже можно запустить
```powershell
python -m venv .venv
.\.venv\Scripts\activate
python -m pip install -U pip
python -m pip install -e ".[dev]"
copy env.example $env:USERPROFILE\.gpu-rent\.env
# заполни OS_* по docs/setup.md
gpu-rent doctor
gpu-rent dry-run
gpu-rent status
```
`up` / `stop` / `tunnel` пока не создают сервер: сначала `doctor` должен быть зелёным и квота GPU > 0.
## Зачем какие ключи
| Что | Зачем | Как получить |
| --- | --- | --- |
| Сервисный пользователь Selectel + пароль | OpenStack: VM, диски, сеть. IAM-токен на 24 ч CLI берёт сам | IAM → Service users. **Не** X-Token из профиля |
| `OS_PROJECT_ID`, номер аккаунта, пул, AZ | Scope токена и куда ставить GPU | RC-файл с вкладки Access + матрица GPU |
| Тикет в поддержку | Лимит GPU часто 0 | Текст в docs/setup.md |
| Civitai API token | Seed моделей | [civitai.com/user/account](https://civitai.com/user/account) → API Keys |
| GitHub PAT | Только приватные репы в `extensions.yaml` | Fine-grained, Contents: Read |
Статический `X-Token` панели **не умеет** создавать облачные серверы.
## Продукт
- GPU по умолчанию preemptible; гасится `stop` или idle-killer на VM (`hold` откладывает killer).
- Первый диск: модели с Civitai по `models.yaml`, если задан API-токен; иначе дефолт SwarmUI.
- Локальные папки: непустые `Models/`, `Wildcards/`, `CustomWorkflows/` едут на `up`; `Output/` можно забрать (`PULL_OUTPUT`).
- Расширения: git-репы из `extensions.yaml` на первый bootstrap.
- Autocomplete: `Data/Autocompletions` + проверка новой версии csv на каждом `up`.
- `doctor` до create; фоллбек GPU flavor; toast когда UI готов; `open` на 17801.
- Локальный SwarmUI на порту 7801 не занимает.
- Прерывание хостером: `EXPIRED``unshelve`.
Лицензия MIT. Секреты и веса в git не класть.