# Need advice about node-red multiple user instances

**URL:** <https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313>\
**Category:** General\
**Created:** [9 March 2021 08:13 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313 "2021-03-09T08:13:54Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![sfedo](https://avatars.discourse-cdn.com/v4/letter/s/3da27b/32.png) [@sfedo](https://discourse.nodered.org/u/sfedo)\
**Post date:** [9 March 2021 08:13 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/1 "2021-03-09T08:13:55Z")

</div>

Hello everyone,  
I'm about to build a dashboard for multiple users, lets say an admin dashboard, where you can access each tab and get the most information and control, and an user dashboard where you have only the view of 1 tab with minimum control. In addition I would like to secure both dashboards, so only admins with an admin pw can access the admin dashboard.

As I noticed there is no way to to so with the "classic" nr dashboard, because it doestn support multiple user instances. Now is my question: what is the best way to go?

I've read that its possible to run node red as multiple instance with different port with its own settings and so on. That could be a possible way. And maybe the quickest one.

And I read that the ui\_builder is qualified for those purpose, is it right? So for example I can use the classic dashboard for admins with admin authentification and build another dashboard with ui\_builder and secure it with user authentification. Over the long run I will use ui\_builder anyways, because I like to design stuff and classic dashboard is limited for this purpose.

Is there a third possibility that I'm missing? What would you recomend for my requirement?

Thank you!

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [9 March 2021 09:41 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/2 "2021-03-09T09:41:51Z")

</div>

If you use ui\_builder you can create whatever (multi user) web page you want without multiple instances (though the backend will be shared)

you can even have multiple ui\_builder instances serve pages/spas from one node-red server.

---

<div class="post-metadata">

**Author:** ![sfedo](https://avatars.discourse-cdn.com/v4/letter/s/3da27b/32.png) [@sfedo](https://discourse.nodered.org/u/sfedo)\
**Post date:** [9 March 2021 10:00 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/3 "2021-03-09T10:00:19Z")

</div>

so you would say ui builder is the way to go?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [9 March 2021 11:27 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/4 "2021-03-09T11:27:41Z")

</div>

Nobody can say whether that is the way to go for you. From what you have said it appears to be a viable solution and you have said that would like to design stuff yourself. There are other solutions though so you have to look at them and decide which fits your experience and desired outcome best.

---

<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:** [9 March 2021 13:20 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/5 "2021-03-09T13:20:46Z")

</div>

It is A way to go. Another alternative would be multiple instances of Node-RED.

Partly depends how different flows for each user might be and who would be maintaining them.

With uibuilder, you get the ability to do anything you want against a single back-end Node-RED instance (of course you can have multiple back-ends too if you really want). So if your flows are common but you want to differentiate the front-end - uibuilder will let you build it.

Note that uibuilder v3 does have some early code for authentication and authorisation built in but it isn't currently well tested and almost certainly not complete. Though you should probably try it anyway and let me know how you get on. I've struggled to find the time to finish that part off but if you had specific feedback, that might help.

But even without that, you can still build something that will work.

---

<div class="post-metadata">

**Author:** ![sfedo](https://avatars.discourse-cdn.com/v4/letter/s/3da27b/32.png) [@sfedo](https://discourse.nodered.org/u/sfedo)\
**Post date:** [9 March 2021 15:47 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/6 "2021-03-09T15:47:51Z")

</div>

Thats actually the thing, I have actually the same flows and just want to use different dashboards as explained before. Atm I work with different links on dashboard, that hide and show tabs in the menu, based on wich tab is open first. But the user can just change the url and get access to admin view. And that is what I dont want.  
So I thing I will go the ui builder way, I have some basic know how bout css and html, so only need to learn how to work with framework and get control over the ui with payloads.  
Btw @TotallyInformation you wrote a post here in forum about svelte framework. Will it be the new standard for ui\_builder or am I better to work with vue.js and bootstrap?

---

<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:** [9 March 2021 20:52 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/7 "2021-03-09T20:52:53Z")

</div>

> [@sfedo](#):
>
> how to work with framework

You can work with any framework with uibuilder, that is one of its features.

Vue is included for convenience and to get you going, I chose it because it requires minimal boilerplate code, doesn't need to have a build step and produces good results with a relatively light-weight codebase. It is also one of the fastest growing frameworks. But by all means use something different if it suites you.

> [@sfedo](#):
>
> svelte framework. Will it be the new standard for ui\_builder

I'm really impressed with Svelte but it won't be a new standard for uibuilder because the only way to use it is with a build step and that is off-putting for beginners. However, I've shown that you can easily use it should you want to and shared how to do it. I rather expect that, now I have a better way for sharing templates, I will make a template for Svelte in a future release.

At present, handling a build step with uibuilder still requires you to drop to the command line to run the build. That is inconvenient for many and confusing for others. As you may see from the docs, I plan to make that much easier in the future by leaning on more npm features so that having a script called `build` specified in a package.json file in the uibuilder node's root folder (`~.node-red/uibuilder/<url>`) will automatically surface a build button in the Editor. Templates already now have package.json files included so we are part-way there already.

So choose a framework you are comfortable with, VueJS will certainly remain the default for the foreseeable future so feel free to use that, it is a good framework.

As for bootstrap, bootstrap-vue is included because with it, you can produce really decent looking UI's with very little boilerplate and no messing with CSS. So again, great for beginners and experts alike. But there are plenty of alternatives if you prefer Material Design or some other CSS framework instead.

* * *

Oh, and by the way, it is "uibuilder". Not "ui\_builder", "UiBuilder", "UI Builder", ... All one word, all lower-case. Abbreviated to "uib". 🤣

---

<div class="post-metadata">

**Author:** ![janvda](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/janvda/32/234_2.png) [@janvda](https://discourse.nodered.org/u/janvda)\
**Post date:** [10 March 2021 07:35 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/8 "2021-03-10T07:35:30Z")

</div>

You also have [node-red-contrib-mdashboard](https://flows.nodered.org/node/node-red-contrib-mdashboard)

It is even working in combination with the standard dashboard.

regarding security. I don't know if you can specify different authentification for mdashboard compared to regular dashboard.

---

<div class="post-metadata">

**Author:** ![sfedo](https://avatars.discourse-cdn.com/v4/letter/s/3da27b/32.png) [@sfedo](https://discourse.nodered.org/u/sfedo)\
**Post date:** [10 March 2021 14:36 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/9 "2021-03-10T14:36:18Z")

</div>

thanks! didnt know there is another dashboard besides the original one. But seems like I'm not able to use contrib made ui nodes inside the mdashboard. I would like to use @hotNipi artless gauge there. Maybe it is possible threw ui template?

---

<div class="post-metadata">

**Author:** ![janvda](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/janvda/32/234_2.png) [@janvda](https://discourse.nodered.org/u/janvda)\
**Post date:** [10 March 2021 15:00 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/10 "2021-03-10T15:00:57Z")

</div>

> [@sfedo](#):
>
> But seems like I'm not able to use contrib made ui nodes inside the mdashboard.

yes, that is a limitation of mdashboard. I guess for that someone needs to port these contrib ui nodes to mdashboard as well.

---

<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:** [10 March 2021 16:31 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/11 "2021-03-10T16:31:02Z")

</div>

Or take the code from artless gauge and simply reproduce it in your own front-end code using uibuilder 😁 Or persuade @hotNipi to produce a VueJS component version of his lovely gauge 🤣

---

<div class="post-metadata">

**Author:** ![hotNipi](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hotnipi/32/383_2.png) [@hotNipi](https://discourse.nodered.org/u/hotNipi)\
**Post date:** [10 March 2021 16:44 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/12 "2021-03-10T16:44:59Z")

</div>

If I ever should have a need to extract only reasonable and necessary part of code from artless-gauge to make it working in one and only condition - I'd start from scratch. The "support this and that case" code is largely predominant. 😃

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [9 May 2021 16:45 UTC](https://discourse.nodered.org/t/need-advice-about-node-red-multiple-user-instances/42313/13 "2021-05-09T16:45:36Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
