Skip to content

marcelstoer/docker-adsbexchange

Repository files navigation

ADS-B Exchange Docker

Docker Pulls Docker Pulls License

ADS-B Exchange feeder & MLAT Docker images for Arm (e.g. Raspberry Pi) and x86-64 architectures. Also contains a Docker Compose file that runs all required containers for ADS-B Exchange in one go.

tl;dr

$ git clone https://github.com/marcelstoer/docker-adsbexchange
$ vi docker-compose.yaml

You need to edit docker-compose.yaml to add geo coordinates of your receiver and its name.

$ docker-compose up -d

This will pull and start three containers:

The first container also starts PiAware Skyview at http://localhost:8080 Skyview

If you now go to https://www.adsbexchange.com/myip/ it should report your two feeders after a minute or two. ADS-B Exchange myip

Background

If you are new to ADS-B, flight tracking, etc. I suggest you read the great primer by @tomverbeure.

Setup

I am running a LoRaWAN gateway feeding to The Things Network (TTN) on the roof of my house. It is based on a Raspberry Pi 2B that runs Docker. Hence, the gateway software is isolated in an image I built with a colleague at work.

Since I have all the "infrastructure" on the roof (RPi, electricity, internet access, IP65 enclosure) it seemed like a no-brainer to add ADS-B capabilities to that device. Two requirements were clear from the beginning:

  • For the reasons outlined on their homepage I will only feed data to ADS-B Exchange and not FlightRadar24, FlightAware, ADSBHub or others.
  • All software required to feed to ADS-B Exchange must run in Docker containers.

The hardware was the easy part. I bought a FlightAware Pro Stick Plus for $20, the excellent FlightAware 1090 MHz antenna for $40 and a 5m low loss cable for $15.

Software

tbc...

Build your own images

If you want to tinker with the Docker files and build your own images follow the path below.

$ git clone https://github.com/marcelstoer/docker-adsbexchange
$ cd docker-adsbexchange
$ docker build -t adsbexchange-feed adsbexchange-feed
$ docker run --rm -d -e "INPUT=decoder:30005" —link dump1090:decoder adsbexchange-feed
$ docker build -t adsbexchange-mlat adsbexchange-mlat
$ docker run --rm -d -e "INPUT=decoder:30005" -e "MLAT_RESULTS=decoder:30104" -e "RECEIVER_LATITUDE=nn.mmmmm" -e "RECEIVER_LONGITUDE=nn.mmmmm" -e "RECEIVER_ALTITUDE=nnnn" -e "RECEIVER_NAME=my-fantastic-ADS-B-receiver" --link dump1090:decoder adsbexchange-mlat

Pending item