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%
Find a file
Ole-Morten Duesund c8562a4f0d Enhance aircraft details display to match dump1090 format
- Add country lookup from ICAO hex codes with flag display
- Implement UTC clocks and last update time indicators
- Enhance aircraft table with ICAO, squawk, and RSSI columns
- Add color-coded RSSI signal strength indicators
- Fix calculateDistance returning string instead of number
- Accept all SBS-1 message types for complete data capture
- Improve data merging to preserve country and registration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 23:20:31 +02:00
internal Enhance aircraft details display to match dump1090 format 2025-08-23 23:20:31 +02:00
static Enhance aircraft details display to match dump1090 format 2025-08-23 23:20:31 +02:00
.gitignore Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
config.json.example Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
docker-compose.yml Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
Dockerfile Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
go.mod Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
go.sum Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
main.go Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
Makefile Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00
README.md Initial implementation of SkyView - ADS-B aircraft tracker 2025-08-23 22:09:37 +02:00

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

  1. Start your dump1090 instance
  2. Configure SkyView to point to your dump1090 host
  3. Run SkyView
  4. Open your browser to http://localhost:8080

API Endpoints

  • GET /: Main web interface
  • GET /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