Skip to content

Releases

v1.5.0 – delete via settings, protected TrueNAS snapshots

Choose a tag to compare

@Synecho Synecho released this 11 Oct 19:54

New

  • Settings dialog (gear icon, also Edit → Settings…) with Allow deleting snapshots.
    Deleting is now switched on in the web UI (stored per browser) – no environment variable needed.
    Every deletion still needs the double confirmation.
  • Snapshots managed by TrueNAS can never be deleted: boot environments (boot-pool, freenas-boot –
    manage them under System → Boot), the system dataset (.system) and the apps datasets (.ix-apps,
    ix-applications). They show a 🔒 in the table, cannot be selected, the details panel explains why, and the
    server rejects them as well.

Changed

  • SNAPVIZ_ALLOW_DELETE now defaults to ui (switchable in the settings). false locks deleting completely,
    true keeps it always on. If you set SNAPVIZ_ALLOW_DELETE: "true" before, nothing changes for you;
    you can remove the line and use the settings instead.
  • Catalog option Allow Deleting Snapshots now defaults to on and means "can be switched on in the web UI";
    turning it off locks deleting.
  • Demo data includes boot environments.

Image

ghcr.io/synecho/truenas-snapshot-visualizer:1.5.0
sha256:193b473fa87fbe38c978cfcfcd9afb75fca4da2e98df6a6c8dd51c7945df3bf9

v1.4.1 – http redirect, clearer delete

Choose a tag to compare

@Synecho Synecho released this 11 Oct 19:31

Fixed

  • Opening http:// no longer shows an empty error page (Firefox: NS_ERROR_NET_EMPTY_RESPONSE).
    Since 1.3.0 the web UI uses HTTPS; plain HTTP requests on the same port are now redirected to
    https:// (308, path and query are kept).
  • The app shuts down gracefully on docker stop.

Changed

  • Clearer details panel: it leads with "Freed when deleted" and the age, followed by a prominent
    Delete snapshot… button. If deleting is not possible (disabled via SNAPVIZ_ALLOW_DELETE, or the
    snapshot has a zfs hold) the button is greyed out and the reason is shown.
  • The zfs destroy commands were removed from the panel; zfs list / zfs diff moved into a collapsed
    Commands for the TrueNAS shell section.
  • Double confirmation for deleting: tick "I understand that … will be deleted permanently", then click
    Delete twice – the first click arms the button for 5 seconds. Replaces typing the number of snapshots.

Image

ghcr.io/synecho/truenas-snapshot-visualizer:1.4.1
sha256:0f208bc8bd837de7097a16ac973e3558320164439c1afdc09308e036676b9f8c

v1.4.0 – shareable links, search syntax, keyboard shortcuts

Choose a tag to compare

@Synecho Synecho released this 11 Oct 19:12

New

  • Shareable links: the address bar always holds the view, filters, treemap zoom and the selected
    snapshot, e.g. #snapshots?ds=tank/vm&age=gt:30&snap=tank/vm@auto-…. Bookmark a view or send it;
    opening the link restores everything and opens the snapshot details. Works through the login page too.
  • Search syntax: the search box understands >10g, 5m..1g, =12g (size in the selected metric),
    used>1g, written<100m, ref>2t, age>30d, age:7d..30d, -hourly (exclude), held and
    /regex/. Terms are combined with AND, e.g. tank/vm age>90d >1g. Terms that can't be parsed turn
    the box red and are ignored.
  • Keyboard shortcuts: ? shows an overview (also via the new ? button), / search, 1–5 views,
    r reload, Esc close details. Snapshots table: ↑/↓ or j/k, Home/End, PgUp/PgDn,
    Space marks a snapshot for deletion. Treemap: Backspace zooms out.
  • Which files does a snapshot hold? The details panel offers ready-to-copy zfs diff commands for the
    TrueNAS shell: previous → this snapshot (≈ written) and this → next snapshot or the live dataset
    (≈ used, freed by deleting). The TrueNAS API has no diff method, so the app can't run it itself.

Changed

  • CI lints JavaScript (Biome) and Python (Ruff) and runs frontend unit tests on every pull request.
  • Small fixes found by the linters (e.g. size formatting treats non-numeric values as missing).

