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
|
||||
|
||||
> 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 # (устарел)
|
||||
```
|
||||
|
||||
## Деплой и доставка APK
|
||||
## CI/CD и деплой
|
||||
|
||||
**Никаких сторонних CI/CD-сервисов (GitHub Actions, GitLab CI, Jenkins и т.д.). Всё вручную.**
|
||||
|
||||
### Сервер (elmer)
|
||||
|
||||
```
|
||||
Сборка APK (Android Studio / gradlew assembleDebug)
|
||||
Локально: git push gitea master
|
||||
│
|
||||
└── app-debug.apk → вручную на сервер
|
||||
│
|
||||
└── scp → obdai.ru:/opt/elmer/web/static/app-debug.apk
|
||||
▼
|
||||
Сервер: ssh obdai.ru
|
||||
cd /opt/elmer && git pull origin master
|
||||
sudo systemctl restart elmer
|
||||
```
|
||||
|
||||
**APK для пользователей:**
|
||||
- Сервер: `https://obdai.ru/elmer.apk` → `web/static/app-debug.apk`
|
||||
- Версия APK: `app/build.gradle.kts` → `versionName`
|
||||
- Версия на сайте: `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
|
||||
- Репо: `gitea.services.ngcloud.ru/Nail/elmer`
|
||||
- Ветка: `master`
|
||||
- Сервис: `gunicorn -w 4 -b 127.0.0.1:8000 web.app:app`
|
||||
- Прокси: nginx :443 → 127.0.0.1:8000
|
||||
- Конфиг: `/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;">
|
||||
<h1>elmAI</h1>
|
||||
<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;">
|
||||
<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;">
|
||||
⬇️ Скачать elmAI APK
|
||||
</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>
|
||||
|
||||
<!-- Кнопка десктоп-диагностики скрыта — только для разработчика с прямым ELM327 -->
|
||||
|
||||
Reference in New Issue
Block a user