Files
2026-04-19 14:20:01 +03:00

1.9 KiB

FR24 ingest compose skeleton

This directory contains the Docker Compose skeleton for the RTL-SDR ingest contour.

Services

  • postgres — PostgreSQL 16 + PostGIS, single source of truth for ingest and API
  • capture — RTL-SDR access and raw_packets writer
  • preprocess — normalization, flights/tracks/track_points builder, recovery
  • api — reader for noisemap UI and future viewer endpoints
  • monitoring — separate container for healthchecks, disk/DB/capture status, alerts

Layout

  • ../db/postgres — PostgreSQL data directory
  • ../db/init — bootstrap SQL for extensions and schema
  • ../ingest — capture and preprocess implementation
  • ../frontend — API/viewer implementation
  • ../logs/* — service logs
  • ../backup — pg_dump / restore artifacts

Architecture notes

  • raw_packets stores binary payloads as base64 plus metadata: timestamp, frequency, RSSI, SNR, samplerate.
  • Raw retention is 3 days.
  • Raw data is partitioned by date.
  • capture and preprocess are separate containers.
  • api is included now so the ingest↔API contract is fixed early.
  • The contract between ingest and API is the PostgreSQL schema itself: ingest writes tables, API reads the same tables.

API / data contract

The API reads:

  • captures
  • raw_packets
  • aircraft
  • flights
  • track_points
  • tracks
  • processing_state
  • noise_results

Planned endpoints:

  • GET /health — service status
  • GET /captures — capture sessions
  • GET /aircraft — aircraft list and search
  • GET /flights — flights with filters
  • GET /tracks/{track_id} — a single track with points
  • GET /noise-results — noise polygons and summaries
  • GET /dashboard/status — ingest / recovery / backlog status for UI
  • GET /viewer/config — map/UI bootstrap metadata

Notes

  • No runtime is started from this repository during preparation.
  • The stack expects a .env file copied from .env.example in this directory.