# 5Minds Engine

Die 5Minds Engine ist eine Stand-alone Anwendung, die für das Ausführen der mit dem [Studio](https://github.com/5minds/ProcessCube.Studio) modellierten Prozesse zuständig ist.

Sie kann entweder als globales NPM Paket, oder als Docker Container verwendet werden.

Ausführliche Anwendungsbeispiele finden sich [in den Code Docs](./docs/examples/).

## Voraussetzungen

- Minimal benötigte NodeJS Version: >= `v16.13.x`
- Empfohlene NodeJS Version: >= `v18.15.x`
- Auf Windows Systemen: Die [Windows Build Tools](https://www.npmjs.com/package/windows-build-tools)
- Eine laufende Authority
  - Die Engine verwendet diese Authority zur Benutzerauthentifizierung
- Derzeit unterstützte DBMS sind:
  - MS SQL Server
  - PostgreSQL
  - SQLite

Falls PostgreSQL oder MS SQL Server als Datenbank verwendet werden, muss eine entsprechende Instanz erreichbar sein.

## Schnellstart mit NPM

Installation:

```bash
npm install -g @5minds/processcube_engine
```

Starten:

```bash
processcube-engine
```

Die Engine ist nun unter `http://localhost:10560` erreichbar.

Über den Browser ist auf diesem Wege eine vollumfängliche Dokumentation der Engine API verfügbar.

**Hinweis:**
Falls der Befehl `processcube-engine` unter Windows nicht funktioniert, bitte sicherstellen, dass `PATH` korrekt gesetzt wurde.
Auch muss die Command Shell mit Administratorrechten gestartet werden.

## Schnellstart mit Docker

Ein Docker Image ist auf [Dockerhub](https://hub.docker.com/repository/docker/5minds/processcube_engine) verfügbar.

Zum schnellen Starten eines Containers kann folgender Befehl genutzt werden:

```shell
docker run -p 10560:80 5minds/processcube_engine
```

Sollte das Image noch nicht lokal vorhanden sein, wird es vorher heruntergeladen.

Weitere Infos zur Verwendung mit Docker:

- [Installationsanleitung](./docs/installation.mdx)
- [Erste Schritte](./docs/quickstart.mdx)

## Konfiguration

Standardmäßig nutzt die Engine die [interne SQLite Konfiguration](./configs/sqlite.json).

Eine eigene Konfigurationsdatei kann mit der Umgebungsvariable `CONFIG_PATH` gesetzt werden.

Beispiel:

```bash
CONFIG_PATH=/<path_to_configfile>/<filename>.json processcube-engine
```

Eine ausführliche Anleitung findet sich in unserer [Konfigurationsanleitung](./docs/configuration.mdx).

Auch ist ein Set an [Beispielkonfigurationen verfügbar](./configs/).

## Arbeitsverzeichnis

Die Engine speichert ihre lokalen Dateien in folgendem Verzeichnis:

| Platform | Folder Path                               |
| -------- | ----------------------------------------- |
| macOS    | `/Users/<Username>/.processcube/engine`   |
| Linux    | `/home/<Username>/.processcube/engine`    |
| Windows  | `c:\Users\<Username>\.processcube\engine` |

Die per Default verwendete SQLite Datenbank befindet sich an diesem Ort.

## Beispiele und Dokumentation

Ausführliche Beispiele und Dokumentationen finden sich auf [processcube.io](https://processcube.io)

## Ansprechpartner

1. [Christian Werner](mailto:christian.werner@5minds.de)
1. [Sebastian Griesa](mailto:sebastian.griesa@5minds.de)
