Skip to content

Releases: lissy93/dashy

Release 4.5.0

Choose a tag to compare

@lissy93 lissy93 released this 26 Jul 15:17

Dashy 4.5.0 is out!

For full details, see discussion #2277 - any questions or feedback, drop them there :)

✨ New features

  • Drag and drop editing. Grab any section, item or widget and drag it around to reorder or move it.
  • A new Live Tennis widget. Live scores from the ATP and WTA tours, updating as you watch.
  • The GitHub stats widget is rebuilt. It now uses GitHub's own API, so it's more reliable, and you can add a token to raise the rate limit.
  • Nicer numbers in the custom-api widget. New formats for bytes, bitrate and duration, plus scaling, prefixes, suffixes and swapping raw values for your own labels.
  • Long item titles look better. They scroll when you hover and show the full text in a tooltip, instead of getting cut off.
  • A logout redirect option. Send people to a page of your choice after they log out, handy when you're behind an auth proxy.
  • You can turn off the proxy endpoints. Set the DISABLE_PROXY_ENDPOINTS env var if you don't need Dashy's built-in CORS proxy.
  • Client-side only OIDC. A new option to skip the server-side token checks, for setups that want OIDC purely in the browser.

🐛 Bug fixes

  • Edits save to the right place. Fixed section and widget edits sometimes being saved to the wrong section.
  • The left-click menu is back. The left-click context menu on items works again.
  • The config editor opens reliably. Fixed the Edit App Config menu occasionally failing to open.
  • Expired sessions now log you out. No more looking logged in when your session has actually expired.
  • Netlify status checks work again. Fixed the serverless functions that had broken on newer Node versions.
  • Steadier status checks. Fixed a rounding glitch on short check intervals, plus some general reliability tweaks.
  • Saved config shows up straight away. Changes saved on the server now apply right away, without needing a refresh.
  • Friendlier OIDC handling. Dashy warns instead of breaking if your login provider fails to hand back a token.

