Files
wiki/tasks/flightradar24/docs/ARCHITECTURE.md
2026-04-19 14:20:01 +03:00

56 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Архитектура 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`.