Files
nasmon/packaging
a.gritsenkoandClaude Opus 5.5 0cdee29359
build / build (push) Successful in 1m4s
ZFS: dedup toggle per pool and dedup option for new datasets
Pool cards show the dedup ratio and can set dedup=on|off on the pool root
dataset (inherited by children); the new-dataset form gets a dedup option.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 09:30:38 +03:00
..

nasmon

Lightweight NAS health monitor: web dashboard on port 8090 with CPU, memory (incl. ZFS ARC), temperatures, physical disks with SMART, ZFS pools and datasets; periodic SMART/ZFS checks with e-mail alerts.

  • Web UI: http://:8090
  • Settings: http://:8090/settings (also /etc/nasmon/config.json)
  • State: /var/lib/nasmon/nasmon.db (SMART history, alert log)
  • Service: systemctl status nasmon ; journalctl -u nasmon -f
  • JSON API: /api/status, /api/history?hours=24, /api/disks//history?days=30

ZFS datasets from the UI

The ZFS page (http://:8090/zfs) can create datasets in a pool — name (nested names like media/video are fine), owner uid:gid for the mountpoint, compression, dedup, optional quota — and destroy datasets that are empty (no data, no children, no snapshots; the check is repeated against the live system before "zfs destroy"). Each pool card also shows the dedup ratio and can turn dedup on/off on the pool root dataset (zfs set dedup=on|off <pool>, inherited by child datasets; only new writes are affected, and the dedup table needs a lot of RAM).

nasmon runs sandboxed (ProtectSystem=strict → own mount namespace), so these commands are executed on the host through transient units: systemd-run --wait --pipe --collect zfs create …. Every action is logged (journalctl -u nasmon).

nasmon has no authentication: keep port 8090 on the LAN only.

SMB / NFS shares from the UI

http://:8090/shares manages Samba shares (guest or per-user, files always written as the data owner uid 1000), SMB users (smbpasswd; a login-less Unix account is created when needed) and NFS exports (host/IP/CIDR clients, rw/ro, squash). A share can point to any existing folder (ZFS dataset, USB disk under /mnt or /media, /srv…) except system directories (/etc, /usr, /var, /boot…), also after resolving symlinks. Definitions are stored in /etc/nasmon/shares.json; nasmon regenerates /etc/samba/smb.conf (whole file, header "Managed by nasmon") and /etc/exports.d/nasmon.exports, validates with testparm, then reloads smbd / exportfs -ra. A rejected config is rolled back to the .bak copy. Daemons are enabled while at least one share exists and disabled otherwise. "Allow legacy clients" in the SMB settings turns on SMB1 + NTLMv1 (server min protocol = NT1) for IPMI/BMC virtual media and other old devices; it is off by default.

Alerts: the × on an open alert acknowledges it (hidden and not mailed until the problem changes or clears); the × on a resolved alert removes it from the log. Resolved alerts older than 7 days are hidden by default, older than 90 days deleted.