TUI SSH monitor for Synology DSM 7.x
Find a file
Jan Vetesnik 78b1712fdd v0.2.1: show all NICs with IPs, filter storage to /volumeN only
Network
- NetworkCollector now also runs `ip -o -4 addr show` and merges the
  IPv4 address into each NetSample. Dashboard shows one line per
  interface (iface + IP + rx + tx); the active one is marked with `●`
  and is what the rx/tx braille graphs track.
- Hides loopback, docker*, veth*, br-*, virbr*, tap*, tun*, ovs-system,
  dummy*, wg*. Folds the raw `ethN` away when an `ovs_ethN` exists for
  the same NIC (Open vSwitch on Synology exposes both, only the ovs_
  one carries the IP).

Storage
- Only `/volumeN` (digits) is shown. Previously bind-mounts created by
  Container Manager under `/volume1/@appdata/.../all_shares/*` and other
  subpath mounts were listed too, each repeating the pool's usage —
  visually noisy and meaningless.

Verified against DS720+ (DSM 7.3.2) and a multi-NIC NAS running OvS +
Tailscale + Docker.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-13 18:33:48 +02:00
.github/workflows ci: stash rendered formula before checkout in source-repo commit step 2026-06-13 18:02:07 +02:00
dsmview v0.2.1: show all NICs with IPs, filter storage to /volumeN only 2026-06-13 18:33:48 +02:00
Formula chore: refresh formula for v0.1.0 2026-06-13 15:11:57 +00:00
.gitignore feat: initial dsmview - TUI SSH monitor for Synology DSM 7.x 2026-06-13 16:12:58 +02:00
LICENSE feat: initial dsmview - TUI SSH monitor for Synology DSM 7.x 2026-06-13 16:12:58 +02:00
pyproject.toml v0.2.1: show all NICs with IPs, filter storage to /volumeN only 2026-06-13 18:33:48 +02:00
README.md ci: push formula to shared homebrew-tools tap 2026-06-13 16:20:11 +02:00

dsmview

TUI SSH monitor for Synology DSM 7.x — read-only dashboard inspired by btop.

brew tap janvete/tools
brew install dsmview

Usage

dsmview ssh -p334 root@192.168.1.100
dsmview ssh root@192.168.1.100      # default port 22
dsmview ssh nas-home                # alias from ~/.ssh/config
dsmview ssh -i ~/.ssh/id_nas root@IP

Reads ~/.ssh/config (HostName, Port, IdentityFile, ProxyJump). Tries id_ed25519, id_ecdsa, id_rsa, then the SSH agent. Falls back to a password prompt only when no key works.

Read-only philosophy

The application only reads data from the NAS. No agent is installed, no configuration is touched. The single exception is start/stop/restart of a service — and that requires explicit confirmation in the UI.

Tabs

  • F1 Dashboard — CPU history graph, memory, storage pools, network throughput, load average, temperatures.
  • F2 Logs — live tail of /var/log/messages and /var/log/auth.log with severity filters (ALL / ERROR / WARN / SECURITY / INFO).
  • F3 Services — synoservicectl --list table with up/down status and restart/stop/start actions.
  • F4 Disks — per-disk model/size/temp/health from smartctl plus RAID status from /proc/mdstat.

Keys

F1..F4  switch tab
r       refresh now
q       quit

Requirements

  • Python 3.12+
  • Synology DSM 7.x with SSH enabled and a user that can run system commands (typically root or a user in administrators).