like the @Calinou suggested, thats the best approach unless you building something big like star citizen. I would make the server side a separate node and based on launch arguments run either game or the server thingie. From my limited experience godot handles all the heavy lifting, using highlevel multiplayer you can pretty much relax about object syncing and stuff like that. Add few nodes, mark few properties for multiplayer sync and it works like magic.
P.s. im working on server browser in godot multiplayer.. so this is something im interested too. The idea that i got is and from my tests with godot engine (not diving into source code) for something like server browser to work in godot, hoster needs to open atleast 2 ports for public, one would be game port and other query port to send data about the game server to clients that query the server list in server browser. With that said you need also another server/service that keeps a list with all the hosted games, and serve this list to players that query server browser. When player/client gets that master list, he query each IP and retrieve server game datas and displays that on the browser.
I have written the masterlist server in godot, that can be run separately, and now im working on the browser and simple host game example.. I have started on this quest month or more ago.. It takes so long because i got like only few hours to work on this on my work days, and almost no time on weekends. Once im comfortable ill post repo/project.
P.p's
You can ofc do this thing using http and web server, i think there was a tutorial for this on youtube already, but i wanted to do this all in godot using godot, gdscript 🙂 so that everything is written in one language using same engine 🙂. And its a fun project. Cant wait to get to the real game development 😃