# Multiple Dashboards on one Node-Red-Instance?

**URL:** <https://discourse.nodered.org/t/multiple-dashboards-on-one-node-red-instance/21071>\
**Category:** Dashboard\
**Created:** [31 January 2020 08:49 UTC](https://discourse.nodered.org/t/multiple-dashboards-on-one-node-red-instance/21071 "2020-01-31T08:49:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Golonder](https://avatars.discourse-cdn.com/v4/letter/g/eada6e/32.png) [@Golonder](https://discourse.nodered.org/u/Golonder)\
**Post date:** [31 January 2020 08:49 UTC](https://discourse.nodered.org/t/multiple-dashboards-on-one-node-red-instance/21071/1 "2020-01-31T08:49:15Z")

</div>

Hi,

is there already a solution / fork for having more than one UI for different users ?

I would like to run one Node-Run Instance and push values to different independent UIs that are not aware of each other.

I think of individual UI-Links like:

servername:1880\ui\_XZH7U  
servername:1880\ui\_AB5Z1  
servername:1880\ui\_BB77i

Can this be realized in any way ?

BR  
G

---

<div class="post-metadata">

**Author:** ![shrickus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/shrickus/32/517_2.png) [@shrickus](https://discourse.nodered.org/u/shrickus)\
**Post date:** [31 January 2020 21:02 UTC](https://discourse.nodered.org/t/multiple-dashboards-on-one-node-red-instance/21071/2 "2020-01-31T21:02:15Z")

</div>

> [@Golonder](#):
>
> I think of individual UI-Links like:
> 
> servername:1880\ui\_XZH7U  
> servername:1880\ui\_AB5Z1  
> servername:1880\ui\_BB77i

As you have probably discovered, there is only 1 runtime set of flows that is shared by all UI elements and users that are accessing this node-red instance. So the dashboard does not provide a different context for each user. If you need a common set of runtime logic with different dashboards, you probably have to roll your own using the UI Builder nodes.

If you really need different _runtimes_ (i.e. independent flow logic) you can run multiple node-red instances on different ports -- so the urls could be set up like this:

```auto
servername:18801/ui
servername:18802/ui
servername:18803/ui

```

which is not an easy mapping for humans to remember... So in that case, I would install an nginx reverse proxy on the standard `servername:80` port, with mappings from the url root path to each port, such as:

```auto
servername/XZH7U/ui
servername/AB5Z1/ui
servername/BB77i/ui

```

using a series of server location mappings in the `nginx.conf` file:

```auto
    server {
        listen 80 default_server;

        location /XZH7U/ {
            proxy_pass http://localhost:18801/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
        }
        location /AB5Z1/ {
            proxy_pass http://localhost:18802/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
        }
        location /BB77i/ {
            proxy_pass http://localhost:18803/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
        }

        location / {
            proxy_pass http://localhost:1880/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

```

That last entry is the default Node-RED admin server running on the standard port, which you may or may not need.

---

<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:** [3 February 2020 20:31 UTC](https://discourse.nodered.org/t/multiple-dashboards-on-one-node-red-instance/21071/3 "2020-02-03T20:31:34Z")

</div>

> [@Golonder](#):
>
> I would like to run one Node-Run Instance and push values to different independent UIs that are not aware of each other.

As Steve has mentioned, the only way currently to do this with Node-RED is to use the node-red-contrib-uibuilder node which lets you build pretty much any front-end UI and lets you have as many instances of the node. Each instance gets its own configuration, effectively its own web service and matching websocket connection. Front-end libraries are shared between instances but your custom code is independent (though there is also a mechanism for common code as well).

Of course, you don't get all the nice hand-holding that the Dashboard gives you. But on the other hand, you get to write whatever UI you like with whatever framework you like (or no framework at all if you prefer).

uibuilder comes with VueJS and bootstrap-vue (and hence bootstrap) by default which actually lets you build really nice UI's with minimal effort and coding. VueJS is the fastest growing framework and has great community support of its own. But swap it for REACT, Angular, jQuery, or anything else you like.

---

<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:** [4 March 2020 20:31 UTC](https://discourse.nodered.org/t/multiple-dashboards-on-one-node-red-instance/21071/4 "2020-03-04T20:31:35Z")

</div>

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