Skip to content

Commit 13f38b3

Browse files
committed
test updating docs
1 parent 895fdf0 commit 13f38b3

7 files changed

Lines changed: 310 additions & 303 deletions

File tree

docs/CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
openflow.openiap.io

docs/README.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,35 @@
11
# OpenFlow
22

3-
OpenFlow is basically a couple of [NodeRED](https://nodered.org/) installation and an API on top of a [MongoDB](https://www.mongodb.com/) instance, using [RabbitMQ](https://www.rabbitmq.com/) for scalability. It is designed to supplement digitalization strategies by giving an easy to use, highly scalable and secure platform that supports human workflows, automation of IT systems and things (Internet of things or classical production systems like SCADA/PLC). IT also functions as the dashboard and enabler of enterprise functionality of [OpenRPA](https://github.com/open-rpa/openrpa)
3+
OpenFlow is basically a couple of [NodeRED](https://nodered.org/) installations and an API on top of a [MongoDB](https://www.mongodb.com/) instance, using [RabbitMQ](https://www.rabbitmq.com/) for scalability. It is designed to supplement digitalization strategies by giving an easy to use, highly scalable and secure platform that supports human workflows, automation of IT systems and things (both Internet of things and Industri Internet of things/Industri 4.0 ). It also functions as the dashboard and enabler of enterprise features for [OpenRPA](https://github.com/open-rpa/openrpa)
44

5+
If in doubt, always use docker
6+
For prodcution envoriment we recommend moving to kubernetes
7+
8+
#### Quick start using docker
59
Installing using [docker-compose](dockercompose)
610

11+
#### Examples and a few guides
12+
713
Working with [versioning](versioning)
814

915
Creating your first [user form](forms_old) using the old form designer
1016

1117
Using the [mobile app](mobileapp)
18+
19+
#### How to deployment on kubernetes
20+
21+
Installing on [kubernetes](docs/kubernetes)
22+
using our [helm-charts](github.com/open-rpa/helm-charts/)
23+
24+
#### How to install and manage Openflow using npm packages
25+
Installing using [npm packages](npmopenflow)
26+
Installing remote/local nodereds using [npm packages](npmnodered)
27+
28+
#### How to build and run from source
29+
build [from source](buildsource)
30+
31+
#### Getting help from the comminty
32+
Join rocket chat [#openrpa](https://rocket.openiap.io/)
33+
or check out the [community forum](https://nn.openiap.io/)
34+
35+
For commercial support and access to premium featues, contact [openiap](https://openiap.io/)

docs/buildsource.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# build from source
2+
3+
#### Developer setup
4+
5+
Install [VSCode](https://code.visualstudio.com/download), [NodeJS 12](https://nodejs.org/en/download/), [mongoDB](https://www.mongodb.com/download-center/community) and [RabbitMQ](https://www.rabbitmq.com/download.html)
6+
7+
Clone this repo into a folder, in a shell type
8+
9+
`git clone https://github.com/open-rpa/openflow.git`
10+
11+
go to the folder with openflow
12+
13+
`cd openflow`
14+
15+
Install gulp and typescript globally
16+
17+
`npm i gulp typescript browserify tsify -g`
18+
19+
install packages for openflow api/web
20+
21+
`npm i`
22+
23+
install packages for NodeRED by
24+
25+
`cd OpenFlowNodeRED`
26+
`npm i`
27+
28+
`cd ..`
29+
30+
Now open in VS code
31+
32+
`code OpenFlow.code-workspace`
33+
34+
at the top level create a folder called config and inside create a file called .env ( notice it starting with a dot)
35+
36+
and add this content to the file
37+
38+
```bash
39+
nodered_id=nodered1
40+
nodered_sa=nodered1
41+
port=80
42+
nodered_port=1880
43+
tls_crt=
44+
tls_key=
45+
tls_ca=
46+
47+
signing_crt=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURqRENDQW5TZ0F3SUJBZ0lKQUp5N0tIMTE1dkQ4TUEwR0NTcUdTSWIzRFFFQkN3VUFNRnN4Q3pBSkJnTlYKQkFZVEFrUkxNUk13RVFZRFZRUUlEQXBUYjIxbExWTjBZWFJsTVNFd0h3WURWUVFLREJoSmJuUmxjbTVsZENCWAphV1JuYVhSeklGQjBlU0JNZEdReEZEQVNCZ05WQkFNTUMzTnBaMjVwYm1kalpYSjBNQjRYRFRFNU1EUXdOekUwCk5ETXpORm9YRFRJNU1EUXdOREUwTkRNek5Gb3dXekVMTUFrR0ExVUVCaE1DUkVzeEV6QVJCZ05WQkFnTUNsTnYKYldVdFUzUmhkR1V4SVRBZkJnTlZCQW9NR0VsdWRHVnlibVYwSUZkcFpHZHBkSE1nVUhSNUlFeDBaREVVTUJJRwpBMVVFQXd3TGMybG5ibWx1WjJObGNuUXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCCkFRQy9JSkdEaGxLTU9SWkoycXQwSWpjSDZOWUFtZDVxQzQ4dkNJRE54QWZCbmQxQnN4WlVjWkl5dkFlT28yNDcKM3I0eTYwNDgxRHVUS2JaMTBTNjRqRU05aW1XTXB1TFlJRnVyQ3BWNzVEWWhxMS85Q0FJVHJqNjlmVDluSkptcwpjM2lxTnJ1Tlg1bDlISXdadWtQM1ZNRkJRNWZVd3N1ZnE0YW1NbnVnZmtyUEVzSngxK3VJb0NYU3pyblZvcnZpClZ0ZFh4a3M4N0l1S0ZnMDJIZ1RQSzdwc0FXYTBRY3g2ck04bkV5TUhwNUdlR1Rvb1NNbkcyZ1RGNWZOSVFNdTMKVEVoc2p3SWRTYmRwck1Gb1VZV05Bc2FueTJOQk0wREhZRUdjQlZhZ0xWNUhFUW5ySUM3NEhtNjYxdG9HaU5VSAoveW04U3VndTgwWVFiVGxPcTFWNnNkaVRBZ01CQUFHalV6QlJNQjBHQTFVZERnUVdCQlMrYWc1NGtITllKZ29pCm9yRnlia293THR5R3ZqQWZCZ05WSFNNRUdEQVdnQlMrYWc1NGtITllKZ29pb3JGeWJrb3dMdHlHdmpBUEJnTlYKSFJNQkFmOEVCVEFEQVFIL01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQTZpZHBYdzdSR2pzcUpNanI2c1YvaQpXeXFsL2xkSy9sa1NCdnNBSENieDdQYi9rVUd2NHJNbndYMnBHdTR0YkFnSDc4eStmS3dzazllYkxDeTA4Y1k0Ckt5czhzbUpLenhWN0R6U3RVR1NvZmZMaFliVVVMK3UyNU5vVXc0TG1WQU5FU0NaMTZ3aTdPQUdJMkJnNFR6TXoKdnlIUHRaaE9wTXBNV2lzM2ZnRXFzV3QxS2VLcXo0Z2M5RnJtZDZPNlQzVVAxWTRBR3VEWnNScnpiU2RQS2JxbApxekprT2tQcGtHOGo3ZjFWNkk1ZlkzblZaSWk2YW1TcTM1RTJkQzVMY0dIQXRtT1lWL0c4TEQ3OUFnTVpFUU5vCkF2R2RnV1gvbXBFVkFjMmRFQkJlcUN6WjF1aVhWUjdERld2ZDFKTEpsdVRyTm9jMUROc0xNKzNEZFFiQ2JnYVcKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
48+
singing_key=LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQy9JSkdEaGxLTU9SWkoKMnF0MElqY0g2TllBbWQ1cUM0OHZDSUROeEFmQm5kMUJzeFpVY1pJeXZBZU9vMjQ3M3I0eTYwNDgxRHVUS2JaMQowUzY0akVNOWltV01wdUxZSUZ1ckNwVjc1RFlocTEvOUNBSVRyajY5ZlQ5bkpKbXNjM2lxTnJ1Tlg1bDlISXdaCnVrUDNWTUZCUTVmVXdzdWZxNGFtTW51Z2ZrclBFc0p4MSt1SW9DWFN6cm5Wb3J2aVZ0ZFh4a3M4N0l1S0ZnMDIKSGdUUEs3cHNBV2EwUWN4NnJNOG5FeU1IcDVHZUdUb29TTW5HMmdURjVmTklRTXUzVEVoc2p3SWRTYmRwck1GbwpVWVdOQXNhbnkyTkJNMERIWUVHY0JWYWdMVjVIRVFucklDNzRIbTY2MXRvR2lOVUgveW04U3VndTgwWVFiVGxPCnExVjZzZGlUQWdNQkFBRUNnZ0VBVXBjZ1NsV2hGamNWQ3BVVHdmdUhERVB4TmhGSHEwdVRkQitZaVZKTWg3NVAKL2pRRlVqaEJsT3JyMlJlR2F4aTEyQXNXby9LU1MrV2Frdzd4d1kzYkFKenRoUG9Zekl3dkVKcGlQa2MvblEwUgpUYVpJUDNqc1k3WGIwQlpnMGNTVVAvbW0wbENkWXhNUzk0c21FNXJzWitkdGxPTVlXc2NrU0cxSVB2SlVJV2FZCnl3NC9kaHJ3TWRsREVZS2tSbks1aDR1dXR1dzA1Q1VzNkZWN2F5cEJRRStGM3RxVlF3QWxGbWNueXdvZTB5WjQKZW1tWkRvT1dzNUk4cGNGbjZCSW1wZjN3UEg5UWhlQXJVaXRqV3YrZmI2cWRVaHJFVDBxMzh4dTZ5M1lJNFNLYQpXME9kUng4L3FTYllXdkpzbmxscDR0aUpDWE5IdnV6MVBKSGhxOUprQVFLQmdRRCt2dHlWcVJoaEJZTmd6WWorClFCaDNLcktrNEVqTXZaSGhEelhES0pMZ2JEVmJzNExrQkYySWZGOTF0S1k3d09CNVpXcU82Z3FqVVJBVE5hc1YKOExCOGE2TEpXYVJuTklLMnJkd1FwalFYcy92OVBSYnJwc2tTbDRJdUsyZWNBMjBSQkhicW5yNHZ5ZkQ4U3BzaApSdHlTUk5CRGVsaU01Z1JDM0JKKzBZbjBVUUtCZ1FEQUVZSUp3Y2xnQloyWmNNTlh1dW1lLzUxdHBHeGppRTJpCjZ3SDNsOHNTVDN1U1A4MHdndGdHaVFsUTRsR3BmSThqWkl4N0pwcGw0Qko1ZEtuVnpIS1dqMzA3YXYxcjdpU3QKLzJOVDNobzdaYkNlYzlhMHlJU2E3dTNGZGxzZ0VPcE45dURmbG5GQVQ3ZmIrM2d4Sk9DUWp1TkFCZXZaK2pScwpZY0ZhQWhGNW93S0JnUUNGUG9HVVNsRDFGblFrWXYwL3QzalVnK0hTK1hrNmxnRkNqYmthTGhPOURQeFB6Ykl0CjM5YW9lQjFhTExZeVZPMVVzZVl0Z0Y4MkUwVnNOc3NZKzc3a0pVeU5NclVhUWs0SWpTR3BGN1h4bS9PMi9vZ0oKbEVCaDJCdUFXTFdsMWVqcldNRjJjTGVidVcyeUdMZlJqUVg3LzhCTE95Z3I4bmZTSE5nVHV6Z0VNUUtCZ0JrZgpNUjhObGNWVmRyT25LQ1hGY09FM0ZlUk5hVS9yZUJ3akdQTEZpKzR0TDBDRno5VFVpR1R5YjZHQXVLV3VnUnBrCkFHdnJOSzYyakRRT3FsZ29rYVJYeUUySlJQUmxCYThzaEZWbjY0NXhVcFNuR2lJelNBVHIwM1hNY1ViVWI1RWIKQlhhNU9yN3FybVc3a3BENi9kUnFuQmEzcjQyblNFd1V6VEYwcTh4NUFvR0FIcXdRSyt1R0NTdlNsNENJUGhyRQpDREIvcytDK2NJNXVCeFJCMHVlNjc3L2lpdGZPSU9lOUNiTHE3R0tib0w4RVg3eXhKNVRLWjlYQmh5LzNCWmVNCllydEx3M2JicTNTN2hpUGFYSmE1dXZma3BWR1RnNEdzTnBJQ3VNTEJUaXJ6M0ZRV25UNFNZbzkrREVoalhEeVQKWlVOMERtUkJVNjNjWjRLSUlXd2xWUTA9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
49+
NODE_ENV=development
50+
51+
saml_federation_metadata=http://localhost.openiap.io/issue/FederationMetadata/2007-06/FederationMetadata.xml
52+
saml_issuer=uri:localhost.openiap.io
53+
# saml_entrypoint=http://localhost.openiap.io/issue
54+
# saml_baseurl=http://localhost.openiap.io:1880/
55+
56+
allow_personal_nodered=false
57+
allow_user_registration=true
58+
# mongodb_url=mongodb://localhost:27017
59+
# mongodb_db=openflow
60+
61+
# api_bypass_perm_check=true
62+
update_acl_based_on_groups=true
63+
multi_tenant=false
64+
65+
websocket_max_package_count=1048576
66+
67+
api_ws_url=ws://localhost.openiap.io
68+
domain=localhost.openiap.io
69+
protocol=http
70+
amqp_url=amqp://localhost
71+
aes_secret=7TXsxf7cn9EkUqm5h4MEWGjzkxkNCk2K
72+
auto_create_users=true
73+
auto_create_domains=
74+
skip_history_collections=audit,jslog
75+
```
76+
Lastly you need to allow powershell scripts to run, i don't know what is the recommended setting, i normally just go with bypass
77+
78+
`Set-ExecutionPolicy Bypass -Force`
79+
80+
Now you can run this by going to run ( Ctrl+Shit+D) and selecting OpenFlow in the dropdown box and press play button, select OpenFlowNodeRed in the dropdown and press play again
81+
82+
Now, this will serve an empty webpage, so we need to build the stylesheets and copy the compiled files to the dist folder, so go to the Terminal tab and add a new shelll, then type
83+
84+
`gulp sass`
85+
86+
Lastly we can bundle and minify the asserts to the dist folder, by typing
87+
88+
`gulp`
89+
90+
doing developerment, you can run the bundle without the minifyer by typing
91+
92+
`gulp watch`
93+
94+
You can now access openflow web on [http://localhost.openiap.io](http://localhost.openiap.io) and nodered on [http://localhost.openiap.io:1880](http://localhost.openiap.io:1880)
95+
96+
For further help or education contact [OpenIAP](https://openiap.io/) for a support agreement

docs/kubernetes.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,28 @@ rabbitmq:
3737
# enabled: false
3838
```
3939

40+
So first we need to create a namespace. Namespaces allow us to segregate multiple installations from each other, and ensure they run completely independently of each other.
4041

42+
``` sh
43+
kubectl create namespace demo
44+
```
45+
and now we can create our first openflow installation
46+
``` sh
47+
helm install openflow openiap/openflow -n demo --values ./demo.yaml
48+
```
49+
If you update the demo.yaml values file, you can update the installation with
50+
``` sh
51+
helm upgrade openflow openiap/openflow -n demo --values ./demo.yaml
52+
```
53+
54+
I also go though the install process in the video
55+
[![Configuring Openflow on Kubernetes](https://img.youtube.com/vi/onI_9JIAKbM/1.jpg)](https://youtu.be/onI_9JIAKbM)
56+
57+
Utilizing multiple node pools
58+
[![Distributing workloads with nodepools](https://img.youtube.com/vi/06OmsoV-AgM/1.jpg)](https://youtu.be/06OmsoV-AgM)
59+
60+
After install, this will help you getting started with monitoring (premium openflow only!)
61+
[![Configurering Reporting and Monitoring](https://img.youtube.com/vi/cyseDpnects/1.jpg)](https://youtu.be/cyseDpnects)
4162

63+
Performance tuning and/or troubleshooting workflows or the platform (premium openflow only!)
64+
[![Collecting spans and custom metrics](https://img.youtube.com/vi/wlErCAJX52E/1.jpg)](https://youtu.be/wlErCAJX52E)

docs/npmnodered.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# deploy openflow nodered using NPM
2+
3+
#### Quick start running openflow nodered using npm on windows
4+
5+
This require you to have openflow installed somewhere, or you can use our public openflow at [app.openiap.io](https://app.openiap.io) (noderedremote.env)
6+
7+
Create a user for the nodered in openflow, you will need the username and password for this user in the last step
8+
9+
[Install Chocolatey](https://chocolatey.org/install)
10+
11+
open a command prompt as admin
12+
13+
install nodejs LTS 14
14+
15+
```
16+
choco install nodejs-lts
17+
```
18+
19+
install openflow-nodered command line
20+
`npm i @openiap/nodered -g`
21+
22+
Go to the folder where you want to keep your config files,
23+
24+
```bash
25+
mkdir c:\openflow
26+
cd \openflow
27+
```
28+
29+
install pm2 as a global package, and then install [pm2-windows-service](https://www.npmjs.com/package/pm2-windows-service)
30+
**Important**: Say no to startup scripts PM2_SERVICE_SCRIPTS
31+
```bash
32+
npm i -g pm2
33+
npm i -g pm2-windows-service
34+
pm2-service-install
35+
# Perform environment setup: answer yes
36+
# Set PM2_HOME: answer yes and the type the path to the folder you intent on saving the openflow/nodered config files into ( like c:\openflow )
37+
# PM2_SERVICE_SCRIPTS: answer no
38+
# PM2_SERVICE_PM2_DIR: answer yes, and then accept the default path
39+
```
40+
41+
then create a template configuration file using
42+
`openflow-nodered-cli --init`
43+
44+
this will create 2 environment files with an example of how to connect to a locally installed openflow or how to connect to [app.openiap.io](https://app.openiap.io)
45+
So lets assume you want to run a remote openflow connected to [app.openiap.io](https://app.openiap.io)
46+
47+
`openflow-nodered-cli --install noderedremote`
48+
49+
this will prompt you for a pre-created username and password, and then install a local service with the name noderedremote and start it
50+
51+
then open a browser and visit [localhost.openiap.io:1880](http://localhost.openiap.io:1880)
52+
53+
54+
55+
#### Quick start running openflow nodered using npm on linux
56+
57+
For now only tested on ubuntu 18LTS
58+
Install NodeJS version 14
59+
This require you to have openflow installed somewhere, or you can use our public openflow at [app.openiap.io](https://app.openiap.io) (noderedremote.env)
60+
61+
Create a user for the nodered in openflow, you will need the username and password for this user in the last step
62+
63+
Then install and run OpenFlow Nodered, install the @openiap/nodered package
64+
`sudo npm i @openiap/nodered -g`
65+
66+
then create a template configuration file using
67+
`openflow-nodered-cli --init`
68+
69+
this will create 2 environment files with an example of how to connect to a locally installed openflow or how to connect to [app.openiap.io](https://app.openiap.io)
70+
So lets assume you want to run a remote openflow connected to [app.openiap.io](https://app.openiap.io)
71+
72+
`sudo openflow-nodered-cli --install noderedremote`
73+
74+
this will prompt for the pre-created username and password, and then install a local service with the name noderedremote and start it
75+
76+
then open a browser and visit [localhost.openiap.io:1880](http://localhost.openiap.io:1880)
77+
78+
I also go though this process in the video
79+
[![Ubuntu 18 npm install](https://img.youtube.com/vi/XgeD7Bv2duY/1.jpg)](https://youtu.be/XgeD7Bv2duY)

docs/npmopenflow.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# deploy openflow using NPM
2+
3+
#### Quick start running openflow using npm on windows
4+
5+
[Install Chocolatey](https://chocolatey.org/install)
6+
7+
open a command prompt as admin
8+
9+
Install rabbitmq ( answer yes to run the script )
10+
11+
```bash
12+
choco install rabbitmq
13+
```
14+
15+
Please ensure you can see rabbitmq as a service when you open the services.msc also make sure management got enabled ( a restart may help ). You can check this by going to [http://localhost:15672](http://localhost:15672) ( if not, run `choco install rabbitmq --force` or follow try following the [guide here](https://www.rabbitmq.com/management.html) )
16+
17+
install mongodb ( answer yes to run the script )
18+
19+
```
20+
choco install mongodb
21+
```
22+
23+
Again make sure it got installed and is running when you open the services.msc ( if not, run `choco install mongodb --force` ) or install it manually by downloading [mongodb community](https://www.mongodb.com/try/download/community) edition
24+
25+
install nodejs LTS 14
26+
27+
```
28+
choco install nodejs-lts
29+
```
30+
31+
Make sure it works by running `node -v` in a command prompt
32+
33+
install openflow command line
34+
35+
`npm i @openiap/openflow -g`
36+
37+
Go to the folder where you want to keep your config files,
38+
39+
```bash
40+
mkdir c:\openflow
41+
cd \openflow
42+
```
43+
install pm2 as a global package, and then install [pm2-windows-service](https://www.npmjs.com/package/pm2-windows-service)
44+
**Important**: Say no to startup scripts PM2_SERVICE_SCRIPTS
45+
```bash
46+
npm i -g pm2
47+
npm i -g pm2-windows-service
48+
pm2-service-install
49+
# Perform environment setup: answer yes
50+
# Set PM2_HOME: answer yes and the type the path to the folder you intent on saving the openflow/nodered config files into ( like c:\openflow )
51+
# PM2_SERVICE_SCRIPTS: answer no
52+
# PM2_SERVICE_PM2_DIR: answer yes, and then accept the default path
53+
```
54+
55+
then create a template configuration file using
56+
`openflow-cli --init`
57+
58+
open and edit openflow.env, if needed, then install the service using
59+
60+
`openflow-cli --install openflow`
61+
62+
then open a browser and visit [localhost.openiap.io](http://localhost.openiap.io)
63+
64+
#### Quick start running openflow using npm on linux
65+
66+
For now only tested on ubuntu 18LTS
67+
Install NodeJS version 14
68+
Also you need to have an installation of [mongoDB](https://www.mongodb.com/download-center/community) and [RabbitMQ](https://www.rabbitmq.com/download.html)
69+
70+
71+
Then to install and run OpenFlow, install the @openiap/openflow package
72+
73+
`sudo npm i @openiap/openflow -g`
74+
75+
then create a template configuration file using
76+
`openflow-cli --init`
77+
78+
open and edit openflow.env, if needed, then install the service using
79+
80+
`sudo openflow-cli --install openflow`
81+
82+
then open a browser and visit [localhost.openiap.io](http://localhost.openiap.io)
83+
84+
I also go though this process in the video
85+
[![Ubuntu 18 npm install](https://img.youtube.com/vi/XgeD7Bv2duY/1.jpg)](https://youtu.be/XgeD7Bv2duY)

0 commit comments

Comments
 (0)