Skip to content

Releases: rosselm/pidash

v0.1.3

Choose a tag to compare

@rosselm rosselm released this 28 Aug 07:40

Changed — the shipped service now binds loopback

pidash.service previously listened on 0.0.0.0:8090 in the clear. The API is
unauthenticated and serves the whole journal, the process table and the
container list, so that is not something to speak on the wire. It binds
127.0.0.1:8090 now.

If you were reaching the dashboard at http://<pi>:8090/, that stops working
after this upgrade.
Either put a TLS terminator in front of it (see below), or
pass -addr :8090 to restore the previous behaviour on a network you trust.

Added — an HTTPS section in the README

tailscale serve obtains and renews a real Let's Encrypt certificate for the
node's MagicDNS name and proxies to pidash over loopback: no certificate
handling in pidash, nothing published to the internet, nothing to renew by
hand. The trade-off (every client has to join the tailnet) and the alternative
(your own domain, DNS-01 challenge, A record pointing at a private address) are
both written down.

It also documents why that proxy should listen on 8443 rather than 443. If k3s
shares the host, its servicelb installs an iptables DNAT for --dport 443 with
no destination-address match, so every packet to port 443 on any local
address is redirected to Traefik — including the Tailscale address.
tailscaled binds 100.x.y.z:443 successfully and still never receives a
connection. The symptom is a CN = TRAEFIK DEFAULT CERT certificate where a
Let's Encrypt one was expected.

Fixed

  • install.sh reports the address it actually bound, and the tailscale serve
    URL when one is configured, instead of printing a LAN URL that will not answer.

Download the binary for your board, make it executable, and run it. No runtime
dependencies — the frontend is embedded in the binary.

curl -LO https://github.com/rosselm/pidash/releases/download/v0.1.3/pidash-linux-arm64
chmod +x pidash-linux-arm64
./pidash-linux-arm64 -addr :8090

Then open http://<pi-address>:8090/.

asset for
pidash-linux-arm64 Pi 3/4/5 on 64-bit Raspberry Pi OS
pidash-linux-armv7 Pi 2/3/4 on 32-bit Raspberry Pi OS
pidash-linux-armv6 Pi 1 / Zero / Zero W
pidash-linux-amd64 x86-64 Linux — runs, but without vcgencmd there are no throttle flags

To install it as a systemd service instead, clone the repo and run
./install.sh; that also sets User= to whoever runs it and warns about the
group memberships the service needs (docker, video, adm).

Run pidash -version to confirm what you have, and pidash -h for the flags.

Checksums

5c9a244ae52a9652cd90bbfe2ae40cb110abd1fa63dbe6c72be8620b24a7b0f3  pidash-linux-amd64
c8052b3a97b8a5da88316c75b6746ad25ad154d7ea4d1131fdd0285a7444d7a7  pidash-linux-arm64
c0aa83f5958760c84e0be91edeef9fe213557e08be0600fdddaf5c6b04fa5830  pidash-linux-armv6
1e40837900a328b1c1d0ef9be66ef6dc30206da8ea4d466380d6a3ddcfeae791  pidash-linux-armv7

v0.1.2

Choose a tag to compare

@rosselm rosselm released this 28 Aug 07:13

Security

  • Process command lines are no longer published. The snapshot API is
    unauthenticated by design on a trusted LAN, but it was serving full argv,
    which routinely carries credentials as flags — on an ordinary Pi a handful of
    the running processes will match --token/--password/--api-key. Only
    argv[0] is published now.
    -expose-cmdline opts back in and warns at startup.

Changed

  • The journal drawer tails the whole journal by default. It previously
    defaulted to two units, one of which is usually silent, so in practice only
    one service was ever visible while 30-odd others logged unseen. The drawer
    gained a unit picker, built from the units actually seen rather than a list
    configured up front. -log-units still narrows it at the source.
  • The process table is sampled on its own cadence (-proc-interval,
    default 3s) instead of every tick. Walking every /proc/<pid>/stat is the
    most expensive thing done per sample. Measured over two 60s windows on an
    idle Pi 4: 2.07% of one core every tick, 1.48% every third.
  • Docker stats requests are capped at 4 in flight; the engine holds each one
    open for a sampling interval.

Added

  • Tests covering the parsing layer at 90-100% per function, including
    regressions for two bugs that shipped in earlier versions.
  • CI on every push: gofmt, go vet, go test -race, and a build for all
    four release targets.

Download the binary for your board, make it executable, and run it. No runtime
dependencies — the frontend is embedded in the binary.

curl -LO https://github.com/rosselm/pidash/releases/download/v0.1.2/pidash-linux-arm64
chmod +x pidash-linux-arm64
./pidash-linux-arm64 -addr :8090

Then open http://<pi-address>:8090/.

asset for
pidash-linux-arm64 Pi 3/4/5 on 64-bit Raspberry Pi OS
pidash-linux-armv7 Pi 2/3/4 on 32-bit Raspberry Pi OS
pidash-linux-armv6 Pi 1 / Zero / Zero W
pidash-linux-amd64 x86-64 Linux — runs, but without vcgencmd there are no throttle flags

