Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Dashy V3 - Upcoming Changes in your Setup #1529

Discussion options

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 :)

You must be logged in to vote

Replies: 7 comments 8 replies

Comment options

Lissy93
Apr 20, 2024
Maintainer Author

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 :)

You must be logged in to vote
0 replies
Comment options

Lissy93
Apr 20, 2024
Maintainer Author

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.

You must be logged in to vote
0 replies
Comment options

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.

You must be logged in to vote
0 replies
Comment options

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 !

You must be logged in to vote
0 replies
Comment options

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. 😭

You must be logged in to vote
1 reply
Comment options

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.

Comment options

Minor issue but has anyone else's favicon disappeared with this version?

You must be logged in to vote
4 replies
Comment options

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.

Comment options

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.

image

Comment options

Just to eliminate it as a source I removed authentication and then completely cleared my cache and restarted my browser again. No change.

Comment options

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.

Comment options

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.

You must be logged in to vote
3 replies
Comment options

Try to add /login after the port. Bug in current version.

Comment options

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.

Comment options

so when is this fixed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

AltStyle によって変換されたページ (->オリジナル) /