Install the feeder
The feeder, tally-feed, runs beside readsb. It reads readsb’s BEAST output on port 30005 as one more client, signs about a second of receptions at a time, and sends them to a few relays. It opens no port, takes no orders from the network, and never updates itself.
What you need
- A receiver already decoding with readsb, or anything else that serves BEAST on port 30005.
- Linux with systemd 248 or newer, on x86_64 or 64-bit ARM. Any Raspberry Pi OS from Buster on will do.
- Your antenna’s latitude, longitude and height.
Raspberry Pi
If your Pi already feeds a network through readsb, run the installer:
curl -fsSL https://github.com/flightlines/tally/releases/latest/download/install.sh | sudo bash
It downloads tally-feed for your board and checks it against its published checksum. It finds readsb’s BEAST output and, if dump978-fa is running, its 978 MHz output too. It reads your antenna’s location from your adsb.im or ultrafeeder settings or from /etc/default/readsb, makes the receiver’s key in /etc/tally/key, and starts the service.
Run it again later to upgrade. It keeps your key and your settings.
An existing readsb, on any Linux
The same installer works on any Linux box with systemd. If it cannot find your location, give it one:
curl -fsSL https://github.com/flightlines/tally/releases/latest/download/install.sh | sudo TALLY_LAT=37.41 TALLY_LON=-122.10 TALLY_ALT=12 bash
Or run the feeder by hand. Make the key once, then start it:
tally-feed init --key /etc/tally/key
tally-feed --key /etc/tally/key --relay relay.example.org:10900=<relay key> --lat 37.41 --lon -122.10 --alt 12
A Docker stack
If your receiver runs in Docker (ultrafeeder and its relatives), readsb’s BEAST output is already a port of the stack. Make sure the compose file publishes port 30005 to the host, then run the installer on the host: it reads that port like any other client, and finds your location in the stack’s .env file.
A Tally container image is not published yet. The feeder runs on the host beside the stack.
adsb.im
adsb.im runs its decoder in Docker, so the steps above apply: run the installer on the device, and it reads the location adsb.im already knows. Tally is being offered to adsb.im as one more feed you can switch on in its settings.
Your location is public
Your receiver’s location is published exactly as you enter it, because multilateration (locating aircraft that do not broadcast a position) needs it exact. If you would rather not, round it and say so with TALLY_PRECISION or --precision, in metres. You then contribute less to multilateration.
Options
- --relay host:port=key names a relay to publish to. The feeder keeps four by default: one long-term anchor, one you may pin as home, and the rest chosen at random from relays it has learned of.
- --ceiling caps what the feeder sends each relay a second, 64 KB by default. Over the cap, receptions are dropped and counted, never buffered.
- --uat 127.0.0.1:30978 publishes 978 MHz UAT receptions from dump978-fa in the same signed batches.