Skip to content

nikondrat/jitro-admin

Repository files navigation

Jitro Admin

RU: веб-админка для операционного контроля торгового контура: что запущено, здоровье данных, стратегии и журналы — без необходимости лазить в консоль и логи на серверах.

EN: a web operations console for a trading stack — live posture, data health, strategies, and journals so you can answer “what’s running?” and “is anything obviously wrong?” from the browser.

Репозиторий вынесен из основного проекта Jitro. Полный торговый контур и инфраструктура в этой копии не дублируются.


Интерфейс

Dashboard Instruments Data Health
Dashboard Instruments Data Health
Strategies (список) Strategy → Journal Strategy → Stats
Strategies Journal Stats
System Audit
System Audit

Оглавление


Возможности

Область Что даёт интерфейс
Dashboard Оперативный обзор контура («радар» состояния).
Instruments Работа с универсом инструментов, связанным с системой.
Data Health Видимость хранилищ и сигналов целостности данных.
Live Logs Потоковый / почти live просмотр логов для разборов.
Ops Alerts Сводка операционных сигналов в одном месте.
Settings Настройки отображения и поведения UI.
Strategies Список, жизненный цикл, теги, карточка: обзор, журнал событий, статистика, работа со скриптом (по правам).
System Audit Экран для проверки конфигурации и «позы» системы.

Стек

Слой Технологии
Frontend Vue 3, Pinia, Vue Router, Vite, TypeScript, Tailwind CSS
Backend Rust, Axum, WebSocket, DuckDB; Redis и ZeroMQ по необходимости (env)

Архитектура (упрощённо)

flowchart LR
  subgraph ui [Browser]
    SPA[Vue SPA]
  end
  subgraph api [Admin backend]
    HTTP[REST API]
    WS[WebSocket]
  end
  subgraph data [Данные и потоки]
    DDB[(DuckDB)]
    R[(Redis)]
    ZMQ[ZeroMQ stream]
  end
  SPA --> HTTP
  SPA --> WS
  HTTP --> DDB
  HTTP --> R
  WS --> ZMQ
Loading

Быстрый старт

Vite проксирует /api и /ws на http://127.0.0.1:8000.

Проверка бэкенда: curl -s http://127.0.0.1:8000/api/liveok.

Требования

Компонент Ориентир
Rust stable
Node.js 20+
npm 10+

Бэкенд

Без Redis:

export JITRO_REDIS_DISABLE=1
cargo run --manifest-path backend/Cargo.toml

С Redis (redis://127.0.0.1/ по умолчанию):

docker compose up -d
cd backend && cargo run
Переменная Назначение
JITRO_REDIS_DISABLE=1 не использовать Redis
JITRO_ALLOW_NO_REDIS=1 не завершать процесс, если Redis недоступен
JITRO_REDIS_URL, REDIS_URL URL Redis

Файлы DuckDB по умолчанию создаются относительно текущей рабочей директории процесса; при необходимости задайте JITRO_INSTRUMENTS_DB_URL, JITRO_DATABASE_URL и др.

Фронтенд

cd ui
npm install
npm run dev

http://localhost:3000/

npm run build собирает статику в ui/dist/ — каталог артефактов и не входит в репозиторий (см. .gitignore).

Сид instruments из Parquet

Если таблица instruments пуста, при старте бэкенда импортируется data/fixtures/instruments.parquet (колонки: ticker, instrument_type, currency, lot_size, min_step, name). В exchange_id записывается значение ticker.

Переменная Назначение
JITRO_INSTRUMENTS_SEED_PARQUET путь к .parquet
JITRO_INSTRUMENTS_SEED_FORCE=1 импорт даже при непустой таблице
JITRO_INSTRUMENTS_SEED_DISABLE=1 отключить импорт

POST /api/instruments/sync (синхронизация с брокером) в этой сборке не реализована; реестр — через Parquet/собственные записи в DuckDB.


Связь с основным репозиторием Jitro

Проект изначально выделен из монорепозитория Jitro. Торговый рантайм и приватные пакеты в jitro-admin не входят и не требуются для сборки бэкенда.

Backend cargo build / cargo run из backend/ или с --manifest-path.
Frontend Прокси Vite на 127.0.0.1:8000.

Безопасность

Админку в проде нужно закрывать аутентификацией и отграничивать по сети; базовый API не заменяет IAM. Используйте TLS, корректный CORS, не выставляйте Redis и служебные порты в интернет.

About

Operations console for a trading stack: dashboard, strategies, data health, logs. Vue 3 + Rust (Axum).

Topics

Resources

Stars

Watchers

Forks

Contributors