Difference in dev Environments on port 9081 and 3000

In the localhost:9081 this is how my dashboard is looking like(which is how it’s supposed be looking like as of now as many are encountering the same issue).


and in the localhost:3000 this is how my dashboard is looking like

how am i supposed to fix this?

Note: i am using docker for running the meshery server on 9081 and for 3000 i am using make ui command.

Hi @Divyansh_Khatri! The reason for the issue is that Meshery can be started with different entry points: one using mesheryctl and the other with the make command. Currently, the Docker deployment on localhost:9081 is running, which may be causing a conflict.

To resolve this, you can stop the Docker deployment by running mesheryctl system stop. After that, switch to using the make command for local development, especially if you’re working on UI or server-related issues.

Here’s a quick breakdown of the ports:

  • Port 3000 serves the UI only.
  • Port 9081 serves both the UI and the server.

For mesheryctl development specifically, it’s best to run make directly. More details are available in the documentation if you’d like to explore further.

I see so does that mean if I want to run the meshery server and I am working in the UI part
I first need to run the make ui-setup command to install dependencies and then make ui-build to export the build file and then make sever(or to combine the build and starting the server we use make ui-server) command to start the server and after all this the make ui command to start the UI dev environment??
So that means I cannot run the docker command mesheryctl system start to start the meshery server and then the make ui command to start the dev environment as it conflicts in some way am I understanding correctly @Yash_Sharma ??

Also I want to one more thing if I want to use only docker .So how can I work in the UI using only docker because as you said make commands create conflicts??

You’ve got the gist of it, @Divyansh_Khatri! Let me clarify a few points to make sure everything’s crystal clear.

If you’re focused on UI development, the general workflow involves:

  1. Install dependencies: make ui-setup
  2. Build the UI: make ui-build (to generate the build files)
  3. Start the server and UI together: Use make ui-server to combine building and running the server in one step, or you can run make server separately after building the UI.
  4. Start the UI dev environment: Finally, run make ui to begin the UI dev environment.

This workflow is ideal if you’re developing and testing changes on the Meshery server and UI locally without Docker.

However, you can still use mesheryctl with Docker if needed. Running mesheryctl system start will start Meshery using Docker containers. From here:

  • You can still start the UI dev environment with make ui, which will not cause a conflict. This is because the dev environment for UI is separate from the containerized server environment.
  • If you’re doing cluster-related tasks, running Meshery in Docker via mesheryctl system start is effective, as it provides an easy way to interact with clusters.

So yes, you can work on the UI dev environment while using Docker (mesheryctl system start) without conflicts. Docker provides the server instance, and the make ui command only runs the dev environment for the UI, which connects to the server instance. This allows you flexibility depending on your development needs.

But Yash that’s what exactly i was doing in the docker in the first place i first ran the docker container using the mesheryctl system start command and then i used the make ui command to run the ui dev env and that’s how i got those differnet dev environment on port 9081 and port 3000.

First, stop both Docker and Kubernetes to free up port 9081. Next, use the make commands to build the UI and server. This will launch Meshery on localhost:9081. Once Meshery is running, you can start Docker Desktop, which will enable Meshery to automatically detect the Kubernetes cluster.

I see thank you for the help @Yash_Sharma.

1 Like