56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# Архитектура RTL-SDR ingest-контура для FR24 / noisemap
|
||
|
||
## 1. Назначение
|
||
Этот документ описывает контейнерную архитектуру локального ADS-B контура на RTL-SDR внутри одной VM в PVE.
|
||
|
||
Цель контура:
|
||
- принимать ADS-B поток в real time
|
||
- хранить сырьё с retention 3 дня
|
||
- автоматически догонять пропуски после сбоя
|
||
- хранить данные в PostgreSQL/PostGIS
|
||
- отдавать данные в noisemap / карту
|
||
|
||
## 2. Контейнеры
|
||
|
||
### 2.1 `postgres`
|
||
Хранит:
|
||
- `captures`
|
||
- `raw_packets`
|
||
- `aircraft`
|
||
- `flights`
|
||
- `tracks`
|
||
- `track_points`
|
||
- `processing_state`
|
||
- `noise_results`
|
||
|
||
### 2.2 `capture`
|
||
- читает USB RTL-SDR
|
||
- пишет `captures` и `raw_packets`
|
||
- не занимается нормализацией
|
||
|
||
### 2.3 `preprocess`
|
||
- читает `raw_packets`
|
||
- строит `aircraft`, `flights`, `tracks`, `track_points`
|
||
- управляет `processing_state`
|
||
- поддерживает recovery
|
||
|
||
### 2.4 `api`
|
||
- читает те же таблицы
|
||
- отдаёт данные для noisemap UI
|
||
- не пересчитывает геометрию на лету
|
||
|
||
### 2.5 `monitoring`
|
||
- отдельный контейнер
|
||
- healthchecks, disk/DB/capture status, alerts
|
||
|
||
## 3. Docker Compose порядок
|
||
Минимальный состав:
|
||
- `postgres`
|
||
- `capture`
|
||
- `preprocess`
|
||
- `api`
|
||
- `monitoring`
|
||
|
||
## 4. Контракт ingest↔API
|
||
Контрактом является схема PostgreSQL. Детали — в `docs/INGEST_API_CONTRACT.md`.
|