Skip to main content

Getting Started

This page will take you through getting started feeding ADS-B data into Plane Watch!

Equipment
#

You’ll want a few piece of kit before we get started:

  • An SDR of some sort that can capture 1090Mhz
  • A Micro PC such as a Raspberry Pi that can interface with the SDR

Register a Feeder
#

Head over to https://atc.plane.watch and sign up for an account.

Sign Up

ATC is the portal you’ll use to administer your feeder on Plane Watch. Here you’ll be able to view your feeder status and provide some information that’ll allow us to use your feed data.

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 when deploying the feeder container.

Basic Up-and-Running
#

Our feeder container can be deployed with docker run as follows:

docker run \
  -d \
  --rm \
  --name planewatch \
  -e TZ=YOUR_TIMEZONE \
  -e BEASTHOST=YOUR_BEASTHOST \
  -e API_KEY=YOUR_API_KEY \
  -e LAT=YOUR_LATITUDE \
  -e LONG=YOUR_LONGITUDE \
  -e ALT=YOUR_ALTITUDE \
  --tmpfs=/run:exec,size=64M \
  --tmpfs=/var/log \
  ghcr.io/plane-watch/docker-plane-watch:latest

Where:

  • YOUR_TIMEZONE is your timezone in “TZ database name” format (eg: Australia/Perth)
  • YOUR_BEASTHOST is the hostname, IP address or container name of a beast protocol provider (eg: piaware)
  • YOUR_API_KEY is your plane.watch feeder API Key
  • YOUR_LATITUDE is the latitude of your antenna (xx.xxxxx)
  • YOUR_LONGITUDE is the longitude of your antenna (xx.xxxxx)
  • YOUR_ALTITUDE is the your antenna altitude, and should be suffixed with either m or ft. If no suffix, will default to m. You can test to ensure your container is seeing ADS-B data by running:
docker exec -it planewatch viewadsb

Using Docker Compose
#

version: '3.8'

services:
  planewatch:
    image: ghcr.io/plane-watch/docker-plane-watch:latest
    tty: true
    container_name: planewatch
    restart: always
    environment:
      - BEASTHOST=YOUR_BEASTHOST
      - TZ=YOUR_TIMEZONE
      - API_KEY=YOUR_API_KEY
      - LAT=YOUR_LATITUDE
      - LONG=YOUR_LONGITUDE
      - ALT=YOUR_ALTITUDE
    tmpfs:
      - /run:exec,size=64M
      - /var/log

Where:

  • YOUR_TIMEZONE is your timezone in “TZ database name” format (eg: Australia/Perth)
  • YOUR_BEASTHOST is the hostname, IP address or container name of a beast protocol provider (eg: piaware)
  • YOUR_API_KEY is your plane.watch feeder API Key
  • YOUR_LATITUDE is the latitude of your antenna (xx.xxxxx)
  • YOUR_LONGITUDE is the longitude of your antenna (xx.xxxxx)
  • YOUR_ALTITUDE is the your antenna altitude, and should be suffixed with either m or ft. If no suffix, will default to m.

You can test to ensure your container is seeing ADS-B data by running:

docker exec -it planewatch viewadsb

Environment Variables
#

There are a series of available environment variables:

Environment VariablePurposeDefault
API_KEYRequired. Your plane.watch API Key
BEASTHOSTRequired. IP, hostname or container name of a Mode-S/BEAST provider (readsb/dump1090)
BEASTPORTOptional. TCP port number of Mode-S/BEAST provider (readsb/dump1090)30005
LATRequired for MLATLatitude of receiver antenna
LONGRequired for MLATLongitude of receiver antenna
ALTRequired for MLATAltitude of receiver antenna. Suffixed with ft or m.
ENABLE_MLATOptional. Set to false to disable MLATtrue
MLAT_DATASOURCEOptional. IP/Hostname and port of an MLAT data sourceBEASTHOST:BEASTPORT setting if omitted
TZOptional. Your local timezoneGMT
ACARS_HOSTOptional. IP, hostname or container name of a TCP ACARS source (eg: acars_router)
ACARS_PORTOptional. TCP port number of TCP ACARS source (eg: acars_router)15550
VDLM2_HOSTOptional. IP, hostname or container name of a TCP VDLM2 source (eg: acars_router)
VDLM2_PORTOptional. TCP port number of TCP VDLM2 source (eg: acars_router)15555

Logging
#

  • All processes are logged to the container’s stdout, and can be viewed with docker logs [-f] container.

Getting help
#

Please feel free to: