Files

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.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, реальные данные клиентов сюда не класть).

Деплой / проверка

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]].