-
v1.8.0 Stable
released this
2026-09-29 21:44:01 +02:00 | 311 commits to main since this releaseThe machines behind your services
Added
- A chip and a memory stick beside the figures
- A duration says both units, so nothing needs dividing
- A hypervisor behind the demo board's bookmarks
- A node says how much memory, and how many cores
- A page that says which service went down with the machine
- A settings screen for the connection
- A summary across every hypervisor, and a way into each
- A summary that says what every hypervisor adds up to
- A tile for the hypervisor, beside what it runs
- A way back to the board, and a band that admits it has more
- Back leaves a full-screen page, not Lastboard
- Fold a node away when you are not looking at it
- Hypervisors first, and a list that opens without moving the page
- Info links to support instead of the forge's issues
- Let a bookmark say which machine serves it
- Let an operator choose the face of a machine
- Match machines to bookmarks by name, with no setting up
- Read a hypervisor without storing anything about it
- The disk and the machines say how much, too
- The header counts what is stopped, the tile says what it costs
- The interface follows the machines to their own hypervisor
- The logo and the project name link home
- The server reads a list of hypervisors, not one
- The settings screen takes a list of hypervisors
- The sheets say what each figure is, and the charts answer the pointer
- The summary becomes a board, one tile per hypervisor
- The summary names what is wrong instead of counting it
- Three figures you can open, and a tile you can click
Fixed
- A check that could not reach the release server no longer says you're up to date
- A checkbox you can see, and a toolbar toggle that stays put
- A hypervisor card says its shape on its own line
- A node card shows percentages only, the sheet shows the figures
- A node's footer says what its numbers are
- A stopped machine stays where it is, and is seen anyway
- A sweep that only counted items was deleting the machines' icons
- A tile shows its memory figure instead of an ellipsis
- All three lists open the same, and none of them moves the page
- An outage keeps its own start whatever range you pick
- Ask the hypervisors when the list is opened, not only when saved
- Dress the widget in the styles the app actually has
- Drop the helper the host list left without callers
- Durations are spelled out, in one place
- Every dialog on the one recipe, checked rather than assumed
- Every open list gets the same height, not just the first
- Every stopped machine in a soft red
- Fetch the icon catalogues when the picker opens
- Find a machine's bookmark on every board, not the open one
- Fit the three theme options where two used to go
- Four things the approved design had and the page did not
- Give a phone its way back to the settings
- Give the search the whole bar on a phone
- Give the widget a width of its own, or it has none
- Keep the logout where it was, and only one settings icon
- Lock the bar behind the page, as the status page does
- Make room for the longest labels on a desktop too
- Meters read green, amber, red - never the brand accent
- Notice when the dictionary is not from this build, and heal it
- One bar at the top, not two
- One colour rule for every bar on the page
- One magnifier that opens the search and closes it again
- One name per section, not two
- Reorder all the boards or none of them
- The beta setting is a channel, and it says what that costs
- The bookmark mark moves to the corner, beside the status dot
- The Data panel counts bookmarks, so it says bookmarks
- The labels of a chart follow the chart, not the language
- The lists just open, and open on a phone at all
- The machine field wears the app's dropdown, not the system's
- The magnifier leads the expanded search
- The modal stops moving while the steps run
- The panels that float take the surface meant for floating
- The summary's figures stop pretending to be buttons
- The timeline stops re-popping every step at the last one
- The trend lines take the meter's colours too
- The update card on the dark theme, without rings or a brown wash
- The update card's glow no longer ends in a straight line
- The update card's shadow no longer draws rings in the dark theme
- The updater's success line existed in no language at all
- The widget's dot says on or off, like the page's
Changed
- Teach the stored data which Proxmox it means
- The hypervisors become a list with a dialog behind it
- The status page wears the same clothes as the Proxmox one
- Staticcheck runs before a tag, not after one
- Update every toolchain and dependency to its latest release
- Update what was behind, and guard the pins that can drift
Removed
- The Proxmox preset of the API widget, now that Lastboard speaks Proxmox itself
-
v1.7.5 Stable
released this
2026-09-14 17:23:14 +02:00 | 488 commits to main since this releaseA mark of its own, and a theme that follows yours
Added
- A mark of Lastboard's own, drawn as vectors
- Follow the device, for whoever asks it to
- Let people remove Lastboard without doing it by hand
- Tell a blip apart from an outage in the activity bar
Fixed
- Give the login and setup pages a theme colour of their own
- Label the latency axis for the span it covers
- Let the status bar follow the theme the user picked
- Make the activity bar follow the range you pick
- Open the device's own colour picker
- Paint the splash screen in the theme the app actually opens in
- Say "30 days" where the scale said "720h"
- Shrink the avatar the wizard sends, like the settings panel does
- Stop painting the Android status bar in the accent colour
- Stop the installer from taking down what it did not install
- Verify the signature, which the installer never did
-
v1.7.4 Stable
released this
2026-09-06 20:18:54 +02:00 | 520 commits to main since this releaseInstalls as an app, and speaks your language
Fixed
- Ship the icons and the manifest link that installing needs
- Tell the login and setup pages what language they are in
-
v1.7.3 Stable
released this
2026-09-06 19:40:06 +02:00 | 526 commits to main since this releaseThe demo page renders again
Fixed
- Restore the demo page, blank since 1.7.1
-
v1.7.2 Stable
released this
2026-09-04 19:30:04 +02:00 | 530 commits to main since this releaseSettings reachable on tablets in landscape
Fixed
- Restore access to settings on tablets in landscape
-
v1.7.1 Stable
released this
2026-09-04 14:33:01 +02:00 | 535 commits to main since this releaseSecurity and correctness fixes
A maintenance release. Everything below applies to an existing installation the
moment it updates — no configuration changes, no migration steps.Fixed
Security:
- The login lockout could be evaded behind a reverse proxy. A proxy appends
toX-Forwarded-Forrather than replacing it, so the leftmost entry is
written by whoever is calling. Lastboard read that one, which let an attacker
hand themselves a fresh address on every attempt and never trip the five-try
lockout. It now reads the entry your own proxy added. If requests reach
Lastboard through more than one proxy, setTRUST_PROXY_HOPS. - A request for a missing file under
/dist/or/styles/returned the
application shell without a session. Authentication no longer exempts
anything by path prefix. - The monitoring notification URL and token were readable by any account.
They are the administrator's credentials for their own alert channel; only an
administrator receives them now. - The instance metadata service is refused on every URL the server fetches
for you, including the background monitor. Pointing widgets and bookmarks at
your own network is unchanged — that is what Lastboard is for. - The API widget no longer forwards headers that impersonate the caller
(Cookie, theX-Forwarded-*family). API keys and every preset still work. - Logging in and first-run setup now refuse writes the browser reports as coming
from another site, and the WebSocket honours a forwarded host only when
TRUST_PROXYsays there is a proxy in front. - Request bodies are capped everywhere, the address table behind rate limiting
can no longer grow without bound, and the release key is now a list so it can
be rotated without stranding installations that are behind.
Reliability:
- Shutting down no longer cuts background work off mid-write. A restart could
previously interrupt the icon migration or the monitor while it was writing. - A handler that panics now answers with an error instead of dropping the
connection with no status. - Lastboard refuses to open a database written by a newer version, rather than
migrating it downwards. - Settings that cannot be read are reported at startup:
TRUST_PROXY=True, with
a capital letter, silently meant the opposite of what it looked like.
Languages:
- Right-to-left languages are laid out right to left. Arabic, Persian and
Urdu were translated but rendered left to right. - The page now declares the language it is actually in, which is what a screen
reader announces and what the browser hyphenates by. It always said English. - Dates and numbers are formatted in the language you chose, not the browser's,
and values inserted into a sentence keep their punctuation in place.
Changed
- Releases are reproducible. Two builds of the same source now produce
identical binaries, so anyone can rebuild a release and compare it against the
published checksums. The recipe is in the security documentation. - The Docker and monitoring widgets refresh their list instead of rebuilding
themselves on every tick, so an open popup stays open and a scrolled list stays
where you left it. - Bookmark health checks are probed in bounded batches rather than all at once.
- The login lockout could be evaded behind a reverse proxy. A proxy appends
-
v1.7.0 Stable
released this
2026-08-19 22:16:33 +02:00 | 572 commits to main since this releaseYour board stands on its own
Added
- Add a widget for the services you monitor
- Bring in the icons a board was already using
- Keep demo instances out of search results
- Keep picked icons on your own instance
- Move every setting into the widget's config screen
- One list of the containers you chose, from every host
- Open a container's service from its row
- Pick a host on the left, configure it on the right
- Read the address a container labels itself with
- Show the widgets the demo never had
- Store the icon when a bookmark or container is saved
- The brand orange is the default accent, everywhere it was blue
- The same status dot the monitor widget uses
Fixed
- A task list's boxes are meant to be untickable
- Accept the addresses Docker itself uses
- Build the split from the form's own primitives
- Dialogs opened from Preferences dim what is behind them
- Fill the telemetry cell while its reading is on the way
- Keep test and CI commits out of the release notes
- :latest is the stable release again, not a beta from August
- Let the Data panel read as three choices, not one wall
- Make clearing the history say what it clears
- Make the stable path answerable without a terminal
- Monitoring stops showing settings it hasn't read yet
- Name the widget, align its columns and use the house dropdown
- One name for the default dashboard, in English, on every install
- Quotes and horizontal rules come out of the widget again
- Restore the vertical spacing every settings screen had lost
- Saving a Notepad's settings no longer erases the note
- Say where the icons come from even when nothing is pending
- Show one host's containers at a time
- Start the picker clean every time it opens
- Stop cutting container addresses in the settings screen
- Stop the release titles from becoming features
- Stop the width rule from collapsing the toggle switches
- The port in the example address follows the connection type
- The ports column takes what it needs and the name keeps the rest
- The preferences panel uses the width it has
- The settings window slides in again
Changed
- Ask who you are without waiting for the locale file
- Fold Alerts into Monitoring and stop over-explaining
- Give every widget the same header
- One settings window, at one size
- Read a host's container stats in one request
- Read the token in one place
- Resolve picker results in one place
- Stop rebuilding every widget on each re-render
- Summarise the overview in the database
- Drop nine strings nothing asks for any more
- Translate the monitoring widget into every locale
-
v1.6.2 Stable
released this
2026-08-06 16:13:20 +02:00 | 696 commits to main since this releaseUpdate window, mobile scrolling and UI polish
Added
- Let the API widget's view be chosen explicitly
- Put the whole update behind one modal with a timeline
- Report the update progress step by step
Fixed
- Degrade gracefully on an unexpected weather payload
- Drop the ignored User-Agent on the geocoding request
- Fail the build when asset sync fails
- Flip the forecast tooltip when the top bar would cut it off
- Keep the clock working on an unusable time zone
- Let config modals scroll without clipping select dropdowns
- Let the dashboard scroll down to the last item on mobile
- Make the colour picker usable with touch and screen readers
- Name an expired session instead of blaming the update
- Prune history on startup and forget deleted monitors
- Refresh the starter dashboard for new installs
- Reject setup early and cap request bodies
- Restore the dark autofill colours in every text field
- Stop the scrollbar flashing when a dialog opens, and cover the rest
- Stop the scrollbar flashing when a widget dialog opens
- Tolerate a missing build stamp outside the bundler
Changed
- Define the shared style primitives in one place
- Drop the shared input rule that overrode the components
- Make locale files cacheable
- Stop embedding duplicate and unused assets
- Unify motion curves, dialogs and inputs
- Describe the update window
- Drop an unused component and its dead translations
- Lay the API widget's advanced form out in two columns
- Make the release script fail safely and preview itself
- Stop truncating long select labels and drop the native resizer
- Translate the update window into every locale
-
v1.6.1 Stable
released this
2026-08-01 00:15:58 +02:00 | 741 commits to main since this releaseAdded
- Six more service presets for the API widget — Proxmox VE, Home Assistant, Uptime Kuma, Overseerr/Jellyseerr, Bazarr and Prowlarr. A preset can now ask for one extra detail on top of the base URL and credential — the node, entity or status page it should read — which is what these services need to point at something specific.
- A search box in the service picker — the list holds seventeen services now, so you can type the name instead of scrolling for it.
- Uptime monitoring in the live demo — the demo dashboard shows the status page, per-service latency history and the hover tooltip, with one service in an outage so the feature reads at a glance.
Changed
- The API widget documentation covers the extra preset field, and explains why an endpoint that answers with a top-level JSON array cannot be rendered as a list.
- The Go module path now points at this repository instead of the project's former home.
- The updater's download, checksum and archive-extraction steps are covered by tests, as are the colour picker's conversions.
-
v1.6.0 Stable
released this
2026-07-31 00:24:44 +02:00 | 749 commits to main since this releaseAdded
- 1.6.0 beta cycle: cross-dashboard item moves, generic API widget with presets, uptime monitoring with history and alerts, Homepage/Dashy import and native export, and a card motion system
- Accept dashboard_id in UpdateItem to move items
- Add 8 more service presets
- Add a Move action to the reorder sheet
- Add an Open Collective donation link to About
- Add append-only monitor_checks history store
- Add block auto-place primitives
- Alerts via ntfy/Gotify/webhook
- Always-on backend scheduler
- Arrival highlight after moving between dashboards
- Auto-refresh the open history drawer
- Bucket the heartbeat across the whole range
- Built-in uptime monitoring, a generic API widget, cross-dashboard moves and Homepage/Dashy import
- Bulk-move items via a kebab menu and topbar selection
- Clear-data action, Exit button, wider list
- Coordinated ranges and Uptime-Kuma-style hover
- Dissolve cards on delete
- Exclusive topbar modes and a donation link in About
- Full-screen status page with shared detail
- Generic API widget (metric mode)
- Group the service picker by category
- Guided service presets (AdGuard, Paperless, Immich)
- Import UI + materializer + native export button
- Keep topbar, redesign list rows, red clear menu
- Latency chart, incidents and range selector
- Make edit, settings and the status page exclusive modes
- Materialize newly-created cards
- Move bookmarks and widgets between dashboards
- Move sections between dashboards with their subtree
- Native YAML export + competitor parsers
- On/off toggle and topbar status icon
- Per-item history and uptime endpoint
- Redesign toasts (bottom-center, actions, progress bar)
- Rich hover tooltip on status dots
- Server-side fetch endpoint for the generic API widget
- Settings endpoint for mode and interval
- Status-checks toggle in settings
- Status-history detail drawer
- Status-page overview of all monitors
- Support list mode via array path extraction
- Support non-selectable category headers
- Timed probe and monitored-item enumeration
- Uptime-Kuma-grade detail redesign
- Visible board entrance + stronger create/move/delete cues
Fixed
- Allow selecting an option with an empty value
- API config polish and config-on-add
- History drawer crashed on services with no outages
- Invalid Date in history timestamps
- Probe the URL stored in bookmark content
- Robust positioning, centered callout, click-to-toggle
- Stop run-together changelog headers
- Use the panel's own field styling for notify URL/token
Changed
- Dedicated Data section, disambiguate backup vs import
- Drawer footer and modal-style close button
- Recent-beats heartbeat like Uptime Kuma
- Split Monitoring and Notifications sections
- Chore(lint): modernize remaining b.N benchmarks to b.Loop()
- Chore(lint): satisfy sqlrowserr and modernize analyzers
- Clarify that new dashboards are created from the Add menu, not the switcher
- Docs(changelog): reflow historical entries to the correct formatting
- Docs(readme): cover the API widget, monitoring and import/export
- Document API widget, monitoring, dashboards, import/export and preferences
- I18n(dashboard): clarify move picker title as 'Move to… (Dashboard)'
- I18n(dashboard): translate the move-to picker into all locales
- Revert(mobile): drop move-to-dashboard from the reorder sheet
- Show the Add (+) menu when creating dashboards and bookmarks
- Style(monitoring): wider, column-aligned status-page list
- Use the new product mockup as the README hero