# One button upgrade in pallette?

**URL:** <https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103>\
**Category:** Feature Requests\
**Created:** [17 March 2019 21:22 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103 "2019-03-17T21:22:51Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![kenkoknz](https://avatars.discourse-cdn.com/v4/letter/k/58956e/32.png) [@kenkoknz](https://discourse.nodered.org/u/kenkoknz)\
**Post date:** [17 March 2019 21:22 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/1 "2019-03-17T21:22:51Z")

</div>

Hi,  
One of the key attraction of NR for me is the user friendliness, the GUI and making coding so much more easier and intuitive and fun. The pallete to install nodes is a game changer for me as I can confidently install nodes without having to worry that I may type something wrong in the script or installing the nodes in wrong directory (happened to me) and corrupt something.

We keep seeing posts about upgrade problems. **Is there a possibility to have a one button upgrade in the pallette in NR**. Understand there is an upgrade script, however, people could mistype, script could change etc. With an inbuilt update button, developers can control the upgrade process and eliminate another variable at the user end.  
Thanks,  
Ken

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [18 March 2019 08:58 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/2 "2019-03-18T08:58:57Z")

</div>

Do you mean a button to update Node-RED itself?

The problem is Node-RED doesn't know how it has been installed, so it doesn't know what commands to run in order to upgrade itself. For example, if its running in a docker container then an upgrade involves pulling a new docker image. If its a globally installed npm module, then an upgrade will require administrator/root privileges. Or it could be a locally installed npm module.

The only practical way of doing this would be to start packaging NR as a standalone installable application - with proper installers for each OS we want to run on. There are ways of doing that, but we simply don't have the resources to take on that amount of work.

---

<div class="post-metadata">

**Author:** ![wb666greene](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/wb666greene/32/6534_2.png) [@wb666greene](https://discourse.nodered.org/u/wb666greene)\
**Post date:** [18 March 2019 19:00 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/3 "2019-03-18T19:00:35Z")

</div>

Any possibility of making the install script add a node-red menu entry to re-run the script?

---

<div class="post-metadata">

**Author:** ![kenkoknz](https://avatars.discourse-cdn.com/v4/letter/k/58956e/32.png) [@kenkoknz](https://discourse.nodered.org/u/kenkoknz)\
**Post date:** [18 March 2019 22:37 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/4 "2019-03-18T22:37:03Z")

</div>

Hi @knolleary,  
Thanks for your explanation, in my naivety, I only considered my own simple NR install instance and did not consider the wider picture and thought that is just a matter of packaging some scripts with some decision algorithms as you did with the node installation. Indeed a standalone installable application will be ideal scenario.

However I understand there are resource limitations. As it is, I consider myself lucky to be able use NR and have support without incurring any financial costs. NR is a very practical visual programming platform, I have yet to find another that even come close to NR in terms of flexibility, functionality and simplicity.

From the "about NR" (and correct me if I misread), NR is developed and managed under the JS foundation with IBM as a founding member with yourself and Dave from IBM emerging technology heading a NR team. NR currently is community focused and we are enjoying using the product and update for free. In future as NR matures, will NR evolved into a commercial product?

Thanks,  
Ken

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [19 March 2019 01:18 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/5 "2019-03-19T01:18:20Z")

</div>

> [@kenkoknz](#):
>
> In future as NR matures, will NR evolved into a commercial product?

There are plenty of commercial products based on Node-RED I think. But as Node-RED itself has been donated to the JavaScript Foundation, I don't believe it ever could be or would be changed from open source.

---

<div class="post-metadata">

**Author:** ![SuperNinja](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/superninja/32/5761_2.png) [@SuperNinja](https://discourse.nodered.org/u/SuperNinja)\
**Post date:** [15 July 2020 13:22 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/6 "2020-07-15T13:22:38Z")

</div>

Sorry to unearth this topic but it is related to the last "share your project" i've posted :

> [@\[EDIT\] Displays if a new Node-Red update is available online, and update it from the Dashboard](https://discourse.nodered.org/t/displays-if-a-new-node-red-online-update-is-available/30061):
>
> This flow will search every 7 days if there is a new online version of Node-Red on [https://nodered.org/](https://nodered.org/). If that is the case, [EDIT] : In this new version : 1. Indicates whether a new online version is available. Click on it to start the update : [image] 2. A wheel that turns to make you wait : [image] 3. When the update is complete, you can select: either an automatic restart of NR or (by default) a popup which proposes if you want to restart (or not) in addition to indicating the time ta…

Is there a solution to run the

```auto
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

```

From NR to update?  
With an EXEC node, I tried "update-nodejs-and-nodered" and error 127 is displayed (invalid command)

I had heard that NR had to stop to update itself. This causes the script to stop, which updates it. Is this still the case now with v1.1.2? If yes, we have no solution to update NR directly from NR?

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [15 July 2020 17:00 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/7 "2020-07-15T17:00:36Z")

</div>

As long as you set the exec node to start its own shell, you can run things like this from Node-RED since the update is then in a separate shell to Node-RED itself and it doesn't matter if Node-RED then closes.

---

<div class="post-metadata">

**Author:** ![SuperNinja](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/superninja/32/5761_2.png) [@SuperNinja](https://discourse.nodered.org/u/SuperNinja)\
**Post date:** [15 July 2020 21:40 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/8 "2020-07-15T21:40:28Z")

</div>

Should I create a shell script outside NR? It will not be 100% "made in NR"?  
I admit to be incompetent when we leave Node-Red and we attack the shell script.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [16 July 2020 00:55 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/9 "2020-07-16T00:55:44Z")

</div>

Not if you can embody what you want into a single command, then that isn't necessary.

If I remember rightly (I might not as I'm rather tired), the straight exec node will create a shell and should do what you want.

[https://nodejs.org/docs/latest-v12.x/api/child\_process.html#child\_process\_child\_process\_exec\_command\_options\_callback](https://nodejs.org/docs/latest-v12.x/api/child_process.html#child_process_child_process_exec_command_options_callback)

---

<div class="post-metadata">

**Author:** ![SuperNinja](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/superninja/32/5761_2.png) [@SuperNinja](https://discourse.nodered.org/u/SuperNinja)\
**Post date:** [17 July 2020 13:32 UTC](https://discourse.nodered.org/t/one-button-upgrade-in-pallette/9103/10 "2020-07-17T13:32:57Z")

</div>

thanks for this track @TotallyInformation

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/b/cbb6ee186dd0052eb73b08867ed51c302eec2d93.png)  
wow, i'm like in front of Everest! It is not easy for a beginner to build a child\_process.  
Can anyone else help me?
