Install SkyBoss ATC
SkyBoss sits next to tar1090, PiAware, or SkyAware. It does not replace that map. You need a receiver already decoding ADS-B.
Read the script first
The install command downloads a shell script and runs it. Open the raw file before you run it. On this site the script is /install, byte-for-byte the same as /install.sh.
curl -sSL https://skybossatc.com/install -o skyboss-install.sh
less skyboss-install.sh
SKYBOSS_LICENSE_KEY='your-key' bash skyboss-install.sh
Replace your-key with the license key from the purchase email. The script stops before it installs anything if that key is missing.
What you need
- Raspberry Pi 3, 4, or 5, or another Linux box with systemd
- RTL-SDR dongle and an antenna
- dump1090-fa or readsb already running (PiAware is fine)
- The license key from your $39 purchase email
- A network connection for the first install
Keep tar1090. SkyBoss uses the same aircraft feed.
1. Have a feed
After the license key is accepted, the installer probes common local URLs, including http://localhost:8080/data/aircraft.json. If dump1090-fa or readsb is active, it prints that decoder. If nothing answers, it still finishes and writes that default URL into config/settings.yaml under your install directory (~/skyboss-atc). Start the decoder, or edit local_receiver.url, then restart the service.
2. Run the installer with your key
From a terminal on the Pi, use the same command as above:
curl -sSL https://skybossatc.com/install -o skyboss-install.sh
less skyboss-install.sh
SKYBOSS_LICENSE_KEY='your-key' bash skyboss-install.sh
What it does, in order:
- If
SKYBOSS_LICENSE_KEYis missing, it printsLicense key required., thenSkyBoss ATC downloads only with the license key from your purchase., thenRun: SKYBOSS_LICENSE_KEY='your-key' bash skyboss-install.sh, and stops. If the key contains anything other than letters, digits, and hyphens, it printsInvalid license key.and stops. No packages are installed in either case. - If curl, Python 3, the Python venv module, or tar is missing, it installs curl, Python 3, python3-venv, python3-pip, and tar with apt. After that check it sends the key to
https://skybossatc.com/api/download. - That address checks the key with Lemon Squeezy.
Invalid license key.,License key expired.,License key revoked.,License server unreachable., andDownload limit reached for today.are printed as-is, and the script stops.~/skyboss-atcis not created. A valid key whose private release is not configured yet stops the same way and names the missing setting. - Detects dump1090-fa or readsb.
- Downloads the Pi app from the short-lived link and unpacks it into
~/skyboss-atc. An update keepsconfig/settings.yaml, log files, and database files. The release copies ofdata/notable_aircraft.jsonanddata/aircraft_db.csvreplace the previous copies. If the archive has nobackend/main.py, it printsRelease archive does not contain backend/main.py.and stops. If it has nofrontend/dist, it printsThe release archive has no frontend/dist. The desk cannot load.and stops. - Creates a Python virtualenv and installs dependencies.
- Writes
config/settings.yamlon a first install. - Enables and starts the
skyboss-atcsystemd service. - If the Pi is on Wi-Fi and
scripts/setup-wifi-reliability.shis in the release, it runs that script.
3. Open port 8000
On any phone, tablet, or computer on the same LAN, open:
http://<your-pi-ip>:8000
Enter the same license key, then pick the airport in the wizard. The desk opens after that. The wizard includes 3,465 US airports.
Launching soon. $39 one-time. No subscription.
After it is running
sudo systemctl status skyboss-atc
journalctl -u skyboss-atc -f
sudo systemctl restart skyboss-atc
To update an existing install, run the installer again with the same key. Settings, log files, and database files stay in place. The release replaces data/notable_aircraft.json and data/aircraft_db.csv, and the service restarts:
curl -sSL https://skybossatc.com/install -o skyboss-install.sh
SKYBOSS_LICENSE_KEY='your-key' bash skyboss-install.sh
Map tiles
Mapbox is optional. If you have a Mapbox token, put it in config/settings.yaml under mapbox.access_token. Without a token, the desk uses a free dark basemap.
Antenna, not a substitute feed
Optional network fill can draw aircraft on the map when your antenna misses one. It does not replace a good antenna. Go-around alerts use your antenna only. When fill is unavailable, the desk says so.
Voice
Spoken alerts are optional offline text-to-speech. They are not live tower audio and they are not a radio.