Feeders · Install

Turn a Raspberry Pi into a feeder

One command on your Pi. The installer asks whether to feed anonymously or link to your Fly Overhead account — either way you're feeding in seconds. If you already run readsb, dump1090, or ultrafeeder we attach as a passive client; if you only have an RTL-SDR we install readsb for you.

curl -fsSL https://flyoverhead.com/install.sh | sudo bash
Free Enthusiast - automatic. Pair your feeder and your account upgrades to Enthusiast on the free live tracker instantly — weather overlays, VFR charts, PIREPs, 30-day history, and 1,000 API requests/day. No forms, no waiting, stays active while your feeder is online. This is a tracker perk, not the EFB.
Open source client. The feeder app is MIT-licensed. Read the code before you run it.
No exclusivity. Feed us alongside FR24, adsb.fi, airplanes.live - all at once. We never ask you to choose.
Antenna1090 MHz
RTL-SDRUSB dongle
Raspberry Pireadsb decodes
feed.flyoverhead.comBEAST :30004
Live mapin seconds

Already have a decoder

We connect as a TCP client to your existing :30005 BEAST stream (or aircraft.json on :8080). Nothing about your existing feeder clients changes. Run as many feeders side by side as you like.

Just an SDR

No decoder yet? With an RTL-SDR dongle plugged in, the installer sets up readsb (drivers, kernel-module blacklist, BEAST output) and feeds it straight to us. The box becomes a standalone receiver.

Follow along

Copy-paste commands

Run these on your Pi (or any Linux box with an SDR or decoder). The installer asks whether to feed anonymously or link to your account right then — no separate pairing step required.

1. Install and start feeding

SSH into the Pi, paste this, enter your sudo password. It asks whether to feed anonymously or link to your account — pick anonymous to start instantly, or pair to claim it now. The app downloads from feeder.flyoverhead.com while you answer.

curl -fsSL https://flyoverhead.com/install.sh | sudo bash

2. Confirm it is running

You should see active (running). Logs show BEAST connected or JSON posts every few seconds.

sudo systemctl status fly-overhead-feeder
sudo journalctl -u fly-overhead-feeder -f

3. Link an already-running feeder (optional)

Fed anonymously, or installed headless? Link it anytime: sign in at flyoverhead.com/feeders/pair, run this on the Pi, and enter the 6-character code shown in the terminal.

sudo FLY_OVERHEAD_FEEDER_CONFIG=/var/lib/fly-overhead-feeder/config.json \
  FEEDER_API_URL=https://flyoverhead.com \
  node /opt/fly-overhead-feeder/dist/index.js pair

Skip the prompt — pair non-interactively

Forces pairing without the menu, for headless or scripted installs (which otherwise default to anonymous because there's no terminal to ask). Blocks until you enter the code at /feeders/pair.

curl -fsSL https://flyoverhead.com/install.sh | sudo FEEDER_INSTALL_MODE=pair bash
  1. The installer detects your decoder (or installs readsb if you only have an SDR), asks whether to feed anonymously or link your account, and downloads the feeder app from feeder.flyoverhead.com.
  2. A fly-overhead-feeder systemd service starts automatically and restarts on boot. Aircraft should appear on the live map within about 30 seconds.
  3. Optional: if you fed anonymously, link the feeder to your account anytime — use the command in step 3 above, or /feeders/pair after signing in.
The Fly Overhead live map over New York showing 131 tracked aircraft
Within seconds of install, your aircraft appear on the live map alongside everyone else's coverage.
Before you feed
  • ADS-B is a public broadcast. Aircraft positions are unencrypted radio transmissions received by anyone with an antenna. What you contribute appears on the public map.
  • Retention. Raw aircraft states are kept for 30 days, then purged. Aggregated coverage statistics (not individual positions) are retained indefinitely.
  • How we use the data. Flight data powers the live map and our API. We may also use aggregated, anonymized flight data for aviation research and safety applications - individual tracks are never sold or attributed to your feeder.
  • What we don't do. We don't sell feeder locations or personal data. We don't block or filter aircraft for commercial partners. We don't restrict you from feeding other networks simultaneously. Full feeder data policy →
  • Receiver location & privacy. Sharing your station coordinates is optional. A receiver's approximate position can be inferred from the aircraft it hears - we don't collect personal data beyond your account email and feeder name.
  • Best-effort, no warranty. Feeding is voluntary and provided as-is with no uptime guarantee or SLA.
  • Hardware & power. You'll need a Raspberry Pi (any model — even an older Pi Zero / Zero W works), an RTL-SDR, and a 1090 MHz antenna. It runs continuously on modest power over your own internet connection.
Already on docker-adsb / ultrafeeder?

Skip the Node client entirely. Add Fly Overhead as a BEAST output in your ultrafeeder config with your own UUID (generate one with cat /proc/sys/kernel/random/uuid) — you start feeding anonymously straight away. To link it to your account for free Enthusiast, paste that same UUID at /feeders/claim once it's sending data:

ULTRAFEEDER_CONFIG=adsb,feed.flyoverhead.com,30004,beast_reduce_plus_out,uuid=<your-uuid>
I don't have an SDR or a decoder yet

You need either an RTL-SDR dongle plus a 1090 MHz antenna (then our installer handles the rest), or an existing decoder exposing BEAST on :30005 / aircraft.json on :8080. A common starting point is readsb.

Where does it install?

App files at /opt/fly-overhead-feeder; systemd unit fly-overhead-feeder.service; UUID + API key at /var/lib/fly-overhead-feeder/. Re-run the install command to upgrade. On a terminal it asks anonymous-or-pair each run; set FEEDER_INSTALL_MODE=anonymous to skip the prompt, or =pair to force pairing (headless installs default to anonymous).

Want to inspect the script first?

Sensible. The script is a few hundred lines of bash - view it or read it on GitHub before running.