Skip to content
DnsLister Forum

Where domain hunters compare notes

Stardashy — the self-hosted Starlink monitoring dashboard I posted a few weeks ago is now on GitHub (free, MIT)

A few weeks ago I posted screenshots of a monitoring platform I built for my Mini and a lot of you asked for the code. Here it is:

https://github.com/razvanzeces/stardashy

Free, MIT licensed, self-hosted. Runs on a Raspberry Pi wired to the dish.

What it does

Speed tests — download, upload, idle vs loaded latency, bufferbloat grade (A+ through F), jitter, ICMP ping and packet loss. Pure Python stdlib, no speedtest CLI. Failed tests are logged as failures instead of being averaged in as 0 Mbps, and a result that looks broken gets retried automatically.

Dish telemetry — pulls gRPC from the dish every minute: throughput, PoP latency, drop rate, obstruction %, GPS sats, alignment, hardware alerts, uptime.

Satellite tracking — this is the part I had the most fun with. The dish doesn't tell you which satellite is serving you, so it propagates the public CelesTrak TLE set with SGP4 and matches what's overhead against the dish's reported boresight. You get a live sky view, a world map, and a best-guess serving candidate. It's inference, not ground truth — the dish switches every ~15s — but it lines up well.

WAN IP log — every IP you've been assigned with reverse DNS and first/last seen. Useful for spotting when they move you to a new subnet or CGNAT range.

Telegram alerts — test failures, dish going unreachable and recovering, hardware alerts, high drop rate, WAN IP changes. Alerts queue on disk, so they survive a Telegram outage instead of vanishing.

Network tools — ping, MTR with ASN lookup per hop, DNS timing, HTTP waterfall. Password protected.

Install

git clone https://github.com/razvanzeces/stardashy.git cd stardashy sudo ./install.sh 

Needs Linux with systemd, PHP 8, and grpcurl. Built on a Pi but any Linux box works. Your dish has to be reachable at 192.168.100.1 — if you're in a routing setup that blocks it, the speed tests still work but dish telemetry won't.

Everything is configured from the Settings tab: location, intervals, alerts, retention, password. Nothing hardcoded, no config files to hand-edit.

Updates come through the dashboard — it checks GitHub for new releases and installs them itself, so you don't have to re-clone.

One thing worth knowing before you run it

Speed tests eat data. Mine averaged ~370 MB per test. At the default 30-minute interval that's around 8 GB/day. Fine on unlimited, painful if you're metered or on a Roam plan. Turn the interval down to hourly, or lean on the dish telemetry (which is free — it's just gRPC to the dish) and run full speed tests a few times a day. It's a slider in Settings.

I'd rather say this up front than have someone burn through their allowance.

What's not there yet

  • No Docker. It's systemd + PHP. I don't know Docker well enough to ship a good image, so I'd rather leave it to someone who does. PRs welcome.
  • Cloudflare only. I said in the last thread I'd make the provider selectable and I haven't gotten to it. The measurement code is isolated so it's not hard, just not done.
  • Single dish. No multi-dish support.

Issues and PRs welcome. If you run it and something breaks on your setup, tell me — I've only tested it against my own hardware, and "works on my Pi" is not the same as "works."

Not affiliated with SpaceX or Starlink in any way.

Source: r/Starlink · by /u/No-Implement-2071

Leave a Reply

Your email address will not be published. Required fields are marked *