Leonid PershinandCursor 8074426c43 Refactor GPU rental network handling and enhance IP management
- Renamed "FIP" to "IP" in the status output for clarity.
- Updated `create_gpu_server` to accept `port_id` as an optional parameter, allowing for more flexible network configurations.
- Introduced `delete_access_ip` function to manage direct public ports or floating IPs more effectively.
- Enhanced session management to prioritize direct public IPs over floating IPs, improving connection reliability.
- Added checks for direct network availability in the doctor command to ensure proper network functionality.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 18:19:34 +03:00
2026-08-21 02:42:48 +03:00
2026-08-21 02:42:48 +03:00
2026-08-21 02:42:48 +03:00

gpu-rent

Прерываемый GPU в Selectel + SwarmUI на http://127.0.0.1:17801.

Модели и ComfyUI живут на сетевом диске. GPU платится только пока жив compute (upstop или idle-killer). Диск — всегда, даже после stop.


С нуля → первая картинка

Делай по порядку. Подробности и скрины панели — в docs/setup.md.

# Шаг Команда / действие
1 Python 3.11+, клон репо
2 Квота GPU в Selectel (> 0) или тикет setup §2
3 Сервисный пользователь + .env из RC setup §3
4 (Опц.) Civitai token + models.yaml setup §4
5 Preflight .\gpu-rent.ps1 doctor
6 Поднять GPU + туннель .\gpu-rent.ps1 up --yes
7 Открыть UI браузер сам / .\gpu-rent.ps1 open
8 Закончить сессию .\gpu-rent.ps1 stop

Unix: ./gpu-rent.sh … (один раз chmod +x gpu-rent.sh).

Не начинай с up, пока doctor не зелёный. Ключ панели X-Token для этого CLI не подходит.


Обычный день

.\gpu-rent.ps1 up --yes          # GPU + SwarmUI + туннель :17801
# работаешь в браузере…
# Ctrl+C / Ctrl+D = stop GPU (диски остаются)
.\gpu-rent.ps1 tunnel --open     # снова UI, если GPU ещё жив
.\gpu-rent.ps1 hold              # отложить idle-killer
.\gpu-rent.ps1 stop              # погасить GPU, диски оставить
Важно
Ctrl+C / Ctrl+D на туннеле stop GPU, диски остаются
Простой ~30 мин idle-killer сам удалит compute
Preemptible ~24 ч → EXPIRED; tunnel / up поднимут снова
Двойной клик лаунчера задай GPU_RENT_DEFAULT_ARGS=up --yes в gpu-rent.vars

Команды (кратко)

Команда Смысл
setup Wizard: .env, LLM, watchdog
doctor Preflight без create
flavors / dry-run Что выберет / план без денег
up / up --yes GPU + seed + туннель; без --yes — меню Selectel/LLM
up --ollama + Ollama (см. docs/llm.md)
up --llm-only --ollama только Ollama, без SwarmUI
tunnel / open Снова UI / браузер
hold / status Пауза killer / состояние
debug Read-only Debug API на :17821 (агент / Assistent)
seed-personas Overlay assistent-personas/ → VM
watchdog Локальный safety-net (мёртвый туннель → stop)
stop / destroy --i-understand-data-loss Стоп GPU / + диски
push / pull-output / seed-* / capture Файлы ↔ VM; capture = ссылки в yaml

Полный список: docs/cli.md. Civitai scrape (без картинок) → Assistent FTS: datasets/README.md.


Конфиг в корне репо

Файл Что
.env из env.exampleOS_*, Civitai (не в git)
gpu-rent.vars из example — несекретные дефолты, лаунчер
models.yaml / extensions.yaml манифесты (из *.example.yaml)
ollama-models.yaml Ollama-модели (из example; gitignore)
Models/ локальный push на up
.gpu-rent/ state, SSH-ключ (gitignore)

Лаунчер сам создаёт .venv и ставит пакет.


Документация

Док Зачем
docs/setup.md Пошаговая подготовка до первого up
docs/cli.md Все команды и переменные
docs/llm.md Ollama + Assistent (opt-in LLM)
docs/models.md Civitai + папка Models/
datasets/README.md Civitai Krea2 scrape → FTS Assistent
docs/spike-notes.md Чеклист первого живого прогона
docs/README.md Оглавление всего docs/

MIT. Секреты и веса в git не коммитить.

S
Description
No description provided
Readme MIT
3.5 MiB
Languages
Python 96.5%
Shell 2.6%
PowerShell 0.8%