💥 Changes which might impact you (but probably won't)

Node version updated to 24

We've upgraded to the lates Node version. So Dashy now expects Node 24 LTS or newer (24.11.0+). Node 22 LTS versions above 22.18.0 are still supported. If you get an "" error, I've explained the solution here (TL;DR: Switch node version with nvm, or just pass the --ignore-engines flag to ignore).

Dropped arm/v7 support

Our main/official Docker image no longer builds nativity for 32-bit ARM/v7 architectures. This will only affect you if you're on a 32-bit Raspberry Pi 2 or similar board. We did this because the latest Alpine images have dropped arm/v7 support, and also, emulating arm/v7 with QEMU in our docker build workflow was slow, heavy and flaky. Without it, a full docker build is now down to ~2 mins, reliable and with minimal resource usage.

Browser support

Dashy now officially only supports Chrome 111+, Firefox 114+, Safari 16.4+. So basically any browser released in 2023 or later. That limitation came from upgrading to Vite 8, which was necessary for performance and security.

Updated key names for show/hide sections and items for OIDC users/groups

I've simplified the config to controlling which users or groups can see which sections and items. Under section and item there's a displayData object. This now has options for: showForGroups, showForRoles, hideForGroups and hideForRoles. Each of these accept an array. For an update example, see here. The docs and schema have been updated accordingly. Note that the old way of doing this will continue to work, but will be dropped in the next major version.

Section names must be present and unique

Previously we relied upon generated IDs for tracking each section. This was clumsy and error prone. Now we use a slug generated from the section name. This means that each section must have a name present, and it must be unique to that page. The schema has been updated to enforce this, as well as the UI editor. If you don't want to see section name, use CSS to hide it: .section-header { display: none !important; }

Some server files moved

I found that the ./services/ directory was a bit of a mess, as the files there were a mix of endpoints, scripts and helpers. I've re-organised this so there's now a sub-directory for all the endpoints, and everything else goes in ./services/utils. This shouldn't have an impact on anything, unless you're doing something funny with linking to server utils directly.

Dependencies

As always, there's been some changes/updates to dependencies, to keep everything up-to-date and secure.
We've added the sortablejs dependency (used for the drag-and-drop editing). And done some major upgrades to express, jose, js-yaml, vue-i18n and vue-router. I've made all required code updates and migrations to keep things working smoothly with the new and changed functionality of these.
If you're running Dashy on bare metal, you should already be doing a yarn install when updating Dashy, so you've got all the right dependencies and versions. Actually, I care about you guys having safe dependencies so much, that I've made some upstream fixes too: GHSA-pm4m-ph32-ghv5 bug for js-yaml and key size mismatch jose#883

Files starting with dot be accessible

Any file beginning with a . placed in user-data will no longer be served up. You'll need to rename it (and references to it) to continue using. This was because of some upstream Express changes, but also it's general good security so makes sense to keep.

Expired OIDC sessions sign-out if cannot refresh

If your OIDC token on the frontend is expired, Dashy will attempt to renew it in the background if enableSilentRenew is enabled (and your provided has the offline_access scope added). If this fails, then you'll be signed out and need to re-login. If it's annoying, setup silent renewal, or increase session timeout, or set disableServerSideCheck. I've also pushed a lot of debuging/error catching for OIDC too, which will make fixing any configuration issues easier.

YAML features

conf.yml parsing moved to strict YAML 1.2 core. However I've patched in support for merge keys, timestamps and binary labels so keep things working. But the rarely-used !!set / !!omap / !!pairs tags and some loose YAML 1.1 scalar forms are no longer supported.

Dropped support for legacy auth algos

This shouldn't affect you unless you're using a very old OIDC provider with some niche key algothirm. We've dropped support for ES256K/secp256k1 and Ed448 algos, since they were insecure.


🏅 Credits

Thanks @bensynapse for your contribution of the new tennis widget!

Dashy is free and always will be. It's made possible thanks to our wonderful sponsors.
Drop them a follow and show them some love 💖

sponsors badge


PRs

Full Changelog: https://github.com/lissy93/dash...

Read more

Release 4.4.0

Choose a tag to compare

@liss-bot liss-bot released this 04 Jul 19:55

What's Changed

New Contributors

Full Changelog: 4.3.0...4.4.0

Release 4.3.0

Choose a tag to compare

@liss-bot liss-bot released this 11 Jun 11:20

What's Changed

  • fix: correct zh-CN translation accuracy and consistency by @zcq100 in #2176
  • Update Danish translations in da.json by @olenoerby in #2179
  • ⬆️(deps): Bump zizmorcore/zizmor-action from 0.5.4 to 0.5.6 by @dependabot[bot] in #2178
  • ⬆️(deps): Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #2177
  • Server protects yaml as well as yml by @lissy93 in #2182
  • Fixes col count logic happening pre-config loaded by @lissy93 in #2183
  • Add enableAuthProxyCompat to recover SW from auth proxy expiry by @lissy93 in #2190
  • ⬆️(deps): Bump the minor-and-patch group across 1 directory with 16 updates by @dependabot[bot] in #2188
  • feat: add ICMP ping check support to item by @bgillet in #2180
  • Re-check host blocklist on redirects and in status-check by @lissy93 in #2193
  • Adds apk upgrade to Dockerfile by @lissy93 in #2194
  • Workflow upgrades and clearer outputs by @lissy93 in #2195

New Contributors

Full Changelog: 4.2.0...4.3.0

Release 4.2.0

Choose a tag to compare

@liss-bot liss-bot released this 29 May 20:00

What's Changed

New Contributors

Full Changelog: 4.1.0...4.2.0

Release 4.1.0

Choose a tag to compare

@liss-bot liss-bot released this 16 May 18:02

What's Changed

  • Bring back old layout by @lissy93 in #2095
  • ⬆️(deps): Bump the minor-and-patch group across 1 directory with 8 updates by @dependabot[bot] in #2092
  • ⬆️(deps): Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #2082
  • Clearer error messaging for save config issues by @lissy93 in #2098
  • Fixes Vuln-feed widget and other widget improvments by @lissy93 in #2112
  • Update Arabic language contribution details by @kayedspace in #2103
  • 🇷🇴 Complete Romanian (ro) translations to 100% coverage by @synack1337 in #2114
  • Small fixes and implementing user requests by @lissy93 in #2113
  • ⬆️(deps): Bump simple-icons from 16.18.0 to 16.18.1 in the minor-and-patch group across 1 directory by @dependabot[bot] in #2115
  • Fixes OIDC/KC auth guard, cb skip login page by @lissy93 in #2127
  • i18n: drop orphaned keys from locale files by @synack1337 in #2131
  • Reduces some irrelevant dependabot noise by @lissy93 in #2132
  • ⬆️(deps): Bump the minor-and-patch group across 1 directory with 9 updates by @dependabot[bot] in #2133
  • ⬆️(deps): Bump the minor-and-patch group with 5 updates by @dependabot[bot] in #2137
  • ⬆️(deps): Bump fast-uri from 3.1.0 to 3.1.2 by @dependabot[bot] in #2129
  • Improved CI/CD workflows by @lissy93 in #2139
  • Small fixes and improvments by @lissy93 in #2140

New Contributors

Full Changelog: 4.0.0...4.1.0

Release 4.0.1

Choose a tag to compare

@liss-bot liss-bot released this 26 Apr 17:32

Full Changelog: 4.0.0...4.0.1

Release 4.0.0

Choose a tag to compare

@lissy93 lissy93 released this 26 Apr 16:55
Immutable release. Only release title and notes can be modified.

This is a big one! I'm sorry this one has taken so long to get released. It turned out to be a much bigger task than I first expected.

Changes

For the full list of changes, see: #2002

Many of the biggest changes have been under the hood, rather than user-facing features. A large portion of Dashy has been pretty much re-written from scratch, in order to be compatible with the newer Vue version and modern web standards, and clean and maintainable going forwards. While doing this, we've also included loads of improvements in terms of performance, robustness, security, responsiveness, accessibility and UX, as well as a ton of bug fixes.

Highlights:

  • Compiled app 25% smaller, and Docker image 80% smaller
  • Rebuilding no longer required after making changes
  • Sections now follow a responsive masonry layout
  • Full, built-in multi-page YAML editor with inline completion and validation
  • Simplified settings menu, added simple widget editing
  • Canonical /<view>/<page>/<section> URLs across views/configs/sections, with proper deep-linking and auth controls
  • Per-page config: theme, language, layout, icon size, favicon and address-bar colour
  • No unexpected crashes, reboot loops or excess mem/resource usage
  • Lazy-loaded everything that doesn't need to ship up front: translations, icons, schemas, editor forms
  • Fully upgraded and migrated to Vue 3 and Node 24. Plus Vuex 4, Vue Router 4 and vue-i18n 9 and all other deps

Is it backwards compatible with older versions of Dashy?

I hope so, yes!

There's a few small things, as documents in the PR. Mostly around client-side env vars no longer being needed, and the Dockerfile now being non-root and without rebuild.

I've tested everything for backward compatibility as much as I can, but so much has been re-written that it's hard to give guarantees.

What's next?

Going forwards, I'll work hard to continue to keep Dashy well maintained and running smoothly. But please do be patient, I have other projects which also need attention, and I also need to pay my rent this month 😬

Here's the biggest things which are upcoming:

  • Widgets
    • Many widgets are out-dated, and no longer working well (due to upstream API changes)
    • I need to also build a UI widget editor, so you can add/move/edit widgets more easily
    • And a new widget SDK, to make building your own custom widgets possible
  • Code improvements
    • Typescript end full type safety
    • More complete test E2E suite
  • API
    • For accessing Dashy programmatically

Thanks :)

This has been a massive task, pretty much a month of solid work. So I am really hoping you guys like it! If you have any feedback/comments, this would really help me, so pop them in the comments below :)

I don't like asking this, but if you are enjoying Dashy, and want to help me out, a sponsoring me on GitHub is the biggest way you can support. Everything I do is funded by my sponsors, and I am super grateful for their contributions 💕

Release 3.3.0

Choose a tag to compare

@liss-bot liss-bot released this 15 Apr 19:56
Immutable release. Only release title and notes can be modified.
ec0b2df

What's Changed

Full Changelog: 3.2.0...3.3.0

Release 3.2.0

Choose a tag to compare

@liss-bot liss-bot released this 30 Mar 07:37
24d7414

What's Changed

Full Changelog: 3.1.1...3.2.0

Release 3.1.1

Choose a tag to compare

@liss-bot liss-bot released this 30 May 17:20
462d9db
Release v3.1.1