Refactor environment and configuration management
- 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.
This commit is contained in:
+9
-8
@@ -26,7 +26,9 @@ chmod +x gpu-rent.sh
|
||||
./gpu-rent.sh --help
|
||||
```
|
||||
|
||||
Первый запуск копирует `env.example` в `%USERPROFILE%\.gpu-rent\.env` / `~/.gpu-rent/.env`, если файла ещё нет. Заполни `OS_*` (шаги ниже). После `git pull`, если изменился `pyproject.toml`, лаунчер переустановит пакет.
|
||||
Первый запуск копирует `env.example` → `.env`, `models.example.yaml` → `models.yaml`, `extensions.example.yaml` → `extensions.yaml` в **корне репозитория**, если файлов ещё нет. Заполни `OS_*` в `.env` (шаги ниже). После `git pull`, если изменился `pyproject.toml`, лаунчер переустановит пакет.
|
||||
|
||||
Секреты и runtime не уезжают в `%USERPROFILE%`: только `<repo>/.env` и `<repo>/.gpu-rent/` (state, SSH-ключ). Оба в `.gitignore`. Если раньше лежало в `~\.gpu-rent\`, CLI один раз перенесёт в проект.
|
||||
|
||||
Ручной венв по желанию (для разработки / pytest):
|
||||
|
||||
@@ -129,9 +131,8 @@ python -m gpu_rent --help
|
||||
Создай каталог и файл **вне git**:
|
||||
|
||||
```powershell
|
||||
mkdir $env:USERPROFILE\.gpu-rent
|
||||
copy env.example $env:USERPROFILE\.gpu-rent\.env
|
||||
notepad $env:USERPROFILE\.gpu-rent\.env
|
||||
copy env.example .env
|
||||
notepad .env
|
||||
```
|
||||
|
||||
Вставь значения из RC + пароль + `GPU_RENT_AZ`. Никогда не коммить `.env`.
|
||||
@@ -163,7 +164,7 @@ openstack flavor list
|
||||
Манифест (не в git со своими id, если не хочешь светить вкусы):
|
||||
|
||||
```powershell
|
||||
copy models.example.yaml $env:USERPROFILE\.gpu-rent\models.yaml
|
||||
copy models.example.yaml models.yaml
|
||||
```
|
||||
|
||||
`version_id: 0` — заглушка, doctor её игнорирует. Нужен **modelVersionId** из URL, не id карточки модели.
|
||||
@@ -180,13 +181,13 @@ copy models.example.yaml $env:USERPROFILE\.gpu-rent\models.yaml
|
||||
2. Fine-grained: доступ только к нужным репам, **Contents: Read**.
|
||||
3. `GIT_TOKEN` в `.env`.
|
||||
|
||||
Скопируй шаблон: `extensions.example.yaml` → `~\.gpu-rent\extensions.yaml`. Пустой файл = стоковый SwarmUI.
|
||||
Скопируй шаблон: `extensions.example.yaml` → `extensions.yaml` в корне репо. Пустой файл = стоковый SwarmUI.
|
||||
|
||||
---
|
||||
|
||||
## 6. SSH
|
||||
|
||||
Ключ **не надо** делать руками. CLI создаст `~\.gpu-rent\id_ed25519` без passphrase и зарегистрирует keypair в OpenStack при первом `up`. `doctor` только проверяет, что это получится.
|
||||
Ключ **не надо** делать руками. CLI создаст `<repo>\.gpu-rent\id_ed25519` без passphrase и зарегистрирует keypair в OpenStack при первом `up`. `doctor` только проверяет, что это получится.
|
||||
|
||||
---
|
||||
|
||||
@@ -197,7 +198,7 @@ copy models.example.yaml $env:USERPROFILE\.gpu-rent\models.yaml
|
||||
- [ ] Тикет на лимит **1× GPU** в нужном сегменте (или квота уже > 0)
|
||||
- [ ] Сервисный пользователь `member` на этот проект, пароль сохранён
|
||||
- [ ] RC скачан на **тот же пул**, где GPU
|
||||
- [ ] `~\.gpu-rent\.env` заполнен (`OS_*` + `GPU_RENT_AZ`)
|
||||
- [ ] `.env` в корне репо заполнен (`OS_*` + `GPU_RENT_AZ`)
|
||||
- [ ] Нет `X-Token` вместо пароля сервисного пользователя
|
||||
- [ ] (опционально) Civitai token + `models.yaml`
|
||||
- [ ] На балансе хватает на диск 100 GB **даже когда GPU выключен**
|
||||
|
||||
Reference in New Issue
Block a user