Raspberry Pi + Docker = Feed setup in under an hour

#1
As a long time user and feeder of Planefinder, I wanted my first post to be useful.

I am in the process of increasing my number of Raspberry Pi's and sites and have been keen to have an easy way to get from a blank SD card to a running Pi quickly.

I have managed to do that recently and wanted to share.

Requirements

* Raspberry Pi 2
* RTL-SDR Dongle
* A blank micro SD card (16GB preferred, class 10)
* A small amount of time
 
#2
The aim

To quickly install dump1090, planefinder client, flightradar 24 client and flightaware client and be feeding to them in under an hour.

Firstly a quick thank you

Firstly to Frederik Granna whose blog post http://www.sysrun.io/2015/11/12/raspberry-pi-docker-rtl-sdr/ got me playing
Secondly to the folks at Pinkfroot who have made their client so easy to install, it almost doesn't require this guide.

Why and what is Docker?

Docker is a software that allows me in this particular case, to wrap all the nasty configuration for multiple feed clients and programs into a single file, a few containers and at the end of the day - a single command to get it all going.

It makes the process simple.... because I've done all the hard work for you.

Furthermore, it allows the very easy deployment of multiple Raspberry Pi's with slight changing of configuration.
This means you can just change the GPS co-ordinates of the config, the share code and start docker up. No messy re-configuration.

It also allows slight changes to be made to configuration, so that testing slight variations can be done quickly, easily and without ruining all the hard work that has gone into making the previous configuration (because you can simply revert).

More details: https://www.docker.com
 
#3
Procedure
  1. Micro SD card in hand, follow the Hypriot OS details via this blog: http://blog.hypriot.com/getting-started-with-docker-on-your-arm-device
  2. After logging in as root, blacklist the RLT-SDR driver by adding your specific device to a config file /etc/modprobe.d/rtl-sdr_blacklist.conf with the contents:
    Code:
    blacklist dvb_usb_rtl28xxu
    blacklist e4000
    blacklist rtl2832
  3. Make a directory to store your Docker files and clone my git repo
    Code:
    $ mkdir Docker
    $ cd Docker
    $ git clone https://bitbucket.org/inodes/docker-rtlsdr-pfclient
    $ cd docker-rtlsdr-pfclient
  4. Move the example docker-compose.yml_suggestion file to docker-compose.yml
    Code:
    $ mv docker-compose.yml_suggestion ../docker-compose.yml
    $ cd ..
  5. and make edits to make it your own changing:
    • Latitude and Longitude (e.g. Sydney, Australia -33.7968 150.7823 - see http://www.where-am-i.net)
    • PPM (optional - leave as 1 - more on this later)
    • Username and Password (for Flightaware)
    • MAC Address of container (this can be anything your would like, or an old MAC address or even generated https://www.hellion.org.uk/cgi-bin/randmac.pl)
    • FR24 Key - previously sourced or see below for a sign up procedure
    • Planefinder share code - previously sourced or see below for a sign up procedure
  6. Run docker-compose up to prepare (followed by patience)
    Code:
    $ docker-compose up
  7. Go and have a rest while step 5 finishes up
  8. Once finish, press Ctrl + C to stop
  9. Run docker-compose start to start the docker containers
    Code:
    $ docker-compose start
    Starting Docker_dump1090-piaware_1
    Starting Docker_fr24feed_1
    Starting Docker_pfclient_1
Done....

You can now access:

 
Last edited:
#4
Creating Accounts....

In the above post it assumes you have:
  1. Planefinder sharecode
  2. Flightradar 24 key
  3. Flightware login and password
You may also just require additional share codes for example for new locations.
Docker also makes this easy.

New Planefinder Sharecode
  • Pull down planefinder docker container then run it with the basic options below
Code:
$ docker pull inodes/rtlsdr-pfclient
$ docker run -it --device=/dev/bus/usb -p 30053:30053 inodes/rtlsdr-pfclient
2015-12-09 11:46:13.558687 We were unable to locate a configuration file and have entered configuration mode by default. Please visit: http://172.17.0.2:30053 to complete configuration.
2015-12-09 11:46:13.570186 Web server is now listening on: http://172.17.0.2:30053
2015-12-09 11:46:13.570307 Echo port is now listening on: 172.17.0.2:30054
  • Ignore the IP's above, and instead connect to new container using http://<your_pi_ip>:30053
  • On the configuration page presented enter the following and then press "Create a new share code"
    • Email address
    • Receiver Lat (write this down and keep it consistent)
    • Receiver Lon (write this down and keep it consistent)
  • Press Ctrl + C on the Docker command
  • Enter this sharecode into the docker-compose.yml from step 4 in previous post

New Flightradar 24 Key
  • Pull down Flightradar 24 docker container then run it with option below
Code:
$ docker pull inodes/rtlsdr-fr24feed
$ docker run -it inodes/rtlsdr-fr24feed --signup
  • Follow the steps provided
  • Press Ctrl + C on the Docker command
  • Enter this key into the docker-compose.yml from step 4 in previous post

New Flightaware Account
Just use http://www.flightaware.com/account/join/
 
Last edited:
#6
Great guide Glenn.

I had never really thought about using Docker on Raspberry Pi's!
Thanks Lee. It does make life easy for people who really don't want to spend too much time configuring, compiling, changing configuration.
Because the Docker containers can be rebuilt over and over again, it's very easy to make slight changes, test alternate configurations or upgrade to the latest software.

If a new version of pfclient comes out for example, just remove the container, re-run the docker-compose command and a new version is installed.