description |
---|
If you wish to feed OpenSky Network, follow the steps below. |
The OpenSky Network is a non-profit association based in Switzerland. It aims at improving the security, reliability and efficiency of the air space usage by providing open access of real-world air traffic control data to the public.
The docker image mikenye/opensky-network
contains the required feeder software and all required prerequisites and libraries. This needs to run in conjunction with readsb
(or another Beast provider).
First-time users should obtain a feeder serial number.
Firstly, make sure you have registered for an account on the OpenSky Network website, and have your username on-hand.
In order to obtain a feeder serial number, we will start a temporary container running opensky-feeder
, which will connect to OpenSky Network and be issued a serial number. The temporary container will automatically be stopped and deleted after 60 seconds.
To do this, run the command:
timeout 60s docker run \
--rm \
-it \
-e LAT=YOURLATITUDE \
-e LONG=YOURLONGITUDE \
-e ALT=YOURALTITUDE \
-e BEASTHOST=readsb\
-e OPENSKY_USERNAME=YOUROPENSKYUSERNAME \
mikenye/opensky-network
Be sure to change the following:
- Replace
YOURLATITUDE
with the latitude of your antenna (xx.xxxxx) - Replace
YOURLONGITUDE
with the longitude of your antenna (xx.xxxxx) - Replace
YOURALTITUDE
with the altitude above sea level of your antenna in metres - Replace
YOUROPENSKYUSERNAME
with your OpenSky Network username
Once the container has started, you should see output similar to the following:
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-opensky-network: executing...
WARNING: OPENSKY_SERIAL environment variable was not set!
Please make sure you note down the serial generated.
Pass the key as environment var OPENSKY_SERIAL on next launch!
[cont-init.d] 01-opensky-network: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[opensky-feeder] [INFO] [COMP] Initialize STAT
[opensky-feeder] [INFO] [COMP] Initialize POS
[opensky-feeder] [INFO] [COMP] Initialize DEVTYPE
[opensky-feeder] [INFO] [COMP] Initialize NET
[opensky-feeder] [INFO] [COMP] Initialize TB
[opensky-feeder] [INFO] [COMP] Initialize SERIAL
[opensky-feeder] [INFO] [COMP] Initialize BUF
[opensky-feeder] [INFO] [COMP] Initialize RELAY
[opensky-feeder] [INFO] [COMP] Initialize RC
[opensky-feeder] [INFO] [COMP] Initialize FILTER
[opensky-feeder] [INFO] [COMP] Initialize RECV
[opensky-feeder] [INFO] [COMP] Start STAT
[opensky-feeder] [INFO] [COMP] Start POS
[opensky-feeder] [INFO] [COMP] Start DEVTYPE
[opensky-feeder] [INFO] [COMP] Start NET
[opensky-feeder] [INFO] [COMP] Start TB
[opensky-feeder] [INFO] [COMP] Start SERIAL
[opensky-feeder] [INFO] [COMP] Start RELAY
[opensky-feeder] [INFO] [COMP] Start RC
[opensky-feeder] [INFO] [COMP] Start FILTER
[opensky-feeder] [INFO] [COMP] Start RECV
[opensky-feeder] [INFO] [INPUT] Trying to connect to '10.0.0.1': [10.0.0.1]:30005
[opensky-feeder] [INFO] [INPUT] connected to '10.0.0.1'
[opensky-feeder] [INFO] [NET] Trying to connect to 'collector.opensky-network.org': [194.209.200.6]:10004
[opensky-feeder] [INFO] [NET] connected to 'collector.opensky-network.org'
[opensky-feeder] [INFO] [LOGIN] Sending Device ID 5, Version 2.1.7
[opensky-feeder] [INFO] [SERIAL] Requesting new serial number
[opensky-feeder] [INFO] [SERIAL] Got a new serial number: -1408234269
[opensky-feeder] [INFO] [LOGIN] Sending Serial Number -1408234269
[opensky-feeder] [INFO] [GPS] Sending position -33.3333°, +111.1111°, +100.8m
[opensky-feeder] [INFO] [LOGIN] Sending Username 'johnnytightlips'
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
As you can see from the output above, we've been allocated a serial number of -1408234269
.
[opensky-feeder] [INFO] [SERIAL] Got a new serial number: -1408234269
Inside 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/.env
This file holds all of the commonly used variables (such as our latitude, longitude and altitude). We're going to add our OpenSky-Network username and serial to this file. Add the following lines to the file:
OPENSKY_USERNAME=YOUROPENSKYUSERNAME
OPENSKY_SERIAL=YOUROPENSKYSERIAL
- Replace
YOUROPENSKYUSERNAME
with your OpenSky Network username - Replace
YOUROPENSKYSERIAL
with your OpenSky Network serial
For example:
OPENSKY_USERNAME=johnnytightlips
OPENSKY_SERIAL=-1408234269
Failure to specify the OPENSKY_SERIAL
environment variable will cause a new feeder serial to be created every time the container is started. Please do the right thing and set OPENSKY_SERIAL
!
Open the docker-compose.yml
file that was created when deploying readsb
.
Append the following lines to the end of the file (inside the services:
section):
opensky:
image: mikenye/opensky-network:latest
tty: true
container_name: opensky
restart: always
environment:
- TZ=${FEEDER_TZ}
- BEASTHOST=readsb
- LAT=${FEEDER_LAT}
- LONG=${FEEDER_LONG}
- ALT=${FEEDER_ALT_M}
- OPENSKY_USERNAME=${OPENSKY_USERNAME}
- OPENSKY_SERIAL=${OPENSKY_SERIAL}
To explain what's going on in this addition:
- We're creating a container called
opensky
, from the imagemikenye/opensky-network:latest
. - We're passing several environment variables to the container:
BEASTHOST=readsb
to inform the feeder to get its ADSB data from the containerreadsb
TZ
will use theFEEDER_TZ
variable from your.env
file.LAT
will use theFEEDER_LAT
variable from your.env
file.LONG
will use theFEEDER_LONG
variable from your.env
file.ALT
will use theFEEDER_ALT_M
variable from your.env
file (as metres are required for this feeder).OPENSKY_USERNAME
will use theOPENSKY_USERNAME
variable from your.env
file.OPENSKY_SERIAL
will use theOPENSKY_SERIAL
variable from your.env
file.
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 adsbhub
container. You should see the following output:
readsb is up-to-date
adsbx is up-to-date
piaware is up-to-date
fr24 is up-to-date
pfclient is up-to-date
adsbhub is up-to-date
Creating opensky
We can view the logs for the environment with the command docker logs opensky
, or continually "tail" them with docker logs -f opensky
. The logs will be fairly unexciting and look like this:
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-opensky-network: executing...
[cont-init.d] 01-opensky-network: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[opensky-feeder] [INFO] [COMP] Initialize STAT
[opensky-feeder] [INFO] [COMP] Initialize POS
[opensky-feeder] [INFO] [COMP] Initialize DEVTYPE
[opensky-feeder] [INFO] [COMP] Initialize NET
[opensky-feeder] [INFO] [COMP] Initialize TB
[opensky-feeder] [INFO] [COMP] Initialize SERIAL
[opensky-feeder] [INFO] [COMP] Initialize BUF
[opensky-feeder] [INFO] [COMP] Initialize RELAY
[opensky-feeder] [INFO] [COMP] Initialize RC
[opensky-feeder] [INFO] [COMP] Initialize FILTER
[opensky-feeder] [INFO] [COMP] Initialize RECV
[opensky-feeder] [INFO] [COMP] Start STAT
[opensky-feeder] [INFO] [COMP] Start POS
[opensky-feeder] [INFO] [COMP] Start DEVTYPE
[opensky-feeder] [INFO] [COMP] Start NET
[opensky-feeder] [INFO] [COMP] Start TB
[opensky-feeder] [INFO] [COMP] Start SERIAL
[opensky-feeder] [INFO] [COMP] Start RELAY
[opensky-feeder] [INFO] [COMP] Start RC
[opensky-feeder] [INFO] [COMP] Start FILTER
[opensky-feeder] [INFO] [COMP] Start RECV
[opensky-feeder] [INFO] [INPUT] Trying to connect to 'readsb': [172.30.0.6]:30005
[opensky-feeder] [INFO] [INPUT] connected to 'readsb'
[opensky-feeder] [INFO] [NET] Trying to connect to 'collector.opensky-network.org': [194.209.200.4]:10004
[opensky-feeder] [INFO] [NET] connected to 'collector.opensky-network.org'
[opensky-feeder] [INFO] [LOGIN] Sending Device ID 5, Version 2.1.7
[opensky-feeder] [INFO] [LOGIN] Sending Serial Number -1408234269
[opensky-feeder] [INFO] [GPS] Sending position -33.3333°, +111.1111°, +100.8m
[opensky-feeder] [INFO] [LOGIN] Sending Username 'johnnytightlips'
[opensky-feeder] [INFO] [TB] Setting sync filter: 0
[opensky-feeder] [INFO] [TB] Setting ext squitter only filter: 1
Once running, you can visit https://opensky-network.org/receiver-profile to view the data you are feeding to OpenSky-Network.