I have watched and followed all the steps in your tutorial about high density robots but cannot get them to “run” or control them via openflow in the " HD Robots" menu.
what happens if you run it from the console as i show in the video ?
first make it work in the console, then try and make it work as a service. and remember to RE run the auth command to seed a new token, when trying to run as a service.
Seems this is working now, but I need to maintain the cmd with the command “openrpa.rdservice” always open? Because if I close it… the “HD Robots” menu stop working.
I follow your steps but didn’t work.
The HD robots works only if I keep the command running in cmd but not is giving me this Error.
C:\Windows\system32>openrpa.rdservice
main 1
GetParentProcessId
main 200
Check parentProcess
main 5
****** isService: False
DoWork
Do work!
BEGIN::Set ProjectsDirectory
Set UnhandledException
C:\Program Files\OpenRPA\settings.json
Check IsServiceInstalled
Create Tracing
Add Tracing
Override SetOut
[10:12:37.711][Output] Override SetError
[10:12:38.102][Output] ResetLogPath
[10:12:38.116][Output] ****** BEGIN
[10:12:38.251][Information] ******************************
[10:12:38.254][Information] * Done *
[10:12:38.257][Output] Connect to wss://openflow.codecenter.info/
[10:12:38.285][Information] ******************************
[10:12:38.798][Information] Connected to wss://openflow.codecenter.info/
[10:12:38.810][Information] WebSocketClient_OnOpen
[10:12:38.994][Error] System.Security.Cryptography.CryptographicException: Key not valid for use in specified state.
at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionSco
pe scope)
at OpenRPA.RDService.PluginConfig.UnprotectString(Byte[] data)
at OpenRPA.RDService.Program.<WebSocketClient_OnOpen>d__19.MoveNext()
Yes, I run “openrpa.rdservice reauth” and command works.
Now “openrpa.rdservice” is showing this error:
[10:19:49.132][Error] System.Security.Cryptography.CryptographicException: Key not valid for use in specified state.
at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
at OpenRPA.RDService.PluginConfig.UnprotectString(Byte[] data)
at OpenRPA.RDService.Program.<WebSocketClient_OnOpen>d__19.MoveNext()
But like i said, you need to run AUTH every time to swap between running in the console or running as a service since the token gets encrypted ! …
Also, i see your missing watch support, you CANNOT use hd robots without running openflow with watch support ( mongodb needs to be installed in a replicaset ) with out this, the service will not detect when you enable/disable users.
Hi @Allan_Zimmermann
I have already installed openflow https on my ubuntu server. I try to “join” docker-compose-traefik.replicaset.yml and docker-compose-traefik-letsencrypt.yml, like this:
Can you help me in this?
version: "3.3"
services:
mongodb:
hostname: mongodb
image: "mongo"
# if you get MongoDB 5.0+ require a CPU with AVX support, then try using version 4 instead
# image: "mongo:4.4.8"
restart: always
volumes:
- mongodb_data:/data/db
environment:
- MONGO_REPLICA_SET_NAME=rs0
# healthcheck:
# test: test $$(echo "if (rs.status().codeName == 'NotYetInitialized') { rs.initiate() }; if (rs.status().codeName == 'InvalidReplicaSetConfig') { cfg = rs.conf(); cfg.members[0].host = hostname() + ':27017'; rs.reconfig(cfg, {force:true}); };" | mongo --quiet) -eq 1
# interval: 10s
# start_period: 30s
# healthcheck:
# test: test $$(echo "if (rs.status().codeName == 'NotYetInitialized') { rs.initiate() }; if (rs.status().codeName == 'InvalidReplicaSetConfig') { cfg = rs.conf(); cfg.members[0].host = 'mongodb:27017'; rs.reconfig(cfg, {force:true}); };" | mongo --quiet) -eq 1
# interval: 10s
# start_period: 30s
# https://www.sohamkamani.com/docker/mongo-replica-set/#using-docker-compose
command: "--bind_ip_all --replSet rs0"
ports:
- "27017:27017"
mongosetup:
image: "mongo"
depends_on:
- mongodb
restart: "no"
command: >
mongo --host mongodb:27017 --eval
'
db = (new Mongo("mongodb:27017")).getDB("openrpa");
config = {
"_id" : "rs0",
"members" : [
{
"_id" : 0,
"host" : "mongodb:27017"
}
]
};
rs.initiate(config);
'
traefik:
image: "traefik"
container_name: "traefik"
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`dashboard.openflow.codecenter.info`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.rule=PathPrefix(`/api`) ||
PathPrefix(`/dashboard`)"
# - "traefik.http.routers.traefik.middlewares=admin"
# - "traefik.http.middlewares.admin.basicauth.users=admin:$$apr1$$iB.BZjJJ$$FmaZuX35eFCMe5t3a.OqR."
command:
# - "--api.insecure=true" # enable with port 8080 to access dashboard, NEVER enable this for the public
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.address=:80"
# - "--entrypoints.websecure.http.tls.certresolver=myresolver"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=codecenter@codecenter.info"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
# global redirect to https
- "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.redirs.entrypoints=web"
- "traefik.http.routers.redirs.middlewares=redirect-to-https"
ports:
- "80:80"
- "443:443"
restart: always
# - "8080:8080" # enable with api.insecure=true to access dashboard, NEVER enable this for the public
volumes:
- "./letsencrypt:/letsencrypt"
- "//var/run/docker.sock:/var/run/docker.sock:ro"
rabbitmq:
labels:
- "traefik.enable=true"
- "traefik.http.routers.rabbitmq.rule=Host(`mq.openflow.codecenter.info`)"
- "traefik.http.routers.rabbitmq.entrypoints=websecure"
- "traefik.http.routers.rabbitmq.tls.certresolver=myresolver"
- "traefik.http.services.rabbitmq.loadbalancer.server.port=15672"
image: "rabbitmq:3-management"
container_name: "rabbitmq"
restart: always
web:
labels:
- "traefik.enable=true"
- "traefik.http.routers.web.rule=Host(`openflow.codecenter.info`)"
- "traefik.http.routers.web.entrypoints=websecure"
- "traefik.http.routers.web.tls.certresolver=myresolver"
- "traefik.http.services.web.loadbalancer.server.port=3000"
- "traefik.frontend.passHostHeader=true"
image: "openiap/openflow:edge"
deploy:
replicas: 1
pull_policy: always
restart: always
depends_on:
- rabbitmq
- mongodb
volumes:
- "//var/run/docker.sock:/var/run/docker.sock"
environment:
- multi_tenant=false
- auto_create_users=false
- auto_create_domains=
- allow_personal_nodered=true
- auto_create_personal_nodered_group=false
- tls_crt=
- tls_key=
- tls_ca=
- tls_passphrase=
- api_bypass_perm_check=false
- websocket_package_size=25000
- websocket_max_package_count=1048576
- protocol=https
- port=3000
- nodered_docker_entrypoints=web,websecure
- nodered_docker_certresolver=myresolver
- domain=openflow.codecenter.info
- log_with_colors=false
- HTTP_PROXY=
- HTTPS_PROXY=
- NO_PROXY=
- enable_openflow_amqp=false # enable this to use the openflow amqp, only usefull when you have more than one replicas
- amqp_prefetch=25
- socket_rate_limit=true
- socket_rate_limit_points=1000
- socket_rate_limit_points_disconnect=2500
#- nodered_docker_use_project=true # uncomment to add nodered to the same docker-compose project ( will breake running docker-compose up -d if any nodereds are running )
- nodered_images=[{"name":"Latest Plain Nodered",
"image":"openiap/nodered"},{"name":"Latest Puppeteer Nodered",
"image":"openiap/nodered-puppeteer"},{"name":"Latest TagUI Nodered",
"image":"openiap/nodered-tagui"}]
- nodered_ws_url=ws://web:3000
- saml_federation_metadata=http://web:3000/issue/FederationMetadata/2007-06/FederationMetadata.xml
- nodered_saml_entrypoint=https://openflow.codecenter.info/issue
- amqp_url=amqp://guest:guest@rabbitmq
#- mongodb_url=mongodb://mongodb:27017
- mongodb_url=mongodb://mongodb:27017/?replicaSet=rs0
- mongodb_db=openrpa
- skip_history_collections=audit,openrpa_instances,workflow_instances
- allow_skiphistory=false
- saml_issuer=uri:openflow.codecenter.info
- aes_secret=7TXsxf7cn9EkUqm5h4MEWGjzkxkNCk2K
- signing_crt=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURZRENDQWtpZ0F3SUJBZ0lKQUsrSll6OGQ1bURxTUEwR0NTcUdTSWIzRFFFQkN3VUFNRVV4Q3pBSkJnTlYKQkFZVEFrRlZNUk13RVFZRFZRUUlEQXBUYjIxbExWTjBZWFJsTVNFd0h3WURWUVFLREJoSmJuUmxjbTVsZENCWAphV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVGt3TnpFd01UZ3dPVEl4V2hjTk1Ua3dPREE1TVRnd09USXhXakJGCk1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQXdLVTI5dFpTMVRkR0YwWlRFaE1COEdBMVVFQ2d3WVNXNTAKWlhKdVpYUWdWMmxrWjJsMGN5QlFkSGtnVEhSa01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQTZrcEo4eHFUUU9pRzVmTUt4T1U5VzZDbVVSSWJnb2ZoSHZwVVZWVDBoMnRsakFsc2Z2cWRzSk5MClZBd3dySW55V2ZNYlVHZGE3M21MTG9XdEM0L3RYUlNEQktnK2J6MXhRSHNzcjVaMmVueDhYdGtRSDVHZ1crOVQKajdhbVNZL0l0SUFiME5qL1NRaVozK0JPN0tpeTJpMWFVdlJBeVp5UVpVcyt1aWlIRkNJekhBbXltV0ovNXdrdwptb2ZUYjUxWWlqZ2xiaGdZVllUcXdVdmpscEIvbWFnWjV3VENuOWpmbG16bGY1aSs5aTAxSHU1U1RXNW9JSnovCm9oQ25Mam4wM2c4NXA5dllFaTJLUkM2dW84Nnp5Y1pxL1lKQzVNTlVPTzZRanlZYXQ4RjBYWVVQNzhzS1l2OCsKYTF3WmlDNFZhSWt2OEFaOUJua0hFbllBRnhpZ2RRSURBUUFCbzFNd1VUQWRCZ05WSFE0RUZnUVVsenEzdDBOWQowckpwSmpIMXRoQitlV0M2SGJZd0h3WURWUjBqQkJnd0ZvQVVsenEzdDBOWTBySnBKakgxdGhCK2VXQzZIYll3CkR3WURWUjBUQVFIL0JBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQW8rOHJDVllXOFc5UzZxUDQKdzVoSEMyTk5WMGJIVmgyQ3FZbmp3RXVTTjM4NWgvUWd3TmlIZE5NQzJXUHd4VytwSmZ4Q0Y1ZGZOMzUrZ085YworOTg1UHYzYVoyZ3BmcWVaRTFKZ2JqUTFiTkVWT3BqRDV0dVlNRE55YWpraS9oWVdDaVBSams5ZG1nQVV4cHdpCkZuTUdlemk4K080dXQyRW1DaHhUYlZUQ1psRnJwRWpqSTF1WUVmQ2l5NmZaUXV2bnpCeU5QZ3FUQS9RWXhMZkIKRWE4cFpOMk5LNm5IdEF0clhyRkYveFh6OHJRYWlyVFYrVm9yQXQxdzYzZ1VTWGc1VU55R2JZaDErdFRzWTdoYQpNamkwSFNYQkxtL0dHb05XaHBDVVpDVDU0NWJ6SmdJNjJwd2hKcVlyWm5jYlBDRzRaWXhHZzIxTVZLdkJaL29pCkFYcStpQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
- singing_key=LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRHFTa256R3BOQTZJYmwKOHdyRTVUMWJvS1pSRWh1Q2grRWUrbFJWVlBTSGEyV01DV3grK3Ayd2swdFVERENzaWZKWjh4dFFaMXJ2ZVlzdQpoYTBMaisxZEZJTUVxRDV2UFhGQWV5eXZsblo2Zkh4ZTJSQWZrYUJiNzFPUHRxWkpqOGkwZ0J2UTJQOUpDSm5mCjRFN3NxTExhTFZwUzlFREpuSkJsU3o2NktJY1VJak1jQ2JLWlluL25DVENhaDlOdm5WaUtPQ1Z1R0JoVmhPckIKUytPV2tIK1pxQm5uQk1LZjJOK1diT1YvbUw3MkxUVWU3bEpOYm1nZ25QK2lFS2N1T2ZUZUR6bW4yOWdTTFlwRQpMcTZqenJQSnhtcjlna0xrdzFRNDdwQ1BKaHEzd1hSZGhRL3Z5d3BpL3o1clhCbUlMaFZvaVMvd0JuMEdlUWNTCmRnQVhHS0IxQWdNQkFBRUNnZ0VBTXVEZkhrUHZKbkZZbWljbGQ0eXd2bTBzc1A1VnF3c0hBRXNzZFR0MXZ0SzcKd3FWcFFrbjZaSllZRGJCNEFZQVRlU1VxRVZQZ2s1QzVnT2pXbzJRbUQ4aWNpeTVlSUpvZk5mbUp3cmZTRXRkbAp5dE1vaFRLQ3VIUkltVFQ0OTVDWjdWakVzWjN1RWxZajFGSkowV3J4TENBZE5WYUZtMEs4dU1LV1pLYllicTUwCk40SkdBVVA4cXpzVGsxMFcwL1JsVkhjN3MxcVJMYmhUaHVmeWZqdkFsWlRDUStzNld2Z1FzNTljZis5ZkRpenEKeDlFYTRmclN4SkFzdmhEZ3lmd0FCSHVYcEl5ZGFJNEQ1UkZYRXBGQW1SYkZGRkFhNW9Zam5XT1BiQmVKUHJUUApMckxmcU03NkVaZ1pXclU5UmgwN2VXeVMwdlAyVEhmNGo4eTNYWEpFQVFLQmdRRDVyVTFnQlNLdXhxZVZkWFZRCkp1RXVIVnVFTEkzS0hITVRGb1R1cEFKU2R1b3VSMXNmYjZHc1RPQWFmamp6QlpHdFFFa3R4c3pEemFTTVh5OHYKYU5mT1QvcTlZYXFwdSt3cno5dXp4dnBhY1pQZHg3TGJUWGwwYmRKR2FPRHdNYWY3bHRDcmo1WVZ6Vk9GSGsvZgpCYndGV1ZQTUJORldCMEZMZzU1dGN6cjFGUUtCZ1FEd09UdEp2TXNtZVZFVU1aUnFnNjB0U2FyN0pjeHJKRklrCno5ZFdIUW1xS1dpNzFob3krbHBqM0FwRnhBQ3lPY2dmZE03VFQyb25rcXB1c0NUNlliZThXT3BrWWxIMGlpUmQKWkVISC9zakhySzNEaktJWEIvSEVyVEdrOVJNaTdiNUd4NGYweVVkM2hqd0E2Y2dGRDlyd0l6VyszMjM0Z2xlNwphdzlIRFpxVjRRS0JnQVBiOXVjMkRSd3dlK1NtaFNLeEJ5Z0VVaWJQM1gwelJXQVZLQWJjU0NEb0w2UjVlK0lYCmdxTThLUGFmM3RkNnpZNmxBTHlSWnhiYnRlQnBsRHdpWGJ1VnB1V0lmZS9UdE1uVWs2dkt0cEh4VVh6TEdtdWoKWGU0N3lGVklSN25PdXE3NzNNdmFFMUxROHFxTEZtYjNHcm5tY0pJbHZPcWNnQmpmdHZJd0pzZ2xBb0dBU1RtWQoyZlJEbEptOFhrUnlzamtySzdmZDk2cGc4blBpMmpmRXN3b3M3UUtzV3oxN1JQak5YczB2RUc4YnF6Z3p5V3JvCnRMN3JZOTZ3TndkWWJqNGxMTE9KMTBtbEk3Nk1NUytqWVp4SGhaNGNaWlJUd0dONmpmSWhST0F6a2gwWU9Da1EKUjB5bmpVYU11ZGFKVXdtdk9pM3hieHBhUWpzeEZQOGdiQTg0aE9FQ2dZRUExbXZjSStZeDZITW00WkVjMU9yaworNXJoUHJrdGNMT0JHR3pZZGZIZGRZMytVdFZydUpCRmt5R2pCU2t2YmVtcUZxRlluMHFZckpXZVlUS2hMbUlwClkyRk1Gd29abWxpSkpONTA1eStTemdPbUVxN2wzT1Z4R0NwTTd1ODNyWFBXRGRERnc5WVNYVU1ueFRDUGsyRW0KekEyUzVkWjlWRld2NlR6VHg3cTIyc2c9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
volumes:
mongodb_data:
driver: local
I tried this combination and when I try to access my test env url this text is displayed: Bad Gateway
I just added some parts of the yml file “replicaset”.
Is there a way to debug this or know what’s wrong?