48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
docker build -t fr24-capture .
|
|
docker run --env-file ../../compose/.env fr24-capture
|
|
```
|