fr24feed in Docker
I'm tired of keeping track of all the hacks I needed to introduce to my Arch Linux installation on my Raspberry Pi to get fr24feed running, so here's a Docker configuration.
Usage
-
Type in your sharing key in fr24feed/fr24feed.ini.
fr24key="0123456789abcdef"
-
Optionally, edit dump1090/config.js to set the correct coordinates of the receiver.
DefaultCenterLat = 66.5; DefaultCenterLon = 25.19; SiteShow = true; SiteLat = 66.5; SiteLon = 25.19; SiteName = "My receiver";
-
Optionally, edit dump1090/supervisord.conf to set the correct coordinates of the receiver in dump1090-fa's arguments (
--lat
and--lon
).command=/usr/bin/dump1090-fa ... --lat 66.5 --lon 25.19 ...
Start the containers using
make pull && make up
You can now access the interactive map at http://127.0.0.1:8080/dump1090-fa/ and the fr24feed web interface at http://127.0.0.1:8754/.
Stop the containers using
make down
DVB-T dongles
They can be bought on eBay and AliExpress for a few dollars. This is what they look like:
You have to be careful not to buy the wrong one though. All of them are equipped with tuners, some of which don't support the 1090 MHz frequency. I've made the mistake to buy dongles with the FC0012 tuner, which doesn't support it. In general, you'll see something like
[FC0012] no valid PLL combination found for 1090000000 Hz!
in dump1090 container output if your dongle isn't supported.
Development
TL;DR: build Docker images using
make
Dependencies
- Docker with BuildKit support (18.09 or higher),
- Compose with BuildKit support for
compose/build
(1.25.0 or higher).
Multiarch
Build & push multiarch images using
make buildx/create
make buildx/push
make buildx/rm
A guide on how to set up multiarch builds can be found here. The goal was to have a single multiarch repo for each container in the registry. The approach is to use Docker's new BuildKit builder + the buildx command line plugin.
Other possibilities are:
- use QEMU + multiarch base images directly (1, 2), and create a manifest file manually,
- build natively on multiple architectures (not sure how to combine them in a single manifest then though).