ACARS WebDecoder is a realtime ACARS + ADS‑B capture and correlation platform with an aviation‑style instrument panel web UI.
This repository contains:
- backend: FastAPI server providing device management, ACARS ingestion, ADS‑B polling, and WebSocket endpoints for realtime messages
- frontend: React + Vite app with instrument-panel UI, realtime streams, and configuration controls
- docker-compose for local development
-
Build and run containers:
docker compose up -d --build
-
Open the frontend at http://localhost:3231
-
Open the Configuration modal (gear icon)
-
Add data sources and click START
You can run ACARS decoding inside the backend container, or feed ACARS from an external acarsdec instance.
In the UI Configuration:
- Add a device:
- Local RTL‑SDR: choose “Local RTL‑SDR” and set device index and frequencies
- RTL‑TCP: choose “RTL‑TCP Network (ACARS)” and set host:port (example: 192.168.1.100:1234)
Then click START. The backend will launch acarsdec and stream messages to the UI.
If you already have acarsdec running elsewhere, send ACARS to UDP and let the backend listen.
Example acarsdec command (external):
acarsdec --rtlsdr 1 -g 45 --output oneline:file --output native:udp:host=0.0.0.0,port=5555 131.525 131.550 131.725 131.825 131.850
In the UI Configuration:
- Enable ACARS Native UDP Output (host: 0.0.0.0, port: 5555)
- Or add a device: “ACARS Feed (UDP/TCP)” with 0.0.0.0:5555
Then click START.
You have two options:
If you have a Beast TCP feed, add a device:
- Type: Beast TCP (FR24/Mode‑S)
- Host:Port (example: 172.25.164.232:30005)
For reliable position decoding, set Receiver Location (lat/lon) in Configuration.
Add a device:
- Type: ADS‑B Stream (JSON)
- URL: http://127.0.0.1:8080/data/aircraft.json
Then click START.
- If ACARS messages do not appear, verify the ACARS UDP feed is reachable and that the backend is listening on the configured port.
- If ADS‑B planes do not show on the map, set Receiver Location and verify positions are present in the feed.
- If feeds show as disconnected, check that the WebSocket endpoints are reachable at http://localhost:2231/ws/acars and http://localhost:2231/ws/adsb
- ACARS messages, ADS‑B snapshots, and correlations are stored in SQLite at backend/app/data/app.db
Contributions welcome.
