# How to launch prebuilt OpenEMS UI?

**URL:** <https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819>\
**Category:** English Forum\
**Created:** [April 21, 2026, 8:05pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819 "2026-04-21T20:05:20Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![mzenker](https://community.openems.io/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@mzenker](https://community.openems.io/u/mzenker)\
**Post date:** [April 21, 2026, 8:05pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/1 "2026-04-21T20:05:21Z")

</div>

Hi there,

I am new to OpenEMS and would like to try the simulated test system as described in the Getting Started guide on a Laptop running Debian Linux. I have installed Java 21, started Edge and configured following the guide, including the websocket server on port 8085. Now I am stuck at the section “3. Run OpenEMS UI”. I have downloaded openems-ui.tar.xz from [here](https://github.com/OpenEMS/openems/releases/) and extracted it. But how do I start the UI? This is not described in the guide. It only says:

1. Make sure OpenEMS Edge is running locally and the websocket is running on port `8085`.
2. Open the UI URL
3. You should see OpenEMS UI.

It does not say what the URL is or what else I have to do to run the UI. Apparently I am missing something. localhost:4200 says “connection failed”. In some forum posts it says that a webserver is needed - additionally to the webserver run by Edge? Also the information I found is related to building the UI using VSCode. As I am not planning to develop on the UI, I would like to use the prebuilt version.

I would be grateful for the information missing in the Getting Started Guide, or a hint where I can find it. If need be I do volunteer to make a PR to improve the Getting Started guide section.

Thank you!

Matthias

---

<div class="post-metadata">

**Author:** ![S1m0n](https://community.openems.io/letter_avatar_proxy/v4/letter/s/5f8ce5/32.png) [@S1m0n](https://community.openems.io/u/S1m0n)\
**Post date:** [April 22, 2026, 8:49pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/2 "2026-04-22T20:49:04Z")

</div>

Dear Matthias

Would it be an option for you, to run the UI in a docker? (Thats what I do, when testing on my Raspberry Pi). You could look here: [Deploy the UI with Docker :: Open Energy Management System](https://openems.github.io/openems.io/openems/latest/ui/deploy.html). There you can see in the docker-compose.yml that the container is listening on port 4200. This should allow to reach the ui with a browser on “url:4200”.

Or if you like, I am also happy to share my docker-compose.yml.

BR, Simon

---

<div class="post-metadata">

**Author:** ![ostkamp](https://community.openems.io/letter_avatar_proxy/v4/letter/o/df788c/32.png) [@ostkamp](https://community.openems.io/u/ostkamp)\
**Post date:** [April 23, 2026, 9:44am UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/3 "2026-04-23T09:44:22Z")

</div>

Hi Matthias,

I would also recommend the docker way outlined by S1m0n. It is very easy to use.

I recommend to install the original docker instead of using some stuff provided by the distribution.  
Unfortunately this forum refuses to let me post a link to the page describing it. You can easily find it if you do a Google search with keywords “Docker install debian”

---

<div class="post-metadata">

**Author:** ![mzenker](https://community.openems.io/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@mzenker](https://community.openems.io/u/mzenker)\
**Post date:** [April 23, 2026, 10:04pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/4 "2026-04-23T22:04:49Z")

</div>

Hi,

thank you S1m0n and ostkamp for your replies.

To be honest, I have never worked with docker and do not really see why I should add a level of complexity here.

In the meantime, I have managed to get OpenEMS working on my Debian laptop using the prebuilt packages for Edge and UI. I found the missing information in the (german) forum, especially in [UI am Raspberry konfigurieren - #3 by windpower](https://community.openems.io/t/ui-am-raspberry-konfigurieren/72/3) . So from my point of view the additional steps not mentioned in section 3 of the Getting Started guide (for Linux) are:

- Go to [Releases · OpenEMS/openems · GitHub](https://github.com/OpenEMS/openems/releases/) and download the latest openems-ui.tar.xz

- Extract it to a local directory on your local machine (e.g. /home/user/openems/openems-ui)

- To run the UI, you need a web server. In the following, nginx is assumed, but another webserver (e.g. Apache) may also be used.

- Install nginx

- Create a file /etc/nginx/conf.d/openems\_nginx.conf with the following contents:

> `server {`  
> ` listen 4200;`  
> ` server_name openems;`
> 
> ` # OpenEMS Web-Interface`  
> ` location / {`  
> ` root /home/user/openems/openems-ui;`  
> ` index index.html index.htm;`
> 
> ` error_page 404 300 /index.html;`  
> ` }`
> 
> `}`

- Start nginx
- Open localhost:4200 in a browser. You can also open 192.168.xx.yy:4200 from a remote machine, where 192.168.xx.yy is the IP address of the machine running OpenEMS.

To get the UI to run, I needed the following additional steps:

- If there are error messages saying that port 80 is already used (this was the case on my machine as Apache was installed by default): Remove /etc/nginx/sites-enabled/default. This is a link to /etc/nginx/sites-available/default where port 80 is configured to be used.
- If the browser shows “403 forbidden”, this may be due to missing permissions. All directories on the path to the openems-ui need to have read and execute permissions. You can check this with the command `namei -l /home/user/openems/openems-ui.`For example, /home/user might have “rwx” permissions only for user. In that case, the command chmod a+rx /home/user changes the permissions, so that nginx can run openems-ui.
- The Controller API Websocket port needs to be set to 8075 (instead of 8085) as the prebuilt version of the UI seems to be compiled for this port, see [Ui bauen und installieren - #4 by stefan.feilmeier](https://community.openems.io/t/ui-bauen-und-installieren/1351/4) .

I hope this information helps someone. Question to the OpenEMS team: Do you want me to add it to the Getting Started guide with a pull request?

Matthias

---

<div class="post-metadata">

**Author:** ![sjjh](https://community.openems.io/user_avatar/community.openems.io/sjjh/32/2296_2.png) [@sjjh](https://community.openems.io/u/sjjh)\
**Post date:** [April 25, 2026, 4:12pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/5 "2026-04-25T16:12:15Z")

</div>

> [@mzenker](#):
>
> Question to the OpenEMS team: Do you want me to add it to the Getting Started guide with a pull request?

Not being part of the OpenEMS team, but please create a PR.

---

<div class="post-metadata">

**Author:** ![mzenker](https://community.openems.io/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@mzenker](https://community.openems.io/u/mzenker)\
**Post date:** [April 28, 2026, 9:54pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/6 "2026-04-28T21:54:12Z")

</div>

I would love to, but I did not manage to do so. I cloned the OpenEMS repo and added my stuff to the documentation. Then I created a new branch using the git extension of VSCodium and committed my changes. When I tried to push to origin, I get an error message saying that I do not have permissions to push to OpenEMS/openems. What do I do wrong?

---

<div class="post-metadata">

**Author:** ![sjjh](https://community.openems.io/user_avatar/community.openems.io/sjjh/32/2296_2.png) [@sjjh](https://community.openems.io/u/sjjh)\
**Post date:** [April 28, 2026, 10:12pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/7 "2026-04-28T22:12:09Z")

</div>

Please do not try to push directly to the repository, but create a [pull request (PR)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).

---

<div class="post-metadata">

**Author:** ![mzenker](https://community.openems.io/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@mzenker](https://community.openems.io/u/mzenker)\
**Post date:** [April 28, 2026, 11:07pm UTC](https://community.openems.io/t/how-to-launch-prebuilt-openems-ui/10819/8 "2026-04-28T23:07:17Z")

</div>

That is what I intended to do, so I created a local branch and committed there. But to make a PR, I thought I needed to push the branch to the OpenEMS repo, which I don’t have permission to do. Then from a [link](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) on the page you indicated, I learned that I can create a fork on my own GitHub space and make the PR from there. So I did that, it can be found [here](https://github.com/OpenEMS/openems/pull/3702). Now it needs review, but I don’t manage to request a review from there, maybe also due to insufficient permissions. So if someone with appropriate permissions is reading this, please feel free to look at it. 🙂
