OK so I remember having a hell of a time doing what you want. Make the dashboard the main site.
Dug through my notes and found what I did. First thing node-red dashboard will not load at / , you have to give it something like /ui or /default or /mycreativenamehere. but if you try to load directly to that url with nginx it will not work because node-red dash board thinks that its base url is that. its not a static site!! it will not work.
but you can forward to it using node-red.
import this
[{"id":"bc18e1d4.45a","type":"comment","z":"ead71706.78a54","name":"Redirect any request to root ip IE: http://X.X.X.X to /ui/","info":"","x":260,"y":120,"wires":[]},{"id":"9422a6eb.474208","type":"http response","z":"ead71706.78a54","name":"","statusCode":"","headers":{},"x":570,"y":160,"wires":[]},{"id":"b088c465.1f775","type":"function","z":"ead71706.78a54","name":"headders, paylod and status code","func":"\n//msg.payload = (was already sent)\n\nmsg.statusCode = \"303\";\n\nmsg.headers = {};\nmsg.headers['X-Robots-Tag'] = \"noindex\";\nmsg.headers['Location'] = \"/ui/\";\nmsg.headers['no-fs-server'] = \"true\";\n\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":160,"wires":[["9422a6eb.474208"]]},{"id":"871528d1.c6e48","type":"http in","z":"ead71706.78a54","name":"","url":"/","method":"get","upload":false,"swaggerDoc":"","x":110,"y":160,"wires":[["b088c465.1f775"]]}]
it will still show mysubdomain.mydomain.com/ui after it redirects but you can now goto the root url.
todo this you need to edit your settings.js file and enable the httpAdminRoot: '/admin', by removing the // in front of it.
httpAdminRoot: '/admin',
also I enable and edit the relative to httpRoot ui path to
ui: { path: "/ui" },
you can change the /ui to what ever you want but make sure you change the redirect to it as well.
I've got the test server I use spun up to test this all out fresh install off the howto guide i made. I'm sending you a msg with the login details if you want to play / break it and not yours first. It will stay up for your use until the next person needs it. Don't count on it always being there. Its been 2 months from the last guy I helped needed it. So it could be yours for a good while. note I make a export of all the nodes and save it to file if he ever wants his stuff he was warned about its use
note: don't know your skill level with servers but you can just type:
sudo systemctl restart nodered.service
after editing your settings.js file . you don't have to restart the server.