Feeding Plane.watch
If you wish to feed Plane.watch, follow the steps below.
Plane.watch is the end product of a Wouldn't it be cool if? statement. It is an ADS-B aggregation project by members of SDR-Enthusiasts. It is currently completely non-commercial, run by members of the community as a passion project, and backed by an Australian-based Not-for-Profit association.
The docker image ghcr.io/plane-watch/docker-plane-watch contains the plane.watch feeder software and all of its required prerequisites and libraries. This needs to run in conjunction with ultrafeeder (or another Beast provider).
plane.watch Feeder Registration
Register for a plane.watch feeder account
Head over to https://atc.plane.watch and sign up for an account.
Create your feeder
Login to https://atc.plane.watch, click on Feeders, + New Feeder. Fill out your details.
When you save your feeder, an API Key will be generated. Take note of this, as it will be required below.
Update .env file
.env fileInside your application directory (/opt/adsb), edit the .env file using your favourite text editor. Beginners may find the editor nano easy to use:
nano /opt/adsb/.envThis file holds all of the commonly used variables (such as our latitude, longitude and altitude). We're going to add our plane.watch variables to this file. Add the following lines to the file:
PLANEWATCH_KEY=YOURAPIKEYReplace
YOURAPIKEYwith the API KEY that was provided the previous step.
For example:
Deploying plane.watch 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):
To explain what's going on in this addition:
We're creating a container called
planewatch, from the imageghcr.io/plane-watch/docker-plane-watch:latest.We're passing several environment variables to the container:
BEASTHOST=ultrafeederto inform the feeder to get its ADSB data from the containerultrafeederover our privateadsbnetnetwork.LATwill use theFEEDER_LATvariable from your.envfile.LONGwill use theFEEDER_LONGvariable from your.envfile.ALTwill use theFEEDER_ALT_Mvariable from your.envfile.TZwill use theFEEDER_TZvariable from your.envfile.API_KEYwill use thePLANEWATCH_KEYvariable from your.envfile.
We're using
tmpfsfor volumes that have regular I/O. Any files stored in atmpfsmount 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
Before running docker compose, we also want to update the configuration of the ultrafeeder container, so that it pulls MLAT results from plane-watch
Open the docker-compose.yml and make / uncomment the following as part of the ULTRAFEEDER_CONFIG variable to the ultrafeeder service:
To explain this addition, the ultrafeeder container will connect to the planewatch container on port 30105 and receive MLAT data. This data will then be included in any outbound data streams from ultrafeeder.
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 planewatch container. You should see the following output:
You can see from the output above that the ultrafeeder container was left alone (as the configuration for this container did not change), and a new container planewatch was created.
We can view the logs for the environment with the command docker compose logs, or continually "tail" them with docker compose logs -f. We should now see logs from our newly created planewatch container:
After a few minutes, browse to https://atc.plane.watch/. Your feeder should be listed as "online". It can take up to 10 minutes for the status to update.
Advanced
If you want to look at more options and examples for the plane.watch container, you can find the repository here.
Last updated
Was this helpful?