Add package data for GPU rent and update CLI documentation
- Added package data configuration for the 'gpu_rent' package in pyproject.toml. - Updated README.md to include usage instructions for Windows and Unix launchers. - Enhanced CLI documentation in cli.md to reflect new commands and their functionalities. - Revised setup.md to clarify installation steps and environment setup. - Improved error handling and command descriptions in the CLI implementation. - Added new functions for model version handling and flavor resolution in the codebase. - Updated state management to include additional properties for better tracking.
This commit is contained in:
+3
-1
@@ -35,6 +35,8 @@
|
||||
|
||||
Нет команды `generate`. Нет зеркала каталога локального SwarmUI — только папки приложения, см. [local-folders.md](local-folders.md).
|
||||
|
||||
Сейчас в коде: `up` создаёт/unshelve compute, FIP, SSH, идемпотентный bootstrap SwarmUI (без Docker) и systemd. `tunnel` на 17801, Ctrl+C не гасит GPU. Ещё нет: extensions, autocomplete, Civitai seed, push, idle-killer, snapshot, EXPIRED-reconnect туннеля.
|
||||
|
||||
## `doctor`
|
||||
|
||||
Не создаёт сервер, не тратит GPU. Нужен до первого `up` и когда «вчера работало».
|
||||
@@ -166,6 +168,6 @@ Application credential для idle-killer CLI создаёт при bootstrap и
|
||||
|
||||
## Windows
|
||||
|
||||
Пути через `Path.expanduser`. Венв: `.venv\Scripts\activate`. Ключ генерирует CLI: `~/.gpu-rent/id_ed25519`.
|
||||
Лаунчеры в корне: `gpu-rent.bat` (cmd / двойной клик), `.\gpu-rent.ps1` (PowerShell). На Unix — `./gpu-rent.sh`. Они создают `.venv` в репозитории и вызывают `python -m gpu_rent`. Пути в приложении через `Path.expanduser`. Ключ генерирует CLI: `~/.gpu-rent/id_ed25519`.
|
||||
|
||||
`NOTIFY_READY`: toast через WinRT / `win10toast` (что заработает на 10/11 без админ-прав) + системный звук. Если toast недоступен — только звук и лог, не падать.
|
||||
|
||||
+14
-14
@@ -34,36 +34,36 @@
|
||||
## 1. Каркас
|
||||
|
||||
- [x] `pyproject.toml`, пакет `gpu_rent`, MIT
|
||||
- [x] config / state / Typer по [cli.md](cli.md): `doctor` / `dry-run` / `status` / `open` живые; остальные команды есть и честно говорят, что mutating ещё нет
|
||||
- [x] Windows: `python -m gpu_rent`
|
||||
- [x] config / state / Typer: `doctor` / `dry-run` / `status` / `open` / `up` / `stop` / `destroy` / `ssh` / `logs`; `tunnel` / `hold` / seed ещё `NotReadyError`
|
||||
- [x] Windows: `gpu-rent.bat` / `gpu-rent.ps1`; Unix: `gpu-rent.sh`; также `python -m gpu_rent`
|
||||
- [x] [setup.md](setup.md) — квота, сервисный пользователь, RC, Civitai
|
||||
|
||||
## 2. OpenStack-клиент
|
||||
|
||||
- [x] Token через openstacksdk (`authorize`), inventory flavors/квота/volume type
|
||||
- [ ] Сеть find-or-create, SG, FIP, volumes, server, unshelve
|
||||
- [ ] Preemptible tag 2.72, BDM boot+data, `delete_on_termination=false`
|
||||
- [x] Flavor fallback по `FLAVOR_PREFERENCE` (ранжирование; create ещё нет)
|
||||
- [x] Сеть find-or-create, SG, FIP, volumes, server, unshelve
|
||||
- [x] Preemptible tag 2.72, BDM boot+data, `delete_on_termination=false`
|
||||
- [x] Flavor fallback по `FLAVOR_PREFERENCE` (ранжирование + выбор на `up`)
|
||||
- [x] `doctor`: Keystone, квота, flavor, диск, Civitai `.red`, манифесты
|
||||
- [x] Тесты с моками / без облака
|
||||
|
||||
## 3. Сессия без туннеля
|
||||
|
||||
- [ ] `up` / `stop` / `status` / reconcile
|
||||
- [x] `up` / `stop` / `status` / reconcile (compute+диски+SSH+bootstrap SwarmUI)
|
||||
- [ ] `status`: диск used/free, ₽/час, TTL preempt 24 ч, killer/hold
|
||||
- [ ] Второй `up` не создаёт второй GPU
|
||||
- [x] Второй `up` не создаёт второй GPU
|
||||
- [ ] `resize-data` вверх
|
||||
- [ ] Генерация `~/.gpu-rent/id_ed25519` + keypair при первом `up`
|
||||
- [x] Генерация `~/.gpu-rent/id_ed25519` + keypair при первом `up`
|
||||
- [ ] `seed-models` на живом диске (идемпотентно, SHA256)
|
||||
- [ ] `push` / `push-models`: `Models/`, `Wildcards/`, `CustomWorkflows/`
|
||||
- [ ] `pull-output` и `PULL_OUTPUT` на `stop` / повторный `up`
|
||||
- [ ] `seed-extensions` + restart контейнера
|
||||
- [ ] `destroy` только с флагом
|
||||
- [ ] `seed-extensions` + `systemctl restart swarmui`
|
||||
- [x] `destroy` только с флагом
|
||||
|
||||
## 4. Bootstrap SwarmUI + idle-killer
|
||||
|
||||
- [ ] Идемпотентный first-boot, маркер FS
|
||||
- [ ] Bind-mounts data volume → `/opt/swarmui`, systemd `swarmui`, auth
|
||||
- [x] Идемпотентный first-boot, маркер FS (`/mnt/swarm_data/.gpu-rent-ready`)
|
||||
- [x] Bind-mounts data volume → `/opt/swarmui`, systemd `swarmui` (auth SwarmUI ещё на spike)
|
||||
- [ ] Clone `extensions.yaml` в Extensions / DLNodes до старта UI
|
||||
- [ ] Autocomplete: danbooru.csv + Settings.fds; на каждом up — GitHub sha
|
||||
- [ ] Civitai seed по манифесту; без токена — дефолт SwarmUI
|
||||
@@ -74,8 +74,8 @@
|
||||
|
||||
## 5. Туннель
|
||||
|
||||
- [ ] `gpu-rent tunnel` → 17801, Ctrl+C не делает `stop`
|
||||
- [ ] `gpu-rent open` / `tunnel --open`
|
||||
- [x] `gpu-rent tunnel` → 17801, Ctrl+C не делает `stop`
|
||||
- [x] `gpu-rent open` / `tunnel --open`
|
||||
- [ ] EXPIRED → unshelve + reconnect, пока туннель жив
|
||||
- [ ] Сниппет MCP в stdout
|
||||
|
||||
|
||||
+20
-8
@@ -10,20 +10,32 @@
|
||||
|
||||
Нужен **Python 3.11+**. На Windows при установке включи «Add python.exe to PATH».
|
||||
|
||||
В корне репозитория:
|
||||
В корне репозитория достаточно лаунчера — venv и `pip install` он сделает сам:
|
||||
|
||||
```powershell
|
||||
.\gpu-rent.ps1 --help
|
||||
.\gpu-rent.ps1 doctor
|
||||
```
|
||||
|
||||
```bat
|
||||
gpu-rent.bat --help
|
||||
```
|
||||
|
||||
```bash
|
||||
chmod +x gpu-rent.sh
|
||||
./gpu-rent.sh --help
|
||||
```
|
||||
|
||||
Первый запуск копирует `env.example` в `%USERPROFILE%\.gpu-rent\.env` / `~/.gpu-rent/.env`, если файла ещё нет. Заполни `OS_*` (шаги ниже). После `git pull`, если изменился `pyproject.toml`, лаунчер переустановит пакет.
|
||||
|
||||
Ручной венв по желанию (для разработки / pytest):
|
||||
|
||||
```powershell
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\activate
|
||||
python -m pip install -U pip
|
||||
python -m pip install -e .
|
||||
```
|
||||
|
||||
Проверка:
|
||||
|
||||
```powershell
|
||||
python -m pip install -e ".[dev]"
|
||||
python -m gpu_rent --help
|
||||
gpu-rent --help
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user