# egorin — правила для ИИ-агентов Рабочий репозиторий подрядчика Егорина по проекту «Servaki Monitor» — единая смартпанель мониторинга (энергомониторинг Sunways/Wiren Board, GPS-мониторинг Navtelecom/Traccar, сетевая инфраструктура mesh2). Фронт: React 18 + Vite + TypeScript + Tailwind. Основной/боевой репозиторий проекта — `german/servaki-monitor` (см. `DEPLOY-mapviewgl-lilia.md`), деплой прод-версии — на узле vm-mts1 (`2.59.83.139`) за Caddy, домен `monitor.servaki.online`. > Контекст флота — vault `german/fleet-vault` (`00-MOC/HOME.md`), правила работы с ним — `knowledge/skill-vault-workflow.md`. Здесь — только специфика этого репозитория. ## Структура — ключевые папки/файлы, куда класть новое - `README.md`, `SPEC.md` — описание продукта и сводное ТЗ/архитектура - `src/` — фронт: `App.tsx`, `main.tsx`, `api/`, `components/`, `config/` (реестр модулей), `core/` (типы MonitoredEntity/MonitorEvent), `data/` (моки), `lib/`, `modules/` (energy / smart / gps) - `server/` — Node-шлюз (Express + ws), свои `package.json`, `Dockerfile`, `.env.example` - `deploy/` — приёмная инфраструктура: `ingest/` (flex-server), `ingress-watchdog.*`, MQTT/n8n скрипты, systemd-юниты - `prototypes/` — HTML-прототипы (референсы UI, напр. `orbit-gps-mobile.html`) - `docker-compose.yml`, `Dockerfile`, `nginx.conf` — контейнеризация и прод-прокси - `DEPLOY-mapviewgl-lilia.md` — пример задачи-инструкции для агента по деплою фичи - `.env.example` — плейсхолдеры переменных фронта/шлюза, настоящие значения сюда не класть - Новые компоненты/модули фронта — в `src/modules/<модуль>/`, новые адаптеры шлюза — в `server/src/` ## Объект и доступ — какое оборудование/узлы/домены затрагивает репо - vm-mts1 (`2.59.83.139`, ключ `~/.ssh/id_mts`, НЕ `id_rsa0404`) — прод фронт+шлюз, за Caddy, путь `/opt/servaki-monitor/dist` - Дубль/тяжёлые данные (InfluxDB/Grafana/MQTT/flex-server) — офис-Proxmox - Домен: `monitor.servaki.online`; ingest GPS: `gps.servaki.online:2000` (протокол FLEX/NTCB) - **ru1 трогать нельзя** (правило Германа) — если vm-mts1 виден только через ru1, использовать его ТОЛЬКО как транзитный SSH-прокси (scp), без изменения конфига ru1 - Секреты (JWT, Яндекс OAuth client_secret, токены, `.env`) — только на ноде (`chmod 600`) и на Я.Диске; в репо только `.env.example` ## Зона ответственности — кто ведёт репо Ведёт подрядчик Егорин; координация и постановка задач — от german-агента (см. пример в `DEPLOY-mapviewgl-lilia.md`). Правило флота: один узел/ВМ/роутер не трогают два агента одновременно — сверяйся с `owner_agent` заметки в vault и делай свежий `git pull` перед началом работы. vm-mts1 — общий узел с продакшн-репозиторием `german/servaki-monitor`, синхронизируй изменения между репозиториями перед деплоем. ## Git-воркфлоу `git pull --rebase` до работы; `git add -A && git commit -m "<что/зачем>, agent=<имя>" && git push` после каждого атомарного изменения; коммитить мелко и часто; в markdown-конфликтах сохранять обе правки. ## Что НЕ коммитить `.env` (кроме `.env.example`), `*.key`/`*.pem`/`*.crt`, JWT-секреты, Яндекс OAuth client_secret, токены доступа, `node_modules`, `dist` (уже в `.gitignore`), персональные данные клиентов (демо-клиент в SPEC — `tempelhoff`, реальные данные клиентов сюда не класть). ## Деплой / проверка ```bash npm install npm run dev # http://localhost:5180 npm run build # -> dist/ ``` Прод-деплой на vm-mts1: ```bash scp dist/index.html ops@2.59.83.139:/opt/servaki-monitor/dist/index.html scp -r dist/assets ops@2.59.83.139:/opt/servaki-monitor/dist/ ``` Проверка: открыть `https://monitor.servaki.online` (десктоп/мобайл-режимы карты), консоль без ошибок, `docker compose up -d --build` для контейнерного варианта. TODO: уточнить актуальный процесс деплоя шлюза (`server/`) — в README описан только этап фронта. ## Куда писать наработки Код/конфиги — сюда. Решение/факт/грабля — заметкой в `fleet-vault/memory/`, по объекту — в `clients/`, плюс ссылка в нужный `00-MOC/*.md`. Копия знаний — Я.Диск `servaki.online\_vault-copy`. ## Связанное Боевой репозиторий проекта — `german/servaki-monitor`; узел деплоя — vm-mts1 (`2.59.83.139`); прототипы UI — `orbit-gps-panel.html`, `sunways-dashboard.html` (наработки «Мониторинг ПО/NAvtelecom»); заметка по проекту — `fleet-vault/knowledge/mobile-map-maplibre-verdict-2026-07-05.md` и `[[servaki-monitor-2026-06-30]]`.