d6d247875bf6743872188565df72b1644a921c89
- Added optional SSH security-group CIDR configuration in `env.example` to allow broader access if needed. - Improved `guess_operator_cidr` function to support multiple IP retrieval services and allow overriding CIDR via environment variable. - Refactored security group management to ensure idempotency and proper logging of security group rules. - Introduced helper function `_get_volume_or_none` for better volume management and error handling. - Updated `wait_ssh` function to enhance SSH connection handling with improved timeout settings and logging. - Added state reset logic in `cmd_up` to handle scenarios where the server is not found in the cloud.
gpu-rent
Прерываемый GPU в Selectel + SwarmUI на http://127.0.0.1:17801.
Модели и ComfyUI живут на сетевом диске — платишь за GPU только пока он поднят.
Сначала ключи и квота GPU, не up. → docs/setup.md
Быстрый старт
.\gpu-rent.ps1 doctor # preflight
.\gpu-rent.ps1 flavors # что выберет фоллбек
.\gpu-rent.ps1 dry-run # план без create
.\gpu-rent.ps1 up --yes # GPU + SwarmUI + seed
.\gpu-rent.ps1 tunnel # UI на :17801 (Ctrl+C ≠ stop)
.\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 / up --no-spot / up --flavor ID |
Поднять GPU |
tunnel / tunnel --open |
SSH-проброс; 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.
Модели
- Civitai-seed по
models.yaml(нуженCIVITAI_API_TOKEN, хостcivitai.red). - Локальные
Models/,Wildcards/,CustomWorkflows/— непустые едут на каждыйup.
Пример в репо уже с Krea 2 + LoRA — скопируй в models.yaml.
Документация
| Док | Зачем |
|---|---|
| docs/setup.md | Ключи, квота, RC |
| docs/spike-notes.md | Чеклист живого spike |
| docs/cli.md | Все команды и .env |
| docs/decisions.md | Продуктовые решения |
| docs/roadmap.md | Что готово / что нет |
MIT. Секреты и веса в git не коммитить.
Languages
Python
96.5%
Shell
2.6%
PowerShell
0.8%