aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/README.md
blob: 4e9d1a7790e78be535e4a503eb2c7b6ccd1bc766 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
fr24feed in Docker
==================

[![Travis (.com) branch](https://img.shields.io/travis/com/egor-tensin/fr24feed/master?label=Travis%20%28Docker%29)](https://travis-ci.com/egor-tensin/fr24feed)

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://0.0.0.0:8080/dump1090-fa/ and
the fr24feed web interface at http://0.0.0.0:8754/.

Stop the containers using

    make down

Development
-----------

TL;DR: build the native images using

    make compose-build

Or, if you have Compose version 1.24.x or below,

    make docker-build

### Dependencies

* Docker with BuildKit support (18.09 or higher),
* Compose with BuildKit support for `compose-build` (1.25.0 or higher).

### CI

I used a guide to set up multiarch builds ([1][1]).
I don't understand it completely at the moment, but whatever.

The goal is to have a single multiarch repo on Docker Hub for each of the
services.
The approach is to use Docker's new BuildKit builder + the buildx command line
plugin.

Other possibilities are:
* use QEMU + multiarch base images directly ([2][2], [3][3]), and create a
manifest file manually,
* build natively on multiple architectures (not sure how to combine them in a
single manifest then though).

The disadvantages of the approach taken are:
* newer Docker version is required,
* docker-compose doesn't seem to support that method natively.

[1]: https://mirailabs.io/blog/multiarch-docker-with-buildx/
[2]: https://lobradov.github.io/Building-docker-multiarch-images/
[3]: https://ownyourbits.com/2018/06/27/running-and-building-arm-docker-containers-in-x86/

### TODO

* Docker Hub automated builds instead of Travis?
* docker-compose instead of docker buildx?