Deploy OpenEMS Backend to Docker
This chapter explains how OpenEMS Backend can be deployed using our official Docker image.
1. Prepare system
1.2. Check docker installation
admin@ubuntu:~$ docker --version
Docker version 27.3.1, build ce12230
if not already installed, follow Setup docker
1.3. Setup docker
To setup docker follow the instructions from docs.docker.com.
2. Start Container
2.1. Create a Docker compose
Paste content into a docker-compose.yml in a directory of your choice:
services:
openems_backend:
image: openems/backend:latest
container_name: openems_backend
hostname: openems_backend
restart: unless-stopped
volumes:
- openems-backend-conf:/var/opt/openems/config:rw
- openems-backend-data:/var/opt/openems/data:rw
ports:
- 8079:8079 # Apache-Felix
- 8081:8081 # Edge-Websocket
volumes:
openems-backend-conf:
openems-backend-data:
3. OpenEMS Backend UI
If you want to add the OpenEMS Backend UI to your setup, you can do so by adjusting your docker-compose.yml file to look like this:
services:
openems_backend:
image: openems/backend:latest
container_name: openems_backend
hostname: openems_backend
restart: unless-stopped
volumes:
- openems-backend-conf:/var/opt/openems/config:rw
- openems-backend-data:/var/opt/openems/data:rw
ports:
- 8079:8079 # Apache-Felix
- 8081:8081 # Edge-Websocket
- 8082:8082 # UI-Websocket
openems-ui:
image: openems/ui-backend:latest
container_name: openems_ui
hostname: openems_ui
restart: unless-stopped
volumes:
- openems-ui-conf:/etc/nginx:rw
- openems-ui-log:/var/log/nginx:rw
environment:
- WEBSOCKET_HOST=openems_backend
- WEBSOCKET_PORT=8082
ports:
- 80:80
- 443:443
volumes:
openems-backend-conf:
openems-backend-data:
openems-ui-conf:
openems-ui-log:
summary of the changes:
-
Open a Port for UI Websocket (8082) on the
openems-backendservice -
Added a new service
openems-uito the docker-compose file -
Added the volumes
openems-ui-confandopenems-ui-log
4. Add InfluxDB Container
4.1. Update docker-compose
to add InfluxDB to your setup, you can do so by adjusting your docker-compose.yml, by adding the following lines:
…
openems_influxdb:
image: influxdb:alpine
container_name: openems_influxdb
hostname: openems_influxdb
restart: unless-stopped
volumes:
- openems-influxdb:/var/lib/influxdb2:rw
ports:
- 8086:8086
volumes:
…
openems-influxdb:
4.2. Setup InfluxDB
4.2.1. Setup InfluxDB
docker exec openems_influxdb influx setup \
--username openems \
--password WKeuIhl0deIJjrjoY62M \
--org openems.io \
--bucket openems \
--force
docker exec openems_influxdb influx auth list
| Note down Token |