Feeding FlightAware (piaware)
If you wish to feed FlightAware, follow the steps below.
FlightAware is a digital aviation company and operates the world's largest flight tracking and data platform.
piaware
is a client program to securely transmit ADS-B and Mode S data to FlightAware.
In exchange for your data, FlightAware will give you an Enterprise Membership. If this is something of interest, you may wish to feed your data to them.
The docker image ghcr.io/sdr-enthusiasts/docker-piaware
contains piaware
and all of its required prerequisites and libraries. This can run standalone (without the ultrafeeder
container), however for flexibility it is recommended to run with ultrafeeder
, and this is the deployment method that will be used in this guide.
Getting a Feeder ID
Already running PiAware?
You'll need your feeder-id from your existing feeder.
To get your feeder-id, log onto your feeder via SSH and issue the command:
New to PiAware?
If you're already running PiAware and you've followed the steps in the previous command, you can skip this section.
You'll need a feeder-id. To get one, you can temporarily run the container, to allow it to communicate with the FlightAware servers and get a new feeder ID.
Inside your application directory (/opt/adsb
), run the following commands:
The command will run the container for 60 seconds, which should be ample time for the container to receive a feeder-id.
For example:
As you can see from the output above, the feeder-id given to us from FlightAware is acbf1f88-09a4-3a47-a4a0-10ae138d0c1g
.
You'll now want to "claim" this feeder.
To do this, go to: https://flightaware.com/adsb/piaware/claim and follow the instructions there.
Note - for PiAware/FlightAware feeding to work correctly, you MUST accurately set your latitude, longitude, and altitude on the My ADS-B
dashboard page of the FlightAware website. Without doing this, feeding will NOT work!
Update .env
file with feeder-id
.env
file with feeder-idInside your application directory (/opt/adsb
), edit the .env
file using your favourite text editor. Beginners may find the editor nano
easy to use:
This file holds all of the commonly used variables (such as our latitude, longitude and altitude). We're going to add our piaware
feeder-id to this file. Add the following line to the file:
Replace
YOURFEEDERID
with the feeder-id that was generated in the previous step.
For example:
Deploying piaware feeder
Open the docker-compose.yml
file that was created when deploying ultrafeeder
.
Append the following lines to the end of the file (inside the services:
section):
If you are in the USA and are also running the dump978
container with a second SDR, add the following additional lines to the environment:
section:
To explain what's going on in this addition:
We're creating a container called
piaware
, from the imageghcr.io/sdr-enthusiasts/docker-piaware:latest
.We're passing several environment variables to the container:
BEASTHOST=ultrafeeder
to inform the feeder to get its ADSB data from the containerultrafeeder
over our privateadsbnet
network.TZ
will use theFEEDER_TZ
variable from your.env
file.FEEDER_ID
will use thePIAWARE_FEEDER_ID
variable from your.env
file.
For people running
dump978
:UAT_RECEIVER_TYPE=relay
tells the container to pull UAT data from another host over the network.UAT_RECEIVER_HOST=dump978
specifies the host to pull UAT data from; in this instance ourdump978
container.
We're using
tmpfs
for volumes that have regular I/O. Any files stored in atmpfs
mount are temporarily stored outside the container's writable layer. This helps to reduce:The size of the container, by not writing changes to the underlying container; and
SD Card or SSD wear
Update ultrafeeder
container configuration
ultrafeeder
container configurationBefore running docker compose
, we also want to update the configuration of the ultrafeeder
container, so that it generates MLAT data for piaware.
NOTE: If you are using the sample docker-compose.yml
provided, this step has already been done for you.
Open the docker-compose.yml
and make the following environment value is part of the ULTRAFEEDER_CONFIG
variable to the ultrafeeder
service:
To explain this addition, the ultrafeeder
container will connect to the piaware
container on port 30105
and receive MLAT data. This data will then be included in any outbound data streams from ultrafeeder
.
Refresh running containers
Once the file has been updated, issue the command docker compose up -d
in the application directory to apply the changes and bring up the piaware
container. You should see the following output:
We can view the logs for the environment with the command docker compose logs
, or continually "tail" them with docker compose logs -f
. At this stage, the logs will be fairly unexciting and look like this:
We can see our container running with the command docker ps
.
Once running, you can visit http://docker.host.ip.addr:8081/
to access PiAware's "SkyAware". From there you need to configure your location and altitude on the FlightAware's website. To do this, click on the blue button marked Go to my ADS-B Statistics Page
on your "SkyAware". When the FA website loads, click on the gear icon near your feeder name and configure your location and height using the same values you set in your .env file. If you do not configure these values via the FA website MLAT will not work for your PiAware feeder. You can also log onto FlightAware's website and click on the My ADSB
link at the top of the page, and see your statistics, configure your location and altitude and other settings.
Remember, if you change your location and altitude on FlightAware's website, you'll need to update your .env
file locally (and re-run docker compose up -d
from your application directory)!
Advanced
If you want to look at more options and examples for the piaware
container, you can find the repository here.
Last updated