To install it as a systemd service instead, clone the repo and run
./install.sh; that also sets User= to whoever runs it and warns about the
group memberships the service needs (docker, video, adm).

Run pidash -version to confirm what you have, and pidash -h for the flags.

Checksums

b66c0c2644eeaaf2ec6d9d04cb991d26c4c7f89f5773ae7cd3de036eff7ada21  pidash-linux-amd64
672e9f3767b54ac837e85412275bc964fa89892f5b2868e7f9f0ba6ef097eb74  pidash-linux-arm64
3ec995f64f12a1be7dd8952740e827026ceeed0bef0c92e9eee0cbc2b9c999dc  pidash-linux-armv6
f6cc4e0ece318c87f9903a598386917cb858d3e6c788157ae36eca186a72707d  pidash-linux-armv7

v0.1.1

Choose a tag to compare

@rosselm rosselm released this 28 Aug 04:27

Fixed

Three defects found by driving the dashboard in a headless browser for the
first time — none of them visible from reading the source.

  • Storage listed the root filesystem three times, as /, /tmp and
    /var/tmp, each reporting the full disk. PrivateTmp=yes in the systemd
    unit gives the service private bind mounts of the root device, so this
    appeared only when running as a service, never when running the binary by
    hand. Filesystems are now deduplicated by device.
  • Table cells wrapped, breaking fx-rates and 64.8 MB across two lines
    and doubling those row heights.
  • Layout voids — short cards left large empty regions next to tall ones,
    and the last row was half empty. Rows now stretch and every row fills all
    twelve columns.

Added

  • tools/uicheck.py drives the running dashboard in headless Chromium and
    fails on console errors, horizontal overflow at five widths, cards clipping
    their content, wrapped table cells, and a journal drawer that will not open.

Download the binary for your board, make it executable, and run it. No runtime
dependencies — the frontend is embedded in the binary.

curl -LO https://github.com/rosselm/pidash/releases/download/v0.1.1/pidash-linux-arm64
chmod +x pidash-linux-arm64
./pidash-linux-arm64 -addr :8090

Then open http://<pi-address>:8090/.

asset for
pidash-linux-arm64 Pi 3/4/5 on 64-bit Raspberry Pi OS
pidash-linux-armv7 Pi 2/3/4 on 32-bit Raspberry Pi OS
pidash-linux-armv6 Pi 1 / Zero / Zero W
pidash-linux-amd64 x86-64 Linux — runs, but without vcgencmd there are no throttle flags

To install it as a systemd service instead, clone the repo and run
./install.sh; that also sets User= to whoever runs it and warns about the
group memberships the service needs (docker, video, adm).

Run pidash -version to confirm what you have, and pidash -h for the flags.

Checksums

89b30221d1b933056d8c14ccf554b6ead2ec9d7923b485cb45014950eb08f06b  pidash-linux-amd64
7752677838003a3fe90c83c3107675fb9e2e7e8cc69f885d58606359b28c782c  pidash-linux-arm64
5d20085ac1191b3802fa05a4ae620f5ba17afa84792354704858e599f8330f21  pidash-linux-armv6
ef62d90a07fd6723842e9dc4100a0cd4b637096b4fde3b234c632792c1f7ea30  pidash-linux-armv7

v0.1.0

Choose a tag to compare

@rosselm rosselm released this 27 Aug 18:05

Download the binary for your board, make it executable, and run it. No runtime
dependencies — the frontend is embedded in the binary.

curl -LO https://github.com/rosselm/pidash/releases/download/v0.1.0/pidash-linux-arm64
chmod +x pidash-linux-arm64
./pidash-linux-arm64 -addr :8090

Then open http://<pi-address>:8090/.

asset for
pidash-linux-arm64 Pi 3/4/5 on 64-bit Raspberry Pi OS
pidash-linux-armv7 Pi 2/3/4 on 32-bit Raspberry Pi OS
pidash-linux-armv6 Pi 1 / Zero / Zero W
pidash-linux-amd64 x86-64 Linux — runs, but without vcgencmd there are no throttle flags

To install it as a systemd service instead, clone the repo and run
./install.sh; that also sets User= to whoever runs it and warns about the
group memberships the service needs (docker, video, adm).

Run pidash -version to confirm what you have, and pidash -h for the flags.

Checksums

5198bebfb0152694e138474b6ee30ed4593faa6397b62aae5a7f262cce87f4ae  pidash-linux-amd64
9d378a4b92b798853a7a6c489c8dc1668a3bafa51670884b229e01fc652d71a5  pidash-linux-arm64
02bd6ed720036a7dcae4c7fcb0dc6a7fdc76499c672dca1052ab19e9b8dd9f74  pidash-linux-armv6
afb284eb33cbe6e4dce4645555675963f149a30a1558703b1f4581a6b30ecf60  pidash-linux-armv7