chore: v0.36.0-dev + CI/CD в docs + copilot instructions
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
# Инструкция для Copilot — проект elmAI
|
||||||
|
|
||||||
|
> Последнее обновление: 31 мая 2026 · v0.36.0-dev
|
||||||
|
|
||||||
|
## Репозитории
|
||||||
|
|
||||||
|
| Репо | Назначение | Хостинг |
|
||||||
|
|------|-----------|---------|
|
||||||
|
| `elmer/` (этот) | Сервер Python/Flask | gitea.services.ngcloud.ru/Nail/elmer |
|
||||||
|
| `elmer/android/` | Android-приложение Kotlin | github.com/Repinoid/elmer-android |
|
||||||
|
|
||||||
|
## Деплой
|
||||||
|
|
||||||
|
### Сервер (obdai.ru, 5.172.178.213)
|
||||||
|
- Код: `/opt/elmer` (git clone gitea)
|
||||||
|
- Ветка: `master` (по умолчанию)
|
||||||
|
- Деплой: `ssh obdai.ru "cd /opt/elmer && git pull && sudo systemctl restart elmer"`
|
||||||
|
- Сервис: `gunicorn -w 4 -b 127.0.0.1:8000 web.app:app`
|
||||||
|
- Прокси: nginx :443 → :8000
|
||||||
|
|
||||||
|
### APK
|
||||||
|
- Сборка: вручную (`./gradlew assembleDebug` в `android/`)
|
||||||
|
- Доставка: `scp app-debug.apk obdai.ru:/opt/elmer/web/static/app-debug.apk`
|
||||||
|
- Ссылка: `https://obdai.ru/elmer.apk` → `web/static/app-debug.apk`
|
||||||
|
- НИКАКИХ GitHub Actions, CI/CD сервисов
|
||||||
|
|
||||||
|
### Версионирование
|
||||||
|
- APK: `android/app/build.gradle.kts` → `versionName`
|
||||||
|
- Сайт: `web/templates/index.html` (синхронизировать вручную)
|
||||||
|
- Документация: в заголовках `.md` файлов
|
||||||
|
|
||||||
|
## Правила работы
|
||||||
|
|
||||||
|
1. **Не выдумывать инфраструктуру.** Никаких GitHub Actions, Docker, Kubernetes, CI/CD сервисов. Всё вручную.
|
||||||
|
2. **Читать документацию перед действиями.** `doc/architecture.md` — канонический источник.
|
||||||
|
3. **Не редактировать отчёты Опуса.** `doc/opus-review*.md` — только для чтения.
|
||||||
|
4. **Ключи и токены:** LLM-ключ только на сервере (`config.yaml`), НЕ в APK. `X-Api-Key` приложения — через `BuildConfig.API_KEY` из `local.properties`.
|
||||||
|
5. **Git:** `elmer/` и `elmer/android/` — отдельные репо, отдельные коммиты.
|
||||||
|
6. **Ветки:** `master` — продакшен, `opus-fixes` и др. — для правок. Вливать в master когда готово.
|
||||||
|
7. **После правок:** коммит + пуш + (если сервер) деплой через SSH.
|
||||||
|
8. **Версия:** менять в трёх местах — `build.gradle.kts`, `index.html`, доки.
|
||||||
|
|
||||||
|
## Структура сервера
|
||||||
|
|
||||||
|
```
|
||||||
|
elmer/
|
||||||
|
├── api/ # REST, БД, скрипты, парсер
|
||||||
|
├── brain/ # LLM-клиент, промпты
|
||||||
|
├── obd/ # ELM327 стейт-машина
|
||||||
|
├── web/ # Flask, шаблоны, статика (APK)
|
||||||
|
├── android/ # Android-приложение (отдельный репо)
|
||||||
|
├── doc/ # Документация
|
||||||
|
├── config.yaml # LLM API key, порты
|
||||||
|
└── run.py # Локальный запуск
|
||||||
|
```
|
||||||
+37
-15
@@ -1,6 +1,6 @@
|
|||||||
# Архитектура elmAI
|
# Архитектура elmAI
|
||||||
|
|
||||||
> v0.28.0-dev, 29 мая 2026
|
> v0.36.0-dev, 31 мая 2026
|
||||||
|
|
||||||
## Общая схема
|
## Общая схема
|
||||||
|
|
||||||
@@ -99,24 +99,46 @@ elmer-android/app/src/main/java/ru/elmer/client/
|
|||||||
└── ElmForwardService.kt # (устарел)
|
└── ElmForwardService.kt # (устарел)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Деплой и доставка APK
|
## CI/CD и деплой
|
||||||
|
|
||||||
|
**Никаких сторонних CI/CD-сервисов (GitHub Actions, GitLab CI, Jenkins и т.д.). Всё вручную.**
|
||||||
|
|
||||||
|
### Сервер (elmer)
|
||||||
|
|
||||||
```
|
```
|
||||||
Сборка APK (Android Studio / gradlew assembleDebug)
|
Локально: git push gitea master
|
||||||
│
|
│
|
||||||
└── app-debug.apk → вручную на сервер
|
▼
|
||||||
│
|
Сервер: ssh obdai.ru
|
||||||
└── scp → obdai.ru:/opt/elmer/web/static/app-debug.apk
|
cd /opt/elmer && git pull origin master
|
||||||
|
sudo systemctl restart elmer
|
||||||
```
|
```
|
||||||
|
|
||||||
**APK для пользователей:**
|
- Репо: `gitea.services.ngcloud.ru/Nail/elmer`
|
||||||
- Сервер: `https://obdai.ru/elmer.apk` → `web/static/app-debug.apk`
|
- Ветка: `master`
|
||||||
- Версия APK: `app/build.gradle.kts` → `versionName`
|
- Сервис: `gunicorn -w 4 -b 127.0.0.1:8000 web.app:app`
|
||||||
- Версия на сайте: `web/templates/index.html` (синхронизировать вручную)
|
|
||||||
|
|
||||||
**Сервер (obdai.ru, 5.172.178.213):**
|
|
||||||
- Код: `/opt/elmer` (git clone gitea.services.ngcloud.ru/Nail/elmer)
|
|
||||||
- Ветка по умолчанию: master
|
|
||||||
- Сервис: `sudo systemctl restart elmer` → gunicorn -w 4
|
|
||||||
- Прокси: nginx :443 → 127.0.0.1:8000
|
- Прокси: nginx :443 → 127.0.0.1:8000
|
||||||
- Конфиг: `/opt/elmer/config.yaml`
|
- Конфиг: `/opt/elmer/config.yaml`
|
||||||
|
|
||||||
|
### Android APK (elmer-android)
|
||||||
|
|
||||||
|
```
|
||||||
|
Локально: cd android && ./gradlew assembleDebug
|
||||||
|
scp app/build/outputs/apk/debug/app-debug.apk obdai.ru:/opt/elmer/web/static/
|
||||||
|
```
|
||||||
|
|
||||||
|
- Репо: `github.com/Repinoid/elmer-android`
|
||||||
|
- Сборка: `./gradlew assembleDebug`
|
||||||
|
- Доставка: `scp` на сервер в `web/static/app-debug.apk`
|
||||||
|
- Ссылка для пользователей: `https://obdai.ru/elmer.apk`
|
||||||
|
- APK обновляется **только** при изменениях в Android-коде
|
||||||
|
|
||||||
|
### Версионирование
|
||||||
|
|
||||||
|
| Где | Файл |
|
||||||
|
|-----|------|
|
||||||
|
| APK | `android/app/build.gradle.kts` → `versionName` |
|
||||||
|
| Сайт | `web/templates/index.html` |
|
||||||
|
| Документация | заголовки `.md` файлов |
|
||||||
|
|
||||||
|
**Версию менять одновременно во всех трёх местах.**
|
||||||
|
|||||||
@@ -13,14 +13,14 @@
|
|||||||
<img src="/static/logo.png" alt="elmAI" style="width:96px;height:96px;border-radius:20px;margin-bottom:10px;">
|
<img src="/static/logo.png" alt="elmAI" style="width:96px;height:96px;border-radius:20px;margin-bottom:10px;">
|
||||||
<h1>elmAI</h1>
|
<h1>elmAI</h1>
|
||||||
<p class="subtitle">Диагностика авто через ELM327 + ИИ</p>
|
<p class="subtitle">Диагностика авто через ELM327 + ИИ</p>
|
||||||
<p class="subtitle" style="font-size:12px;opacity:0.7;">v0.35.0-dev — 31 мая 2026</p>
|
<p class="subtitle" style="font-size:12px;opacity:0.7;">v0.36.0-dev — 31 мая 2026</p>
|
||||||
|
|
||||||
<div class="card" style="text-align:center;margin-bottom:20px;">
|
<div class="card" style="text-align:center;margin-bottom:20px;">
|
||||||
<p style="margin:0 0 10px 0;">📱 Скачай приложение на телефон:</p>
|
<p style="margin:0 0 10px 0;">📱 Скачай приложение на телефон:</p>
|
||||||
<a href="/static/app-debug.apk" style="color:#ff6b35;font-size:18px;font-weight:bold;text-decoration:none;">
|
<a href="/static/app-debug.apk" style="color:#ff6b35;font-size:18px;font-weight:bold;text-decoration:none;">
|
||||||
⬇️ Скачать elmAI APK
|
⬇️ Скачать elmAI APK
|
||||||
</a>
|
</a>
|
||||||
<p style="font-size:11px;opacity:0.6;margin:4px 0 0 0;">v0.35.0-dev • нажмите чтобы скачать</p>
|
<p style="font-size:11px;opacity:0.6;margin:4px 0 0 0;">v0.36.0-dev • нажмите чтобы скачать</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Кнопка десктоп-диагностики скрыта — только для разработчика с прямым ELM327 -->
|
<!-- Кнопка десктоп-диагностики скрыта — только для разработчика с прямым ELM327 -->
|
||||||
|
|||||||
Reference in New Issue
Block a user