From f4475c441f700ed1268265af753ff108b6245cc8 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Sun, 31 May 2026 17:44:52 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20v0.36.0-dev=20+=20CI/CD=20=D0=B2=20doc?= =?UTF-8?q?s=20+=20copilot=20instructions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .instructions.md | 55 ++++++++++++++++++++++++++++++++++++++++ doc/architecture.md | 52 ++++++++++++++++++++++++++----------- web/templates/index.html | 4 +-- 3 files changed, 94 insertions(+), 17 deletions(-) create mode 100644 .instructions.md diff --git a/.instructions.md b/.instructions.md new file mode 100644 index 0000000..05ad487 --- /dev/null +++ b/.instructions.md @@ -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 # Локальный запуск +``` diff --git a/doc/architecture.md b/doc/architecture.md index c223418..30a4aa1 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -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` файлов | + +**Версию менять одновременно во всех трёх местах.** diff --git a/web/templates/index.html b/web/templates/index.html index 3593828..872f936 100644 --- a/web/templates/index.html +++ b/web/templates/index.html @@ -13,14 +13,14 @@ elmAI

elmAI

Диагностика авто через ELM327 + ИИ

-

v0.35.0-dev — 31 мая 2026

+

v0.36.0-dev — 31 мая 2026

📱 Скачай приложение на телефон:

⬇️ Скачать elmAI APK -

v0.35.0-dev • нажмите чтобы скачать

+

v0.36.0-dev • нажмите чтобы скачать