Receiver management improvements for the admin Receivers tab: - Per-receiver health: server now tracks each connection's state (connecting/connected/down), message count, and last-message time, exposed via new GET /api/admin/receiver-status and POST /api/admin/test-receivers. - Receivers tab redesign: live "Active Receivers" panel with colored indicators (green=receiving, yellow=connected/no data, red=unreachable), a clear select -> SAVE & APPLY -> auto-test flow, and selectable scan results with a "USE SELECTED RECEIVERS" action. - Network scan interface selector: scan a chosen interface/subnet instead of every local subnet. Oversized subnets (>/20, e.g. a docker /16) are disabled in the UI and rejected server-side, eliminating slow/hanging scans. Critical fix — server crash on receiver restart: - Receiver connection tasks were awaited inside main()'s top-level asyncio.gather. Restarting receivers cancels those tasks, and the resulting CancelledError propagated into the gather and killed the whole server process (every action after a restart then failed). Receiver tasks now run as independent background tasks; restart cancels and awaits them with return_exceptions=True so cancellation can never tear down the server. Also cache-bust admin.css/admin.js/pixel-editor.js (?v=) so updated assets load without a manual hard-refresh, and surface a clear message instead of a silent "Loading…" when the status endpoint is unavailable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ADS-Bit
A retro SNES-style side-view flight tracker that displays ADS-B aircraft data with custom pixel art sprites.
Features
- Real-time aircraft tracking via ADS-B receivers
- Custom pixel art sprites for 6 aircraft types (small prop, regional jet, narrow body, wide body, heavy, helicopter)
- Animated sun and moon with accurate astronomical positions
- Dynamic sky colors based on time of day
- Weather visualization with cloud sprites
- Directional view (N/E/S/W) with themed backgrounds
- Auto-discovery of ADS-B receivers on your network
- Canvas-based 10 FPS retro rendering
- Admin panel with password authentication
- First-run setup wizard
Quick Start
# Clone the repository
git clone https://gitea.chops.one/allen/ADS-Bit.git
cd ADS-Bit
# Install dependencies
pip install -r requirements.txt
# Start the server
python3 server.py
On first run, visit http://localhost:2001 and the setup wizard will guide you through configuration.
Docker / Podman
Prerequisites
First Run
# Create a config file (the setup wizard runs if you skip this)
cp config.json.example config.json
# Build and start
docker compose up -d
The web UI is available at http://localhost:2001.
Useful Commands
# View logs
docker compose logs -f
# Stop
docker compose down
# Rebuild after a git pull
docker compose build && docker compose up -d
Podman
The same docker-compose.yml works with Podman:
podman-compose up -d
On SELinux systems (Fedora, RHEL), add :Z to each volume mount in docker-compose.yml so containers can access the bind-mounted files.
Data Persistence
The following paths are bind-mounted from the repo directory and persist across container recreation:
| Path | Contents |
|---|---|
config.json |
Server configuration and credentials |
images/ |
Aircraft and UI sprites (including uploads) |
backgrounds/ |
Theme background images (including custom themes) |
Host networking (network_mode: host) is used so the server can auto-scan your LAN for ADS-B receivers.
Requirements
- Python 3.8+
- ADS-B receiver providing SBS/BaseStation format on port 30003 (dump1090, readsb, etc.)
- Modern web browser with Canvas support
Configuration
ADS-Bit uses a first-run setup wizard to configure your installation. You can also edit config.json directly:
{
"receivers": "AUTO",
"receiver_port": 30003,
"location": {
"name": "My Location",
"lat": 0.0,
"lon": 0.0
},
"web_port": 2001,
"theme": "desert"
}
Important: Set your location.lat and location.lon for accurate weather and sun/moon positioning.
See CONFIG.md for full configuration options including custom backgrounds and running as a service.
Controls
- Arrow Keys / A/D: Rotate view direction
- View cycles through North, East, South, West
- Click aircraft in sidebar to highlight
Aircraft Types
| Type | Detection |
|---|---|
| Helicopter | Low altitude + slow speed |
| Heavy (747/A380) | High altitude or specific callsigns |
| Wide Body | Very high altitude/speed |
| Narrow Body | Default commercial |
| Regional Jet | Regional carrier callsigns or lower altitude |
| Small Prop | N-prefix callsigns or very low/slow |
Custom Backgrounds
Create backgrounds for your location:
- Add 4 directional images to
backgrounds/custom/(north.png, east.png, south.png, west.png) - Set
"theme": "custom"in config.json - Restart the server
See CONFIG.md for image specifications and tips.
Running as a Service
To auto-start on boot, see the systemd service instructions in CONFIG.md.
Compatible Receivers
Works with any receiver providing SBS/BaseStation format on port 30003:
- dump1090 / dump1090-fa / dump1090-mutability
- readsb
- ADS-B Exchange feeders
- FlightAware PiAware
- Any SBS1 compatible receiver
License
MIT License - see LICENSE for details.
Credits
- Aircraft and environment sprites generated with AI assistance
- Weather data from Open-Meteo (free, no API key required)