This project is a re-implementation of the o2r-platform using React.
The API endpoint and the base URL for sharing ERCs on other platforms must be configured in ui/public/config.js.
You can start all required o2r microservices (using latest images from Docker Hub) with just two commands using docker-compose (version 1.20.0+) and Docker (version 1.18.0+).
First, read the instructions on "Basics" and "Prerequisites" to prepare your host machine in the reference-implementation project.
This project contains one docker-compose configuration (file ui/docker-compose-dev.yml) to run all microservices & databases, and mount the client application directly from the source directory client.
If you see an error related to the MongoDB or HTTP request timeouts during the first "up", abort the execution, then try again.
The container for the development of the UI is built locally based on ui/Dockerfile.dev.
Only the directory /ui is mounted into the container, so if dependencies in ui/package.json change, you must update the container with
docker-compose --file docker-compose-dev.yml build --no-cache uiAlso note that the ui/node_modules directory is mounted so that your host's version of node best matches the one used in the Dockerfile.
cd ui/
docker-compose --file docker-compose-dev.yml upThe platform is available at http://localhost and the API at http://localhost/api.
This project has another docker-compose configuration for the deployment of a production build (file ui/docker-compose.yml).
This configuration has no ui container. Instead the webserver container creates a static production build with the command npm run build using a multi-stage docker file (file ui/Dockerfile) which is then served through nginx.
For this reason there is also another nginx configuration (file ui/dev/nginx.conf).
Because it shares a lot of the architecture with development configuration most of the endpoints are defined in a shared partial nginx configuration file (file ui/dev/nginx-share.conf).
To start the platform with the production build:
cd ui/
docker-compose up
# force rebuild of images
docker-compose up --buildIf you want to change the webserver container use:
docker-compose --file o2r-UI/ui/docker-compose.yml build --no-cache webserver- Click the "Log in" button in the UI
- Obtain the authentication token from the cookies
- Use it for requests outside of the UI, e.g. with curl as described in the API docs
If you want to run the UI based on locally running microservices, i.e., the o2r service runs no in containers but in Node.js processes locally on your machine, you can use a special docker-compose file, which uses an nginx configuration that does (a) not start database servers and (b) redirects all requests to the respective ports of the host IP (only works on Linux!):
docker-compose --file o2r-UI/ui/docker-compose-dev-local-microservices.yml upInstalling new packages
After you installed further packages from npm, you have to rebuild the container. The easiest way to do this are these two commands:
docker-compose down -v
docker-compose up --buildAfter the build the packages are available to use.
Attention! If apache is running, it may interfere with the nginx container. You may have to stop the apache service in order to run the platform successfully. See here for more information.
This repository contains two pieces of software, whose versions are managed in ui/bindings/package.json and ui/package.json respectively.
The major.minor versions must be kept in sync, .bugfix versions may differ.
cd ui/
npm install
cd bindings
npm installThe images are built on Docker Hub:
Tests run as GitHub actions and you can inspect them over here:
To run the test by yourself, complete the following steps:
- Run the platform
cd ui/docker-compose up
- Install all packages local
npm install
- Run all the test
npm test
You can debug the GithHub Actions. Collaborators can manually start the debug workflow and can connect via ssh to the host system on which the actual Action run. For further infromation read the debug docs