An open API service indexing awesome lists of open source software.

https://github.com/engineering-research-and-development/open-innovation-platform

Open Innovation Platform created within the PIONEER HORIZON-CL4-2022-RESILIENCE-01 project funded by the European Commission (Grant 101091449 )
https://github.com/engineering-research-and-development/open-innovation-platform

Last synced: 3 months ago
JSON representation

Open Innovation Platform created within the PIONEER HORIZON-CL4-2022-RESILIENCE-01 project funded by the European Commission (Grant 101091449 )

Awesome Lists containing this project

README

        

Open Innovation Platform

Pioneer Project logo

https://www.pioneer-project.eu/


Open Innovation Platform for optimising production systems by combining product development, virtual engineering workflows and production data.

![Open Innovation Platform Schema](./docs/images/OIP-Schema.png "Open Innovation Platform Schema")

Requirements



  • Docker Engine

  • Minimum 8GB RAM

  • Docker Compose >= 2.27.1

  • OpenSSL >=3.4.0

How to run


Preliminary information


The repository comes with different services available depending on the use-case needs. The first option is to run the overall platform by running
docker compose up --build -d.

As alternative, services in the OIP are grouped in profiles as showed below. Just run the profiles needed for the use-case.


Profile
Services
Mandatory


oip-core
Orion, Draco, MinIO, MongoDB, PostgreSQL, Mosquitto
YES


oip-sec
Keycloak, API Gateway (Traefik), OAuth2-Proxy
NO


oip-connector-json
IoT Agent JSON, IoT Agent UI
NO


oip-connector-opcua
IoT Agent OPC UA, IoT Agent UI
NO


oip-connector-aas
IoT Agent AAS, IoT Agent UI
NO


oip-connector-aas-proxy
IoT Agent AAS Proxy
NO


oip-visualization
Grafana
NO

First of all you need to configure you first level domain in all config files (search for "pioneer-project.eu" and replace with your own).

In order to use HTTPS, you need to generate SSL certificates using the provided script `generate_ssl_certificates.sh` or use your own certificates. Certificates must be copied into `config/traefik/certs` folder named `fullchain.pem` and `privkey.pem`. To use HTTPS, the profile `oip-sec` is mandatory.

For a local deployment you need to map subdomains into the `hosts` file of your machine, like this:

```
127.0.0.1 oauth2-proxy.pioneer-project.eu
127.0.0.1 keycloak.pioneer-project.eu
127.0.0.1 draco.pioneer-project.eu
127.0.0.1 orion.pioneer-project.eu
127.0.0.1 minio.pioneer-project.eu
127.0.0.1 grafana.pioneer-project.eu
127.0.0.1 iotagent-ui.pioneer-project.eu
```

Using the `oip-sec` all the user interfaces and APIs are protected using oauth2-proxy and keycloak; configure keycloak as you prefer to manage the users.

How to build & run

1. Replace `pioneer-project.eu` in the whole project with your own domain.
2. Generate certificates by running `./generate_ssl_certificates.sh yourdomain.com` (Linux) or `.\generate_ssl_certificates.ps1 yourdomain.com` (Windows) or provide yours as explained in the previous paragraph.
3. Run you preferred profiles by the provided script: `./start.sh `. For example `./start.sh oip-core oip-sec oip-visualization`

Access the UIs

1. Draco at https://draco.pioneer-project.eu
2. IotAgent UI at https://iotagent-ui.pioneer-project.eu
3. Keycloak at https://keycloak.pioneer-project.eu
4. Grafana at https://grafana.pioneer-project.eu
5. MinIO Console at https://minio.pioneer-project.eu

Default credentials for each UI are listed below:

Application
User
Password

Draco
admin
ctsBtRBKHRAx69EqUghvvgEvjnaLjFEB

IotAgent UI
admin
admin

Keycloak
admin
admin

Grafana
admin
admin

MinIO Console
minioadmin
minioadmin

Configuration


All the services into the OIP can be configured by editing files into the "conf" folder from the root of the project.

Draco


The component provides data flows based on Rest HTTP or MQTT.

In Draco you can configure your own data flow (see NiFi doc here), by accessing the UI.
Inside the template pre-loaded on Draco you can activate the flows you prefer to use and can configure each Draco processor following the notes on the UI.
Draco will start with pre-uploaded [OpenInnovationPlatform](conf/draco/templates/OpenInnovationPlatform.xml) template.

IotAgent UI


The component provide user-friendly interface to configure and handle IoT Agents.

Keycloak


The component provides Identity & Access Management functionalities.
Every role, user, client, etc. can be configured by the dedicated user interface.

The repository provides some pre-configured [realms](conf/keycloak/realms) and [clients](conf/keycloak/clients) that are imported in Keycloak at the first startup.

Grafana


The component provides visualization functionalities and allows to build dashboards. It can be configured directly within the provided user interface.

MinIO Console


The component provides obejct storage functionalities.
It comes up with a pre-configured environment [file](conf/minio/minio.env).