← back

Infrastructure

A snapshot of everything I run.
Updated whenever I touch something.


cluster
turing pi 2
receivers
2× raspberry pi 4
edge
hetzner · railway

shelf

   turing pi 2
   +-----------------------------------------+
 n1| cm4-1     Pi CM4 · DE                   |
 n2| cm4-2     Pi CM4 · DE                   |
 n3| · empty                                 |
 n4| · empty                                 |
   |-----------------------------------------|
   | · powered                               |
   +-----------------------------------------+

   receivers
   +-----------------------------------------+
   | adsb-de   Pi 4B · DE                    |
   | adsb-uk   Pi 4B · UK                    |
   +-----------------------------------------+

   edge
   +-----------------------------------------+
   | hz01      Hetzner CPX22 · nbg1          |
   | railway   Railway · shared              |
   +-----------------------------------------+
host role model cpu ram disk
tpi2 cluster Turing Pi 2.5.2 T113-S3 128M 256M flash
cm4-1 k3s ctrl Pi CM4 BCM2711 8G 32G emmc
cm4-2 k3s wrk Pi CM4 BCM2711 8G 32G emmc
adsb-de sdr Pi 4B BCM2711 1G 32G sd
adsb-uk sdr Pi 4B BCM2711 4G 16G sd
hz01 edge Hetzner CPX22 2 vCPU 4G 80G
railway edge Railway shared
name kind access
cluster
prometheus k3s monitoring
grafana k3s monitoring
node_exporter cm4-1 monitoring
node_exporter cm4-2 monitoring
adsb-de
dump1090-fa beast tsnet
fr24feed feeder flightradar24
piaware feeder flightaware
rbfeeder feeder airnav radar
opensky-feeder feeder opensky network
adsb-uk
dump1090-fa beast tsnet
fr24feed feeder flightradar24
piaware feeder flightaware
rbfeeder feeder airnav radar
opensky-feeder feeder opensky network
hz01
jet1090 aggregator jet1090.letey.de
magpie monitoring magpie.letey.de
uptime-kuma monitoring tsnet
railway
ntfy push ntfy.letey.de
hn-ntfy push
planned
migrate services home

With the cluster up, five things come home from hz01 / Railway and hz01 goes back to being a dumb public proxy:

  • jet1090 (aggregator, hz01)
  • magpie (stats, hz01)
  • uptime-kuma (monitor, hz01)
  • ntfy (push, railway)
  • quill (feed watcher, railway)
planned
ship quill, replace hn-ntfy

Building quill, a Go service that watches RSS / Atom feeds and fires notifications on new entries. When it's ready, it replaces hn-ntfy on Railway.

Jun 04, 2026
feeding opensky network

Tacked on opensky-feeder on both boxes. The same beast feed now goes out to the OpenSky Network too.

It's run by researchers and keeps the raw data around for academic work. Happy to send it my feed.

Jun 03, 2026
magpie watching the receivers

Built magpie. It reads each receiver's feed and works out messages per second and the furthest range it's picked up. Runs on hz01 for now, and prometheus on k3s scrapes it too.

Jun 01, 2026
prometheus and grafana on k3s

Stood up monitoring on the cluster. node_exporter runs on both CM4s, scraped by prometheus with grafana on top, both running on k3s.

May 31, 2026
cluster online, k3s up

The Turing Pi is finally online. Both CM4 nodes run Ubuntu and k3s now. cm4-1 is the control node, cm4-2 the worker.

Nothing's migrated home yet. The services are still out on hz01 / Railway.

May 21, 2026
feeding airnav radar

Tacked on rbfeeder on both boxes. Same beast feed now also goes out to AirNav Radar, alongside FlightRadar24 and FlightAware.

Each of the three networks pulls its weight here: FlightRadar24 is the app I open every day, FlightAware ships dump1090-fa, and AirNav makes the hardware. Feels right to give back to the projects I lean on the most.

May 19, 2026
feeding fr24 and flightaware

Both boxes were already running dump1090-fa. Tacked on fr24feed and piaware so the same beast feed also goes out to FlightRadar24 and FlightAware.

May 17, 2026
dump1090-fa on receivers, jet1090 on hz01

Both receivers were running jet1090 locally, and the ADS-B page hit them directly through hz01. Under load, that traffic would knock a receiver offline.

They now run dump1090-fa (the maintained fork by FlightAware) and push the beast feed over the tailnet. A single jet1090 on hz01 takes both streams and serves the merged feed.

May 05, 2026
hn-ntfy watching the HN front page

Wanted ntfy pings when items hit the HN front page. Spun up hn-ntfy on Railway, polling the HN API. It pings ntfy on every new one.

May 05, 2026
own ntfy server on railway

Wanted to own the infra, not use obfuscated topic names. Spun up my own at ntfy.letey.de, fully permissioned. uptime-kuma now fires through it.

May 01, 2026
uptime-kuma watching jet1090

Running on hz01. Probes both receivers' public jet1090 endpoints and pings me through ntfy when one goes offline.

Apr 26, 2026
ADS-B receiver in UK · second feed

Second receiver online. A Raspberry Pi in UK running jet1090, same setup as the DE box.

Apr 03, 2026
ADS-B receiver in DE · first feed

First receiver online. A Raspberry Pi in DE running jet1090, behind hz01 over Tailscale.

live · 7 hosts · 19 services up