Image

ghcr.io/synecho/truenas-snapshot-visualizer:1.4.0
sha256:5c18f4711ee4854722229472940126b37ee0aa197ee8253c11976b5b99a3d5a5

Earlier versions

1.3.0

  • HTTPS by default (self-signed certificate, own certificate via SNAPVIZ_TLS_CERT/SNAPVIZ_TLS_KEY,
    SNAPVIZ_TLS=off behind a reverse proxy) and optional password login (SNAPVIZ_PASSWORD).
  • TrueNAS system datasets hidden by default (toggle in the filter bar, SNAPVIZ_EXCLUDE_DATASETS).

1.2.0

  • Select snapshots (table checkboxes, Ctrl+click in treemap/timeline, details panel) and delete them
    from the UI
    via Edit → Delete selected snapshots…. Off by default (SNAPVIZ_ALLOW_DELETE);
    confirmation dialog, skips held snapshots, warns about the newest snapshot of a dataset, CSRF protection.
  • Fix: the Copy buttons work over plain HTTP.

1.1.1

  • New app icon.

1.1.0

  • Middleware socket mode: mount /var/run/middleware and the app reads TrueNAS without an API key
    (authenticated by the container's UID). Falls back to the API key if the user has no privileges.

1.0.0

  • First release: overview, WinDirStat-style cushion treemap, timeline, dataset and snapshot tables,
    filters, CSV export, import of zfs list output, demo mode, TrueNAS API (24.10 – 27) with API key,
    English and German UI.

v1.3.0 – HTTPS and password login

Choose a tag to compare

@Synecho Synecho released this 11 Oct 19:01

⚠️ Breaking change: the web UI now uses HTTPS

The web UI is served over HTTPS by default with a self-signed certificate.
After updating, open https://<your-truenas>:<port> and confirm the certificate warning once.
The old http:// address no longer works. Behind a reverse proxy that already terminates TLS,
set SNAPVIZ_TLS: "off".

New

  • HTTPS with an automatically generated self-signed certificate (SNAPVIZ_TLS=auto, default).
    Use your own certificate with SNAPVIZ_TLS_CERT / SNAPVIZ_TLS_KEY. Set SNAPVIZ_DATA_DIR to a
    writable directory to keep the certificate (and logins) across restarts.
  • Optional password login (SNAPVIZ_PASSWORD): login page, signed session cookies
    (HttpOnly, SameSite=Strict, Secure, 30 days), 10 failed attempts lock an IP for 10 minutes,
    logout button. Strongly recommended together with SNAPVIZ_ALLOW_DELETE.
  • TrueNAS system datasets are hidden by default (.system, .ix-apps/docker,
    ix-applications/docker and k3s). Toggle hide system datasets in the filter bar;
    patterns via SNAPVIZ_EXCLUDE_DATASETS.

Changed

  • Container healthcheck runs python -m snapviz.healthcheck (works for http and https).
  • Catalog form: new options Use HTTPS and Web UI Password; the portal opens via https.
  • Image size 117 MB (adds the cryptography package for certificate generation).

Image

ghcr.io/synecho/truenas-snapshot-visualizer:1.3.0
sha256:39d7f2770d086e330ad0686c4647a2bb9b3b47637c1f3c9543ac649e6beb6bd5

Earlier versions

1.2.0

  • Select snapshots (table checkboxes, Ctrl+click in treemap/timeline, details panel) and delete them
    from the UI
    via Edit → Delete selected snapshots…. Off by default (SNAPVIZ_ALLOW_DELETE);
    confirmation dialog, skips held snapshots, warns about the newest snapshot of a dataset, CSRF protection.
  • Fix: the Copy buttons work over plain HTTP.

1.1.1

  • New app icon.

1.1.0

  • Middleware socket mode: mount /var/run/middleware and the app reads TrueNAS without an API key
    (authenticated by the container's UID). Falls back to the API key if the user has no privileges.

1.0.0

  • First release: overview, WinDirStat-style cushion treemap, timeline, dataset and snapshot tables,
    filters, CSV export, import of zfs list output, demo mode, TrueNAS API (24.10 – 27) with API key,
    English and German UI.