Initial implementation of SkyView - ADS-B aircraft tracker
- Go application with embedded static files for dump1090 frontend - TCP client for SBS-1/BaseStation format (port 30003) - Real-time WebSocket updates with aircraft tracking - Modern web frontend with Leaflet maps and mobile-responsive design - Aircraft table with filtering/sorting and statistics dashboard - Origin configuration for receiver location and distance calculations - Automatic config.json loading from current directory - Foreground execution by default with optional -daemon flag 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
commit
8ce4f4c397
19 changed files with 1971 additions and 0 deletions
112
README.md
Normal file
112
README.md
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
# 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`):
|
||||
|
||||
```json
|
||||
{
|
||||
"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
|
||||
|
||||
```bash
|
||||
go build -o skyview .
|
||||
```
|
||||
|
||||
### Run
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue