amnesica / BelugaProject

Application that displays one or multiple, local ADS-B feeders along with additional information on a map interface in the browser
GNU General Public License v3.0
53 stars 10 forks source link
3d ads-b adsb adsb-receiver adsbexchange adsbx angular aviation belugaproject cesium cesiumjs docker flight-tracker flight-tracking flightradar24 openlayers opensky-network planespotting real-time-flight-tracking spring-boot

The Beluga Project

GitHub version

Spring Boot Angular web application that displays one or multiple, local ADS-B feeders along with additional information on a map interface in the browser.

Currently you can use this application out of the box with Flightradar24, tar1090, AirSquitter or VirtualRadarServer (Rebroadcast Server only) feeders. Other ADS-B feeders can be added aswell.

It is possible to run the application only with data from the OpenSky-Network, if you have an account there. Besides you can use data from Airplanes.live. So you need no local feeders to try out the app.

Additional information about the aircraft are added through a PostgreSQL database with content from OpenSky-Network, Mictronics, OurAirports, Virtual Radar Server standing-data. Mictronics data is used with Open Data Commons Attribution License (ODC-By) v1.0.

The ISS (International Space Station) is displayed by default with information from the "Where the ISS at?" API.

The Beluga Project uses aircraft icons from this repository by RexKramer1. 3D models from this repository are used.

Motivation

We started our ADS-B experience with an AirSquitter receiver. We got good results but because of the antenna position the range was limited to only a half circle around our house. So we added another receiver (Raspberry Pi) with a separate antenna to cover the second half of the circle. This works great. Unfortunately we found no application which can show the aircraft from both receivers in one map. So we decided to create a new one - The Beluga Project.

Features


Note: At the moment The Beluga Project is meant to be used in a local network. It is not recommended to publish it on the web due to security and performance reasons.


Screenshots

Web view

Web View

Mobile view

App View

General structure of the project

Backend

Frontend

Our Setup

The application runs on a Raspberry Pi 4B in the local network. We can access the map in the browser on desktop computers (Windows and Linux) and on mobile devices. For our mobile devices we use the mobile app.

App View

Installation/Update

Execute the following command on your Raspberry Pi (or any debian-based system). We recommend using a Pi >=4B with 64 bit OS version.

$ sudo bash -c "$(wget -nv -O - https://github.com/amnesica/BelugaProject/raw/master/install.sh)"

Important: If you already have a version < 4.0.0 of the Beluga Project installed, first execute the following commands and then use the install script with the link below.

$ cd BelugaProject
$ sudo ./run.sh docker-rm
$ cd .. && sudo rm -r BelugaProject BelugaProject.zip

If you get any error messages have take a look into TROUBLESHOOTING.md.

Update standing data

BelugaProject comes with standing data (aircraft data, airport data, flightroute data) which may be outdated meanwhile. So you should update them with command

$ sudo ./run.sh update-db

This will take some time. On an RaspberryPi 4B update database takes about 10 minutes.