glintd — companion daemon

Optional ~1.5 k LOC Python daemon that buffers metrics on the router and forwards push events through our APNs relay. Glint works without it; installing it adds continuous history and push notifications.

What it collects

Capability-driven — the daemon detects what the hardware can report at startup and only collects what's available. On a Mudi 7 (battery + 2 SIMs + Wi-Fi 5 + 1 Eth WAN) that's:

On a Wi-Fi-only model (Slate AX, Flint 2) the battery and signal series just don't exist — the app's UI already gates cards on data presence, so the Battery card hides itself without any client-side check.

Storage

One SQLite DB, three rolled-up tiers, ~220 KB total:

hot   15 s resolution  →  1 h window   raw samples
warm  1  m resolution  →  6 h window   min/avg/max
cool  5  m resolution  →  24 h window  min/avg/max

Hot tier in tmpfs, snapshots flush to overlayfs every 30 min.

Install

From the app: Settings → Router daemon → Install on router… shells out for curl | sh via the existing SSH session.

Manually:

ssh root@<router>
curl -fsSL https://glint.nakitel.com/glintd/install.sh | sh -

/etc/init.d/glintd status
ubus call mudi.glintd ping

Uninstall

/etc/init.d/glintd stop
/etc/init.d/glintd disable
rm -rf /etc/glintd /etc/init.d/glintd \
       /usr/libexec/rpcd/mudi.glintd \
       /usr/share/rpcd/acl.d/glintd.json
/etc/init.d/rpcd reload

Source

MIT-licensed, hosted at github.com/Nakitel/glintd. Read it before installing if you'd like - it's small and intentionally boring.