Four Beszel widgets show how your other machines are doing: every system, one system in full, only the ones that need a look, and every disk. Confetti keeps the // and the widget icon in its headers. The Containers and Bookmarks views fit a laptop window again, and the Bookmarks header waits for a scroll before it turns solid, as the other list views do. Config is one pane now, easier to read on glass, with its hints under the settings, a calmer Overview, Statistics and Logs, and the Unraid connection first.
Widgets
- new — four Beszel widgets. They read a Beszel hub and sit under How is this machine doing?: Beszel systems (every system with a dot for its state; narrow, the reading closest to its limit, wide, processor, memory and disk as bars with the temperature and uptime), Beszel system (one system in full, and wide, its processor over the last hour), Beszel attention (only the systems that are down, waiting, paused, or running hot or full, with the reason when wide, or one line saying all are fine) and Beszel storage (the root disk and every extra disk of each system, fullest first, grouped per system when wide). A reading turns amber at 80 % and red at 90 %, a temperature at 70 °C and 85 °C. A system that is down shows that it is down and since when, never the readings Beszel keeps from before.
- new — Beszel is set up like the other service tiles. The hub's address and the email and password of a Beszel user, then Connect, which says Connected to Beszel with how many systems it found and lists them: boxes to tick for systems, attention and storage (all ticked means every system, one added later included), one system for the single-system tile. Then the figures to show (processor, memory, disk and temperature to start with; graphics card, network and load on request — a figure the agent does not report is left out, never drawn as zero), the order, leaving out paused systems, the click, rows and refresh (30 s at least, 60 s by default). The password stays on the server, which signs in itself and again when the session runs out. Four tiles on one page ask the hub once per refresh, not four times.
- fix — a service that could not be reached said its sign-in was refused. A sign-in that never got an answer — no route to the host, a refused connection, a timeout — was reported as refused that sign-in, which sends you to retype a password that was right. It now says the service could not be reached; an answer that came back and said no is still a refusal. This holds for every tile that signs in, qBittorrent included.
Themes
- fix — Confetti keeps the // and the widget icon. On Follow the theme Confetti drew its headers Clean, which hides the // before a category name and the panel icon before a widget name (they show as a grip on hover). Confetti now keeps the theme header like every other theme; Clean stays one pick away in Category header → Style (
category_header_theme.go,theme-loader.js).
List views
- fix — the Containers table ran past its pane on a laptop window. Which columns give way was decided by the window's width (768–1099 px), but the rail, the pane's padding and the page margin take a different share at every size: at 1140 px the list had 664 px for a 781 px table. The columns now answer to the list's own width, a container query on
.lvs-body(docker-list): Image goes under 860 px, CPU, RAM, Size and Restarts under 660 px. The body is the container rather than the table, so the sticky column heads keep the window as their scroller (docker-view.css). - fix — the Bookmarks header was dark before anything scrolled. The rule that leaves a list view's header see-through at rest named the Tags, Inbox and Containers views, whose band is the shell's
.lvs-header; the Bookmarks view's band is config's.config-view-headand was left out, so it showed its scrolled, nearly solid fill from the first paint. It is in the rule now (category-surface.css). - fix — the Bookmarks toolbar overlapped itself on a laptop window. It never wrapped, so beside the rail the search box shrank to 0 px and the count was drawn over it, and Add Bookmark ran past the edge. The toolbar wraps at every width and the search box keeps at least 12rem (
config-bookmarks-workbench.css). - docs — three new tests guard these fixes. On a laptop-sized window the table stays inside the list in
tests/docker-columns.spec.js, the Bookmarks case of the header of … is part of the pane intests/config-panes.spec.js, and on a laptop-sized window the toolbar wraps intests/config-bookmarks-redesign.spec.js; each fails without its fix.
Config
- fix — Appearance's tabs took two lines on a normal window. Each group's label stood above its tabs, so the three groups needed a second row for nine tabs. The label now sits in front of its tabs, a thin rule sets the groups apart, the tabs are a little narrower, and two names are shorter: Theme (was Theme & type) and Previews (was Link previews). The strip is one line from about 1440 px wide; narrower, it still wraps by whole groups (
config-view.css). Old links keep working; the tab ids did not change. - docs — a test for the one-line strip. On a wide window the strip is one line in
tests/config-appearance-groups.spec.js, and the wrap test there now checks the label in front of the tabs; both fail on the old layout. - fix — Config was a pane per panel, now it is one. Config had two arrangements, loose panes on the page and one pane round the whole view, and the loose one was the default, so on a glass theme it read as a different application beside the other views. It is one pane now, round the header, the list of sections and the content; a panel, an overview card or a table inside keeps a faint tint and a hairline rather than a pane of its own, so a long settings page still shows where a block starts and ends. The other arrangement is gone (
category-surface.css). - fix — hints sit under their setting, and an ℹ that said the same is gone. The line under a setting is the first sentence of its info, so an ℹ with a one-sentence info opened a dialog that repeated it. The ℹ is left out where it would only repeat the line, and stays where there is more to read; Appearance keeps all of them, since its line is cut to one row and the dialog is the way to read the rest (
dashboard-config.js,config-tabs.css). - fix — Appearance rows and widget names collided. A row's label, its explanation and its control, and the names in the widget lists, ran into each other at some widths (
config-tabs.css,config-view.css,theme-browser.css). - fix — shorter intros, a lower Bookmarks preview, Compose lines folded. The opening lines of Categories, the status modes, the Unraid connection and the Status page say what the tab is for and leave the rest to the settings; the Bookmarks view's preview is shorter, so the settings are what the tab shows; and on Containers → Connection the compose lines for the Docker socket sit folded under Compose lines, since they are for the one time you set it up and the status above them is what you came to read.
- fix — the way to a view is at the right edge of the band. Bookmarks and Inbox each have a view of their own, and the link to it (Open the Bookmarks view ↗, Open the Inbox ↗) was a button drawn into the body of one tab. It stands in the same place in both now, beside the section's title. A divider sets Containers apart in the list of sections, and Statistics' first tab is Summary (was Overview).
- fix — Unraid opens on the connection. The section opened on All, with How it works above the connection form and the seven widgets drawn in miniature with example figures. It opens on Connection now, the address and key first and the widgets as chips under them, each with its Add; How it works is a tab of its own. All and What you get are gone (
dashboard-config-unraid.js). - fix — a calmer Overview, Statistics and Logs. The six figures at the top of a Statistics tab stand three and three, or all six on a wide window, or two and two on a narrow one, never five and one left over; the tiles of Logs stay out of the way until the log has a line, since three zeros say nothing (
config-view.css,config-bookmarks-workbench.css,dashboard-config-logs.js). - fix — toggles, row buttons and Delete are easier to hit and to read. A checkbox and its words are one target, a little taller than the text and tinted under the pointer, with nothing around it moving. Duplicate, Delete and the other buttons in a table row have an edge and a faint fill and their ink at full strength, instead of two grey words beside a number; Delete was red on a red-tinted row and nearly vanished, and is pulled towards the text colour now, on a light theme as well. The title above the list of sections is small and muted, since the band above it already says where you are (
config-view.css,config-structure.css). - docs — tests for the one pane.
tests/config-panes.spec.jsnow asks for one pane round Config and no second arrangement, and two structure tests follow the new buttons (config-structure-table.spec.js,config-structure-categories-grouped.spec.js).
Docs
- docs — the Beszel widgets, server side.
widgets_beszel.goreads/api/collections/systems/recordswith the PocketBase session the Custom widget already knew (token inAuthorization, noBearer), and for the single-system tile the last hour ofsystem_stats(type='1m', filtered by system and time; the collection refuses a sort). The four types share one cached question per hub, sign-in and refresh, keyed by the login (host, user, password hash) rather than the credential id, because each widget files its sign-in under an id of its own. An expired token makes PocketBase answer 200 with an empty list, so a list that was full and comes back empty signs in once more before it is believed.MediaItemgains an optionalmetersblock andMediaResultan optionalcounts; answers without them are byte-identical to before. RoutesGET /api/widgets/beszel,/beszel-system,/beszel-attention,/beszel-storageandPOST /api/widgets/beszel/setup(write token, denied in demo mode). Tests inwidgets_beszel_test.goandwidgets_beszel_route_test.gorun on a scrubbed recording of a real hub ininternal/app/testdata/beszel/. - docs — the Beszel tiles.
dashboard-widget-beszel.jsdraws the four types through the media tile's newdrawhook, with the one- and two-column forms switched by the panel's container query;meterToneandmeterBarindashboard-media-tile.jsare shared helpers. A checkset setting can now name its starting selection (defaults), used for the Beszel figures.tests/dashboard-widget-beszel.spec.jscovers each tile at 320 and 680 px, a down system that carries stale readings, and Connect → choose → Save. - docs —
mediaSignInErrorinwidgets_media.gotells a transport failure (*url.Error) from a refusal, formediaRequestand the Beszel sign-in; a test signs in to a closed address. - docs — 107 strings in six languages. The Beszel widgets', and the ones Plex, Home Assistant, the Containers notes and the now-playing tiles had only in English: widget names and descriptions, setup words, values and errors.
- docs — Help and MANUAL. Config → Help → Widgets lists the four Beszel kinds (forty-six in all) and Beszel among the services with a tile of their own, in six languages. MANUAL §15.1 has a table of the four with three screenshots (
15-beszel.jpg,15-beszel-system.jpg,15-beszel-narrow.jpg, taken by the new 15 beszel shot with data patchbeszel), §15.3 the set-up, and the homelab sections mention them. - docs — the Unraid template (
templates/nextdash.xml) lists the v1.20.0 changes, the same as the copy Community Applications reads. - docs — Help, tips and the manual follow Config. Config → Help names the tabs as they are now (Theme, Previews, Statistics' Summary), says that Appearance's tabs share one line from about 1440 px wide, that a short line under a setting explains it and an ℹ opens the rest where there is more, that Unraid opens on Connection, and where the link to the Bookmarks view and the Inbox stands; a tip, the themes topic and two news lines that sent you to Theme & type and Link previews send you to the new names. MANUAL §15.6, §16, §17, §18 and §20 say the same, and 33 screenshots are taken again in Gloss Chrome dark on default settings, the Unraid one now showing the Connection tab. About is left out of the manual.
- docs — fourteen strings that had stayed English-only in five languages. The three tab names, the two lines of the Status page's introduction, the Unraid introduction and its widgets panel, the introduction of Categories, the checking modes' lead, the About and Version texts and the Docker socket hint were changed in English alone; Dutch, German, French, Spanish and Chinese have them now.
- docs —
static/data/whats-new/v1.20.1.jsonand its index entry, with the Beszel widgets as the highlight and a picture (media/v1.20.1-beszel-widgets.jpg, taken bytests/whats-new-media.spec.js, whosetargetmay now be several elements).whats-new-stub.js'sNEXTDASH_WHATS_NEW_DATA_VERSIONmoved towhats-new-v345andDASHBOARD_RELEASEto v1.20.1. README counts forty-six widget kinds and names the Beszel ones.go generaterefreshedasset_hashes_gen.go.