• v1.8.0-Beta.17 8a66429d06

    v1.8.0-Beta.17
    All checks were successful
    CI / Frontend Tests (push) Successful in 6s
    Tests / Run Benchmarks (push) Successful in 1m30s
    CI / Go Build & Test (push) Successful in 1m49s
    Docker Release / build-and-push (push) Successful in 52s
    Tests / Security Scan (push) Successful in 1m36s
    Release / Build & Release (push) Successful in 1m21s
    Release / Build & Release-1 (push) Successful in 1m18s
    Tests / Run Tests (push) Successful in 4m44s
    Release / release (push) Successful in 1m16s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 1s
    Pre-release

    k4wit0 released this 2026-09-15 22:30:44 +02:00 | 1 commits to main since this release

    The updater says it worked, in your language

    Fixed

    • The updater's success line existed in no language at all
    Downloads
  • v1.7.5 fb195d3ccd

    v1.7.5
    All checks were successful
    Rebuild the website / Rebuild the website (push) Successful in 1s
    CI / Frontend Tests (push) Successful in 6s
    CI / Go Build & Test (push) Successful in 1m38s
    Tests / Run Benchmarks (push) Successful in 1m32s
    Docker Release / build-and-push (push) Successful in 51s
    Tests / Security Scan (push) Successful in 1m31s
    Release / Build & Release-1 (push) Successful in 1m3s
    Release / Build & Release (push) Successful in 4m26s
    Tests / Run Tests (push) Successful in 7m14s
    Release / release (push) Successful in 1m12s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 2s
    Stable

    k4wit0 released this 2026-09-14 17:30:41 +02:00 | 145 commits to main since this release

    A 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
    Downloads
  • v1.7.4 55d33477d0

    v1.7.4
    All checks were successful
    CI / Frontend Tests (push) Successful in 7s
    Tests / Run Benchmarks (push) Successful in 1m13s
    CI / Go Build & Test (push) Successful in 1m22s
    Docker Release / build-and-push (push) Successful in 46s
    Tests / Security Scan (push) Successful in 1m18s
    Release / Build & Release (push) Successful in 1m19s
    Tests / Run Tests (push) Successful in 3m44s
    Release / Build & Release-1 (push) Successful in 1m4s
    Release / release (push) Successful in 1m0s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 1s
    Stable

    k4wit0 released this 2026-09-06 20:23:08 +02:00 | 177 commits to main since this release

    Installs 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
    Downloads
  • v1.7.3 b67171c36b

    v1.7.3
    All checks were successful
    CI / Frontend Tests (push) Successful in 32s
    CI / Go Build & Test (push) Successful in 1m39s
    Tests / Run Benchmarks (push) Successful in 1m8s
    Docker Release / build-and-push (push) Successful in 1m1s
    Tests / Security Scan (push) Successful in 1m28s
    Release / Build & Release (push) Successful in 52s
    Tests / Run Tests (push) Successful in 4m14s
    Release / Build & Release-1 (push) Successful in 1m8s
    Release / release (push) Successful in 1m4s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 1s
    Stable

    k4wit0 released this 2026-09-06 19:44:56 +02:00 | 183 commits to main since this release

    The demo page renders again

    Fixed

    • Restore the demo page, blank since 1.7.1
    Downloads
  • v1.7.2 2504d575a5

    v1.7.2
    All checks were successful
    CI / Frontend Tests (push) Successful in 5s
    Tests / Run Benchmarks (push) Successful in 59s
    CI / Go Build & Test (push) Successful in 1m8s
    Docker Release / build-and-push (push) Successful in 52s
    Tests / Security Scan (push) Successful in 1m42s
    Release / Build & Release (push) Successful in 48s
    Tests / Run Tests (push) Successful in 3m4s
    Release / Build & Release-1 (push) Successful in 57s
    Release / release (push) Successful in 51s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 1s
    Stable

    k4wit0 released this 2026-09-04 19:34:16 +02:00 | 187 commits to main since this release

    Settings reachable on tablets in landscape

    Fixed

    • Restore access to settings on tablets in landscape
    Downloads
  • v1.7.1 eb58dfdcac

    v1.7.1
    Some checks failed
    CI / Frontend Tests (push) Successful in 7s
    Tests / Security Scan (push) Has been cancelled
    CI / Go Build & Test (push) Has been cancelled
    Tests / Run Tests (push) Has been cancelled
    Tests / Run Benchmarks (push) Has been cancelled
    Docker Release / build-and-push (push) Successful in 55s
    Release / Build & Release-1 (push) Successful in 1m1s
    Release / Build & Release (push) Successful in 1m3s
    Release / release (push) Successful in 1m3s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 1s
    Stable

    k4wit0 released this 2026-09-04 14:36:06 +02:00 | 192 commits to main since this release

    Security 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
      to X-Forwarded-For rather 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, set TRUST_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, the X-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_PROXY says 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.
    Downloads
  • v1.7.0 78d35c7c65

    v1.7.0
    Some checks failed
    CI / Frontend Tests (push) Successful in 5s
    CI / Go Build & Test (push) Successful in 1m2s
    Tests / Run Benchmarks (push) Successful in 58s
    Tests / Security Scan (push) Failing after 49s
    Docker Release / build-and-push (push) Successful in 1m1s
    Release / Build & Release (push) Successful in 53s
    Tests / Run Tests (push) Successful in 2m48s
    Release / Build & Release-1 (push) Successful in 55s
    Release / release (push) Successful in 52s
    Release / Rebuild the website (push) Failing after 1s
    Release / Trigger retention prune (push) Successful in 1s
    Stable

    k4wit0 released this 2026-08-19 22:20:04 +02:00 | 229 commits to main since this release

    Your 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
    Downloads
  • v1.6.2 cea8dd3c5b

    v1.6.2
    All checks were successful
    Docker Release / build-and-push (push) Successful in 54s
    Release / Build & Release-1 (push) Successful in 1m27s
    Release / Build & Release (push) Successful in 1m29s
    Release / release (push) Successful in 1m9s
    Release / Trigger retention prune (push) Successful in 1s
    Release / Rebuild the website (push) Successful in 1s
    Stable

    k4wit0 released this 2026-08-06 16:15:19 +02:00 | 353 commits to main since this release

    Update 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
    Downloads
  • v1.6.1 a640d8fe34

    v1.6.1
    All checks were successful
    Docker Release / build-and-push (push) Successful in 1m41s
    Release / Build & Release-1 (push) Successful in 1m53s
    Release / Build & Release (push) Successful in 1m55s
    Release / release (push) Successful in 59s
    Release / Trigger retention prune (push) Successful in 1s
    Stable

    k4wit0 released this 2026-08-01 00:18:22 +02:00 | 398 commits to main since this release

    Added

    • 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.
    Downloads
  • v1.6.0 9356322d5b

    v1.6.0
    All checks were successful
    Docker Release / build-and-push (push) Successful in 49s
    Release / Build & Release-1 (push) Successful in 1m30s
    Release / Build & Release (push) Successful in 1m34s
    Release / release (push) Successful in 1m12s
    Release / Trigger retention prune (push) Successful in 2s
    Stable

    k4wit0 released this 2026-07-31 00:26:47 +02:00 | 406 commits to main since this release

    Added

    • 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
    Downloads