-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Dashy V3 - Upcoming Changes in your Setup #1529
-
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 named user-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 your conf.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 port 8080
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
with 8080
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
-
👍 37 -
🎉 16 -
❤️ 14
Replies: 7 comments 8 replies
-
V3 has been released in 3.0.0 (Re: #1537)! 🎉
The container will be available on Docker Hub and other registries shortly.
Here's a summary of changes:
- Update your Docker tag to
:3.0.0
- Update container port to
8080
- Update path to config to
user-data/conf.yml
Any questions, let me know below :)
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 13 -
🎉 5
-
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 View
Modifying appConfig.startingView
will require a rebuild. Alternatively, you can set this value as an environmental variable (VUE_APP_STARTING_VIEW
) instead.
2. Basic Auth
Again, appConfig.auth
requires a rebuild to take effect. This should work okay if you set it before the container first builds, but if you need to modify it, then you'll need to re-run a build (either through the UI Settings --> Rebuild, or via the terminal, with yarn build
)
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.
All reactions
-
👍 1
-
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.
TL;DR:
Make sure you have at least 3GB of unused ram for the initial build to complete successfully on 3.0.0
Edit:
I have moved to 3.0.0 permanently, and it working very well. Thank you! I moved my config location from /app/public/conf.yml to /app/user-data/conf.yml and all of my configuration seems to have zero issues from 2.1.2 to 3.0.0.
Beta Was this translation helpful? Give feedback.
All reactions
-
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.
All reactions
-
😄 2 -
🎉 3
-
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.
All reactions
-
😄 2
-
I think you can pin to a major version - but I would have to think about how. But pretty sure if you want to be safe for a while, you could pin to 3.
Beta Was this translation helpful? Give feedback.
All reactions
-
Minor issue but has anyone else's favicon disappeared with this version?
Beta Was this translation helpful? Give feedback.
All reactions
-
Yes, I no longer have an icon in my browser tab for Dashy.
I found an old comment about it: #750 (comment)
I was able to confirm the favicon.ico is still there if I manually check it in the address bar per Lissy93's response, but it doesn't appear in my browser tab anymore.
Beta Was this translation helpful? Give feedback.
All reactions
-
Based on that old comment I did some digging.
/favicon.ico exists and loads just fine but my dashy site still has no favicon. I've cleared cache several times since it disappeared.
Looking in the dev console I don't see any attempts to load favicon.ico. What I DO see is an attempt to load "favicon-16x16.png" which returns a 404.
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
Just to eliminate it as a source I removed authentication and then completely cleared my cache and restarted my browser again. No change.
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
One further detail, the favicon does display in my browser tab while Dashy is on the initialization page, but once it finishes initializing the icon disappears.
Beta Was this translation helpful? Give feedback.
All reactions
-
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.
All reactions
-
Try to add /login after the port. Bug in current version.
Beta Was this translation helpful? Give feedback.
All reactions
-
👍 1
-
Try to add /login after the port. Bug in current version.
Thanks for letting me know. It works then. Is there an issue regarding this already? seems to not be fixed in new versions aswell.
Beta Was this translation helpful? Give feedback.
All reactions
-
so when is this fixed?
Beta Was this translation helpful? Give feedback.