Dashy V3 - Upcoming Changes in your Setup #1529
Replies: 7 comments 7 replies
-
V3 has been released in 3.0.0 (Re: #1537)! 🎉 Here's a summary of changes:
Any questions, let me know below :) |
Beta Was this translation helpful? Give feedback.
-
Some further points, that I've updated in the docs, but should have also included here. There were a few config options that aren't possible to implement without requiring a rebuild, since they're needed in the initial load of the app, before it's possible to fetch your config. These are: 1. Starting ViewModifying 2. Basic AuthAgain, Apologies for forgetting to mention this. It's been a big update, and I'm still ironing out a few kinks. |
Beta Was this translation helpful? Give feedback.
-
I have tried 3.0.0. It appears to have the similar new requirements as 2.1.2. Namely if you do not have an unused ~3GB of ram for the build process, the build will not finish and will hang the docker instance at 100% cpu and 100% memory. On 2.1.2, the ram eating build happens every time the config is saved to disk from the app. However on v3.0.0 the ram eating build happens at startup only (seemingly, so far.) On either version, if you have enough ram available, once the build process is complete, CPU and RAM return to normal. For example, one of my docker instances uses a nominal 1.80G of ram. If I set the ram to 4GB, the build never finishes and the docker instance locks at 100% cpu and memory. However, if I give the docker instance, just 1 more GB of ram, the usage spikes up to about 4.05GB of ram, completes, and returns to the nominal 1.80GB of ram usage. Edit: |
Beta Was this translation helpful? Give feedback.
-
I always admire the work you do to maintain and upgrade this project Lissy! I'm a normie, not a power user but I enjoy Dashy every single day I use my PC and think of you. Thanks ! |
Beta Was this translation helpful? Give feedback.
-
Well, now I know why my Dashy has been broken for over a week and after trying to troubleshoot my docker setup, network, reverse proxy, and everything else.. I finally realize a new version was released that broke everything. 😭 |
Beta Was this translation helpful? Give feedback.
-
Minor issue but has anyone else's favicon disappeared with this version? |
Beta Was this translation helpful? Give feedback.
-
I folllowed the exact steps, changed the docker compose accordingly, so that the conf is in /app/user-data and tried to access, yet I always get an undefined error "Something went wrong", even though the logs show that the config is valid. |
Beta Was this translation helpful? Give feedback.
-
So we've got a big update to Dashy coming up (PR: #1528)
No more rebuilding 🎉
One of the biggest frustrations has been that the app needed a rebuild before your changes took effect. This was slow and resource intensive (thanks to Node.js). Good news, from V3 onwards, rebuilding will no longer be necessary! Dashy will build once (when you first install it), and then your config file will be fetched dynamically at run-time, so any changes made will take effect immediately.
This will also make it possible to use a remote config, either as your main entry-point, or for any sub-pages.
Mounting a directory, not a file 😌
Previously, the config was mounted as a single file (to
/public/conf.yml
). That's quite non-standard for Docker, and also meant that for users wanting to pass in additional assets or customizations, they'd have to mount several different files. This is changing, we now have a new directory nameduser-data
, which will contain your config file, as well as any other optional icons, stylesheets, fonts, custom code / overides, and whatever else you want.Warning
This will require change to your Docker run command / compose file. Replace
/app/public/conf.yml
with/app/user-data/conf.yml
or mount a directory containing yourconf.yml
to/app/user-data
.Switch to Non-Root of Port 🔒
Up until now, the Docker container has been exposing port
80
(the default for HTTP servers). But since ports below 1024 are privileged, it meant the Docker user needed elevated permissions. This is changing, we'll now be using port8080
so that the image is truly non-root.Warning
This will require you to change the port in your Docker run command / compose file. Replace
80
with8080
Environmental Variables for Widget API Keys 🔒
Some widgets require you to pass potentially sensitive info to them (such as an API key). Having this in plain text in the config file is not secure. You can now set an env var in the container/app, then pass the name of that variable as the value, instead of the plaintext value. Note that this must begin with
VUE_APP_
(due to limitations in the frontend Vue.js app).This is backwards compatible, so will not break any existing setups.
Thanks @zigotica for implementing this!
Other Changes ⚡
This update also contains many other smaller changes, optimizations and bug fixes. None of these will require you to modify any of your config or setup.
You'll see the new release published in the coming days (likely tomorrow / Sunday 14th). When you upgrade, be sure to make the above changes to the mount path and port. The docs will also be updated to reflect this.
If you've got a spare minute, it'd be a huge help if you could drop a code review on #1528 :)
Beta Was this translation helpful? Give feedback.
All reactions