Files
wiki/tasks/flightradar24/ingest/capture
2026-04-20 02:30:01 +03:00
..
2026-04-19 15:30:01 +03:00
2026-04-20 02:30:01 +03:00
2026-04-19 14:50:01 +03:00

Capture Service

Reads RTL-SDR (or generates fake test data) and writes raw ADS-B packets to PostgreSQL.

What it does

  1. Waits for PostgreSQL to be ready
  2. Creates a row in fr24.captures with session metadata
  3. Writes fake fr24.raw_packets rows every ~2 seconds (14-byte DF17 Mode-S format)
  4. Touches /tmp/capture-ready for Docker healthcheck
  5. On SIGTERM: marks the capture session as stopped

In production, replace the fake packet loop in main.py with real RTL-SDR / dump1090 input.

Dependencies

  • psycopg2-binary — PostgreSQL driver

Environment variables

Variable Default Description
POSTGRES_HOST required DB host
POSTGRES_PORT 5432 DB port
POSTGRES_DB required DB name
POSTGRES_USER required DB user
POSTGRES_PASSWORD required DB password
RTLSDR_CENTER_FREQUENCY 1090000000 Center freq Hz
RTLSDR_SAMPLE_RATE 2000000 Sample rate Hz
RTLSDR_DEVICE_INDEX 0 RTL-SDR device index
RTLSDR_GAIN auto Gain dB or auto
PACKET_INTERVAL_SECONDS 2.0 Interval between fake packets

Run locally

pip install -r requirements.txt
export POSTGRES_HOST=localhost POSTGRES_DB=fr24 POSTGRES_USER=fr24 POSTGRES_PASSWORD=change-me
python main.py

Build & run via Docker

docker build -t fr24-capture .
docker run --env-file ../../compose/.env fr24-capture