58 lines
3.8 KiB
Markdown
58 lines
3.8 KiB
Markdown
# Инструкция для 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 отдавать напрямую через nginx, НЕ через Flask/gunicorn:** `location = /elmer.apk { alias /opt/elmer/web/static/app-debug.apk; }`
|
|
|
|
### APK
|
|
- Сборка: **автоматически GitHub Actions** при пуше в master
|
|
- Деплой: CI сам заливает APK на сервер (`appleboy/scp-action`)
|
|
- Ссылка: `https://obdai.ru/elmer.apk` → nginx отдаёт напрямую `web/static/app-debug.apk`
|
|
|
|
### Версионирование
|
|
- APK: `android/app/build.gradle.kts` → `versionName`
|
|
- Сайт: `web/templates/index.html` (синхронизировать вручную)
|
|
- Документация: в заголовках `.md` файлов
|
|
|
|
## Правила работы
|
|
|
|
1. **ЕСЛИ в диалоге содержится ВОПРОС в любой форме — только ответить. НИЧЕГО НЕ ПРЕДПРИНИМАТЬ.** Не писать код, не редактировать файлы, не коммитить, не деплоить. Только прямые императивы («сделай», «исправь», «напиши», «внеси», «задеплой») — команда к действию.
|
|
2. **Не выдумывать инфраструктуру.** Никаких Docker, Kubernetes. Всё на голом железе.
|
|
3. **Читать документацию перед действиями.** `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`, доки.
|
|
9. **Документировать изменения** в `doc/history/YYYY-MM-DD.md` после каждого сеанса работы. Формат: 🔴/🟡/🟢 для приоритета, по файлам.
|
|
|
|
## Структура сервера
|
|
|
|
```
|
|
elmer/
|
|
├── api/ # REST, БД, скрипты, парсер
|
|
├── brain/ # LLM-клиент, промпты
|
|
├── obd/ # ELM327 стейт-машина
|
|
├── web/ # Flask, шаблоны, статика (APK)
|
|
├── android/ # Android-приложение (отдельный репо)
|
|
├── doc/ # Документация
|
|
├── config.yaml # LLM API key, порты
|
|
└── run.py # Локальный запуск
|
|
```
|