- Updated the project structure to store configuration files (.env, models.yaml, extensions.yaml) in the project root instead of the user's home directory. - Enhanced the setup process to automatically copy example files to the project root on first run. - Implemented a migration function to transfer legacy configuration files from the user's home directory to the new project structure. - Revised documentation to reflect changes in file locations and setup instructions. - Improved code readability and maintainability by refactoring path management functions.
60 lines
3.4 KiB
Markdown
60 lines
3.4 KiB
Markdown
# 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).
|
|
|
|
## Что уже можно запустить
|
|
|
|
Windows (cmd или двойной клик): `gpu-rent.bat`
|
|
PowerShell: `.\gpu-rent.ps1`
|
|
Linux / macOS / Git Bash: `./gpu-rent.sh`
|
|
|
|
Скрипты сами создают `.venv`, ставят пакет и прокидывают аргументы. Активировать окружение не нужно.
|
|
|
|
```powershell
|
|
.\gpu-rent.ps1 doctor
|
|
.\gpu-rent.ps1 dry-run
|
|
.\gpu-rent.ps1 status
|
|
# если doctor зелёный и квота GPU > 0:
|
|
.\gpu-rent.ps1 up --yes
|
|
.\gpu-rent.ps1 tunnel
|
|
.\gpu-rent.ps1 stop
|
|
```
|
|
|
|
```bash
|
|
chmod +x gpu-rent.sh # один раз на Unix
|
|
./gpu-rent.sh doctor
|
|
```
|
|
|
|
Ключи: скопируй `env.example` в `.env` в корне репо (скрипт сделает это сам при первом запуске) и заполни `OS_*` по [`docs/setup.md`](docs/setup.md).
|
|
|
|
`up` поднимает compute и ставит SwarmUI нативно (`launch-linux.sh` + systemd). `tunnel` пробрасывает `localhost:17801`. `stop` гасит GPU, диски оставляет.
|
|
|
|
## Зачем какие ключи
|
|
|
|
| Что | Зачем | Как получить |
|
|
| --- | --- | --- |
|
|
| Сервисный пользователь 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 не класть.
|