Modern multi-source ADS-B web interface with real-time aircraft tracking, signal analysis, and 3D visualization. Connects to multiple dump1090 receivers via Beast TCP streams, serves responsive web UI with Leaflet maps, aircraft tables, and statistics dashboards. Single Go binary deployment.
- Go 61.8%
- JavaScript 25.8%
- HTML 7.2%
- CSS 3%
- Shell 1.6%
- Other 0.5%
- Store track history with position, altitude, speed, and timestamp
- Automatic track point collection every 30 seconds when position changes
- API endpoint /api/aircraft/{hex}/history for individual aircraft tracks
- Frontend "Show History" button to display historical flight paths
- Click aircraft markers to show their historical track (dashed red line)
- Track cleanup: keep last 200 points per aircraft, 24-hour retention
- Add aircraft type badges in table view with color coding
- Start/end markers for historical tracks with timestamps
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
|---|---|---|
| internal | ||
| static | ||
| .gitignore | ||
| config.json.example | ||
| docker-compose.yml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| Makefile | ||
| README.md | ||
SkyView - ADS-B Aircraft Tracker
A modern web frontend for dump1090 ADS-B data with real-time aircraft tracking, statistics, and mobile-responsive design.
Features
- Real-time Aircraft Tracking: Live map with aircraft positions and flight paths
- Interactive Map: Leaflet-based map with aircraft markers and optional trails
- Aircraft Table: Sortable and filterable table view with detailed aircraft information
- Statistics Dashboard: Real-time statistics and charts for signal strength, aircraft counts
- WebSocket Updates: Real-time data updates without polling
- Mobile Responsive: Optimized for desktop, tablet, and mobile devices
- Single Binary: Embedded static files for easy deployment
Configuration
Environment Variables
SKYVIEW_ADDRESS: Server listen address (default: ":8080")SKYVIEW_PORT: Server port (default: 8080)DUMP1090_HOST: dump1090 host address (default: "localhost")DUMP1090_DATA_PORT: dump1090 SBS-1 data port (default: 30003)ORIGIN_LATITUDE: Receiver latitude for distance calculations (default: 37.7749)ORIGIN_LONGITUDE: Receiver longitude for distance calculations (default: -122.4194)ORIGIN_NAME: Name/description of receiver location (default: "Default Location")SKYVIEW_CONFIG: Path to JSON configuration file
Configuration File
SkyView automatically loads config.json from the current directory, or you can specify a path with SKYVIEW_CONFIG.
Create a config.json file (see config.json.example):
{
"server": {
"address": ":8080",
"port": 8080
},
"dump1090": {
"host": "192.168.1.100",
"data_port": 30003
}
}
Data Source
SkyView uses SBS-1/BaseStation format (Port 30003) which provides decoded aircraft information including:
- Aircraft position (latitude/longitude)
- Altitude, ground speed, vertical rate
- Flight number/callsign
- Squawk code and emergency status
Building and Running
Build
go build -o skyview .
Run
# Foreground (default) - Press Ctrl+C to stop
DUMP1090_HOST=192.168.1.100 ./skyview
# Daemon mode (background process)
DUMP1090_HOST=192.168.1.100 ./skyview -daemon
# With custom origin location
DUMP1090_HOST=192.168.1.100 ORIGIN_LATITUDE=59.3293 ORIGIN_LONGITUDE=18.0686 ORIGIN_NAME="Stockholm" ./skyview
# Using config file
SKYVIEW_CONFIG=config.json ./skyview
# Default (localhost:30003)
./skyview
Development
go run main.go
Usage
- Start your dump1090 instance
- Configure SkyView to point to your dump1090 host
- Run SkyView
- Open your browser to
http://localhost:8080
API Endpoints
GET /: Main web interfaceGET /api/aircraft: Aircraft data (parsed from dump1090 TCP stream)GET /api/stats: Statistics data (calculated from aircraft data)GET /ws: WebSocket endpoint for real-time updates
Data Sources
SkyView connects to dump1090's SBS-1/BaseStation format via TCP port 30003 to receive decoded aircraft data in real-time.
The application maintains an in-memory aircraft database with automatic cleanup of stale aircraft (older than 2 minutes).
Views
- Map View: Interactive map with aircraft positions and trails
- Table View: Sortable table with aircraft details and search
- Stats View: Dashboard with real-time statistics and charts