6.0 KiB
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.exampledeploy/— приёмная инфраструктура: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, реальные данные клиентов сюда не класть).
Деплой / проверка
npm install
npm run dev # http://localhost:5180
npm run build # -> dist/
Прод-деплой на vm-mts1:
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]].