Complete multi-source Beast format implementation

Major features implemented:
- Beast binary format parser with full Mode S/ADS-B decoding
- Multi-source data merger with intelligent signal-based fusion
- Advanced web frontend with 5 view modes (Map, Table, Stats, Coverage, 3D)
- Real-time WebSocket updates with sub-second latency
- Signal strength analysis and coverage heatmaps
- Debian packaging with systemd integration
- Production-ready deployment with security hardening

Technical highlights:
- Concurrent TCP clients with auto-reconnection
- CPR position decoding and aircraft identification
- Historical flight tracking with position trails
- Range circles and receiver location visualization
- Mobile-responsive design with professional UI
- REST API and WebSocket real-time updates
- Comprehensive build system and documentation

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2025-08-23 23:51:37 +02:00
commit 7340a9d6eb
15 changed files with 2332 additions and 238 deletions

22
debian/DEBIAN/control vendored Normal file
View file

@ -0,0 +1,22 @@
Package: skyview
Version: 2.0.0
Section: net
Priority: optional
Architecture: amd64
Depends: systemd
Maintainer: SkyView Team <admin@skyview.local>
Description: Multi-source ADS-B aircraft tracker with Beast format support
SkyView is a standalone application that connects to multiple dump1090 Beast
format TCP streams and provides a modern web frontend for aircraft tracking.
Features include real-time aircraft tracking, signal strength analysis,
coverage mapping, and 3D radar visualization.
.
Key features:
- Multi-source Beast binary format parsing
- Real-time WebSocket updates
- Interactive maps with Leaflet.js
- Signal strength heatmaps and range circles
- Historical flight tracking
- Mobile-responsive design
- Systemd integration for service management
Homepage: https://github.com/skyview/skyview

40
debian/DEBIAN/postinst vendored Executable file
View file

@ -0,0 +1,40 @@
#!/bin/bash
set -e
case "$1" in
configure)
# Create skyview user and group if they don't exist
if ! getent group skyview >/dev/null 2>&1; then
addgroup --system skyview
fi
if ! getent passwd skyview >/dev/null 2>&1; then
adduser --system --ingroup skyview --home /var/lib/skyview \
--no-create-home --disabled-password skyview
fi
# Create directories with proper permissions
mkdir -p /var/lib/skyview
mkdir -p /var/log/skyview
chown skyview:skyview /var/lib/skyview
chown skyview:skyview /var/log/skyview
chmod 755 /var/lib/skyview
chmod 755 /var/log/skyview
# Set permissions on config file
if [ -f /etc/skyview/config.json ]; then
chown root:skyview /etc/skyview/config.json
chmod 640 /etc/skyview/config.json
fi
# Enable and start the service
systemctl daemon-reload
systemctl enable skyview.service
echo "SkyView has been installed and configured."
echo "Edit /etc/skyview/config.json to configure your dump1090 sources."
echo "Then run: systemctl start skyview"
;;
esac
exit 0

31
debian/DEBIAN/postrm vendored Executable file
View file

@ -0,0 +1,31 @@
#!/bin/bash
set -e
case "$1" in
purge)
# Remove user and group
if getent passwd skyview >/dev/null 2>&1; then
deluser --system skyview >/dev/null 2>&1 || true
fi
if getent group skyview >/dev/null 2>&1; then
delgroup --system skyview >/dev/null 2>&1 || true
fi
# Remove data directories
rm -rf /var/lib/skyview
rm -rf /var/log/skyview
# Remove config directory if empty
rmdir /etc/skyview 2>/dev/null || true
echo "SkyView has been completely removed."
;;
remove)
# Reload systemd after service file removal
systemctl daemon-reload
;;
esac
exit 0

17
debian/DEBIAN/prerm vendored Executable file
View file

@ -0,0 +1,17 @@
#!/bin/bash
set -e
case "$1" in
remove|upgrade|deconfigure)
# Stop and disable the service
if systemctl is-active --quiet skyview.service; then
systemctl stop skyview.service
fi
if systemctl is-enabled --quiet skyview.service; then
systemctl disable skyview.service
fi
;;
esac
exit 0