chore: v0.36.0-dev + CI/CD в docs + copilot instructions

This commit is contained in:
Repinoid
2026-05-31 17:44:52 +03:00
parent 7f71cb1709
commit f4475c441f
3 changed files with 94 additions and 17 deletions
+55
View File
@@ -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
View File
@@ -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` файлов |
**Версию менять одновременно во всех трёх местах.**
+2 -2
View File
@@ -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 -->