Ребренд Мониторинг Орбита -> Железный Егорин; accent green->amber #F59E0B; LoginScreen правая половина = Lightning (WebGL, hue 35 тёплый) под стеклянной формой; левая панель — тёплый градиент. Доступ агентам: репо публичный, push german-токеном. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
52 lines
1.9 KiB
YAML
52 lines
1.9 KiB
YAML
# Приёмный (ingest) стек + шлюз на vm-mts1. Лёгкий: без TimescaleDB/HA/Grafana.
|
|
# Устройства (трекеры Navtelecom) шлют FLEX на :2000 → flex-server декодирует →
|
|
# MQTT (mosquitto) → api (шлюз) → REST/WS для фронта.
|
|
#
|
|
# Раскладка каталога (собирает деплой-агент на ноде, /opt/monitor-ingest):
|
|
# docker-compose.yml
|
|
# mosquitto/mosquitto.conf
|
|
# flex-server/ (содержимое navtelecom-flex-server: Dockerfile, flex_server/, requirements.txt)
|
|
# api/ (содержимое servaki-monitor/server: Dockerfile, package.json, src/)
|
|
services:
|
|
mosquitto:
|
|
image: eclipse-mosquitto:2
|
|
container_name: monitor-mosquitto
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
|
|
|
|
flex-server:
|
|
build: ./flex-server
|
|
container_name: monitor-flex
|
|
restart: unless-stopped
|
|
ports:
|
|
- "2000:2000" # ← порт приёма устройств (указывается в трекере)
|
|
environment:
|
|
FLEX_LISTEN_PORT: 2000
|
|
MQTT_ENABLED: "true"
|
|
MQTT_HOST: mosquitto
|
|
MQTT_PORT: 1883
|
|
MQTT_BASE_TOPIC: navtelecom
|
|
DB_ENABLED: "false" # без TimescaleDB — экономим диск
|
|
LOG_LEVEL: INFO
|
|
depends_on:
|
|
- mosquitto
|
|
|
|
api:
|
|
build: ./api
|
|
container_name: monitor-api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:4100:4100" # наружу только через Caddy (/api, /socket)
|
|
env_file:
|
|
- .env # JWT_SECRET + YANDEX_* (секреты, не в репозитории)
|
|
environment:
|
|
PORT: 4100
|
|
DATA_DIR: /data
|
|
MQTT_URL: mqtt://mosquitto:1883
|
|
MQTT_BASE_TOPIC: navtelecom
|
|
volumes:
|
|
- ./data:/data # персист арендаторов/привязок устройств
|
|
depends_on:
|
|
- mosquitto
|