Skip to content

Commit

Permalink
add offline example with mqtt
Browse files Browse the repository at this point in the history
  • Loading branch information
skadefro committed Nov 8, 2022
1 parent 28ec641 commit 1457631
Show file tree
Hide file tree
Showing 10 changed files with 612 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
config
letsencrypt
yacht
offline
23 changes: 23 additions & 0 deletions docker-compose-traefik-offline-cache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
version: "3.3"
services:
# if using prox/remoteurl then open /etc/docker/daemon.json and add the following ( not offline mode ! )
# {
# "registry-mirrors": ["http://localhost:5001"],
# "insecure-registries" : ["localhost:5000"]
# }
# and then restart docker
# sudo systemctl restart docker
registry:
container_name: "registry"
restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.registry.rule=Host(`registry.localhost.openiap.io`)"
- "traefik.http.routers.registry.entrypoints=web"
- "traefik.http.services.registry.loadbalancer.server.port=5000"
ports:
- 5000:5000
image: registry:2
volumes: # see options https://docs.docker.com/registry/configuration/
- "./docker-registry-config.yml:/etc/docker/registry/config.yml"
- "./offline/cache:/var/lib/registry"
122 changes: 122 additions & 0 deletions docker-compose-traefik-offline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
version: "3.3"
services:
mongodb:
image: "localhost:5000/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
mongoexpress:
labels:
- "traefik.enable=true"
- "traefik.http.routers.mongoexpress.rule=Host(`express.localhost.openiap.io`)"
- "traefik.http.routers.mongoexpress.entrypoints=web"
- "traefik.http.services.mongoexpress.loadbalancer.server.port=8081"
image: "mongo-express"
depends_on:
- mongodb
environment:
- ME_CONFIG_MONGODB_SERVER=mongodb
traefik:
image: "localhost:5000/traefik"
container_name: "traefik"
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.web.address=:80"
ports:
- "80:80"
restart: always
# - "8080:8080" # enable with api.insecure=true to access dashboard, NEVER enable this for the public
volumes:
- "//var/run/docker.sock:/var/run/docker.sock:ro"
rabbitmq:
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.rabbitmq.rule=Host(`mq.localhost.openiap.io`)"
# - "traefik.http.routers.rabbitmq.entrypoints=web"
# - "traefik.http.services.rabbitmq.loadbalancer.server.port=15672"
image: "localhost:5000/rabbitmq:3-management"
container_name: "rabbitmq"
restart: always
mqtt:
image: localhost:5000/iegomez/mosquitto-go-auth
restart: always
volumes:
- "./mosquitto.conf:/etc/mosquitto/mosquitto.conf"
verdaccio:
labels:
- "traefik.enable=true"
- "traefik.http.routers.verdaccio.rule=Host(`npm.localhost.openiap.io`)"
- "traefik.http.routers.verdaccio.entrypoints=web"
- "traefik.http.services.verdaccio.loadbalancer.server.port=4873"
image: "localhost:5000/verdaccio/verdaccio"
container_name: "verdaccio"
restart: always
volumes:
- "./offline/verdaccio/storage:/verdaccio/storage"
# - "./offline/verdaccio/config:/verdaccio/conf"
# - "./offline/verdaccio/plugins:/verdaccio/plugins"
environment:
- "VERDACCIO_PORT=4873"
- "VERDACCIO_PROTOCOL=http"
api:
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`localhost.openiap.io`)"
- "traefik.http.routers.api.entrypoints=web"
- "traefik.http.services.api.loadbalancer.server.port=3000"
- "traefik.frontend.passHostHeader=true"
image: "localhost:5000/openiap/openflow"
deploy:
replicas: 1
pull_policy: always
restart: always
volumes:
- "//var/run/docker.sock:/var/run/docker.sock"
depends_on:
- rabbitmq
- mongodb
- verdaccio
environment:
- auto_create_users=true
- auto_create_domains=
- allow_personal_nodered=true
- websocket_package_size=25000
- websocket_max_package_count=1048576
- protocol=http
- port=3000
- domain=localhost.openiap.io

- HTTP_PROXY=
- HTTPS_PROXY=
- NO_PROXY=

- enable_openflow_amqp=true
- amqp_prefetch=25
- socket_rate_limit=true
- socket_rate_limit_points=1000
- socket_rate_limit_points_disconnect=2500

- nodered_images=[{"name":"Latest Plain Nodered",
"image":"localhost:5000/openiap/nodered"},{"name":"Latest Puppeteer Nodered",
"image":"localhost:5000/openiap/nodered-puppeteer"}]
- nodered_ws_url=ws://api:3000
- saml_federation_metadata=http://api:3000/issue/FederationMetadata/2007-06/FederationMetadata.xml
- nodered_saml_entrypoint=http://localhost.openiap.io/issue
- amqp_url=amqp://guest:guest@rabbitmq
- mongodb_url=mongodb://mongodb:27017
- mongodb_db=openrpa

- skip_history_collections=audit,openrpa_instances,workflow_instances
- allow_skiphistory=false

- saml_issuer=uri:localhost.openiap.io
- aes_secret=7TXsxf7cn9EkUqm5h4MEWGjzkxkNCk2K
- signing_crt=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURZRENDQWtpZ0F3SUJBZ0lKQUsrSll6OGQ1bURxTUEwR0NTcUdTSWIzRFFFQkN3VUFNRVV4Q3pBSkJnTlYKQkFZVEFrRlZNUk13RVFZRFZRUUlEQXBUYjIxbExWTjBZWFJsTVNFd0h3WURWUVFLREJoSmJuUmxjbTVsZENCWAphV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVGt3TnpFd01UZ3dPVEl4V2hjTk1Ua3dPREE1TVRnd09USXhXakJGCk1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQXdLVTI5dFpTMVRkR0YwWlRFaE1COEdBMVVFQ2d3WVNXNTAKWlhKdVpYUWdWMmxrWjJsMGN5QlFkSGtnVEhSa01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQTZrcEo4eHFUUU9pRzVmTUt4T1U5VzZDbVVSSWJnb2ZoSHZwVVZWVDBoMnRsakFsc2Z2cWRzSk5MClZBd3dySW55V2ZNYlVHZGE3M21MTG9XdEM0L3RYUlNEQktnK2J6MXhRSHNzcjVaMmVueDhYdGtRSDVHZ1crOVQKajdhbVNZL0l0SUFiME5qL1NRaVozK0JPN0tpeTJpMWFVdlJBeVp5UVpVcyt1aWlIRkNJekhBbXltV0ovNXdrdwptb2ZUYjUxWWlqZ2xiaGdZVllUcXdVdmpscEIvbWFnWjV3VENuOWpmbG16bGY1aSs5aTAxSHU1U1RXNW9JSnovCm9oQ25Mam4wM2c4NXA5dllFaTJLUkM2dW84Nnp5Y1pxL1lKQzVNTlVPTzZRanlZYXQ4RjBYWVVQNzhzS1l2OCsKYTF3WmlDNFZhSWt2OEFaOUJua0hFbllBRnhpZ2RRSURBUUFCbzFNd1VUQWRCZ05WSFE0RUZnUVVsenEzdDBOWQowckpwSmpIMXRoQitlV0M2SGJZd0h3WURWUjBqQkJnd0ZvQVVsenEzdDBOWTBySnBKakgxdGhCK2VXQzZIYll3CkR3WURWUjBUQVFIL0JBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQW8rOHJDVllXOFc5UzZxUDQKdzVoSEMyTk5WMGJIVmgyQ3FZbmp3RXVTTjM4NWgvUWd3TmlIZE5NQzJXUHd4VytwSmZ4Q0Y1ZGZOMzUrZ085YworOTg1UHYzYVoyZ3BmcWVaRTFKZ2JqUTFiTkVWT3BqRDV0dVlNRE55YWpraS9oWVdDaVBSams5ZG1nQVV4cHdpCkZuTUdlemk4K080dXQyRW1DaHhUYlZUQ1psRnJwRWpqSTF1WUVmQ2l5NmZaUXV2bnpCeU5QZ3FUQS9RWXhMZkIKRWE4cFpOMk5LNm5IdEF0clhyRkYveFh6OHJRYWlyVFYrVm9yQXQxdzYzZ1VTWGc1VU55R2JZaDErdFRzWTdoYQpNamkwSFNYQkxtL0dHb05XaHBDVVpDVDU0NWJ6SmdJNjJwd2hKcVlyWm5jYlBDRzRaWXhHZzIxTVZLdkJaL29pCkFYcStpQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
- singing_key=LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRHFTa256R3BOQTZJYmwKOHdyRTVUMWJvS1pSRWh1Q2grRWUrbFJWVlBTSGEyV01DV3grK3Ayd2swdFVERENzaWZKWjh4dFFaMXJ2ZVlzdQpoYTBMaisxZEZJTUVxRDV2UFhGQWV5eXZsblo2Zkh4ZTJSQWZrYUJiNzFPUHRxWkpqOGkwZ0J2UTJQOUpDSm5mCjRFN3NxTExhTFZwUzlFREpuSkJsU3o2NktJY1VJak1jQ2JLWlluL25DVENhaDlOdm5WaUtPQ1Z1R0JoVmhPckIKUytPV2tIK1pxQm5uQk1LZjJOK1diT1YvbUw3MkxUVWU3bEpOYm1nZ25QK2lFS2N1T2ZUZUR6bW4yOWdTTFlwRQpMcTZqenJQSnhtcjlna0xrdzFRNDdwQ1BKaHEzd1hSZGhRL3Z5d3BpL3o1clhCbUlMaFZvaVMvd0JuMEdlUWNTCmRnQVhHS0IxQWdNQkFBRUNnZ0VBTXVEZkhrUHZKbkZZbWljbGQ0eXd2bTBzc1A1VnF3c0hBRXNzZFR0MXZ0SzcKd3FWcFFrbjZaSllZRGJCNEFZQVRlU1VxRVZQZ2s1QzVnT2pXbzJRbUQ4aWNpeTVlSUpvZk5mbUp3cmZTRXRkbAp5dE1vaFRLQ3VIUkltVFQ0OTVDWjdWakVzWjN1RWxZajFGSkowV3J4TENBZE5WYUZtMEs4dU1LV1pLYllicTUwCk40SkdBVVA4cXpzVGsxMFcwL1JsVkhjN3MxcVJMYmhUaHVmeWZqdkFsWlRDUStzNld2Z1FzNTljZis5ZkRpenEKeDlFYTRmclN4SkFzdmhEZ3lmd0FCSHVYcEl5ZGFJNEQ1UkZYRXBGQW1SYkZGRkFhNW9Zam5XT1BiQmVKUHJUUApMckxmcU03NkVaZ1pXclU5UmgwN2VXeVMwdlAyVEhmNGo4eTNYWEpFQVFLQmdRRDVyVTFnQlNLdXhxZVZkWFZRCkp1RXVIVnVFTEkzS0hITVRGb1R1cEFKU2R1b3VSMXNmYjZHc1RPQWFmamp6QlpHdFFFa3R4c3pEemFTTVh5OHYKYU5mT1QvcTlZYXFwdSt3cno5dXp4dnBhY1pQZHg3TGJUWGwwYmRKR2FPRHdNYWY3bHRDcmo1WVZ6Vk9GSGsvZgpCYndGV1ZQTUJORldCMEZMZzU1dGN6cjFGUUtCZ1FEd09UdEp2TXNtZVZFVU1aUnFnNjB0U2FyN0pjeHJKRklrCno5ZFdIUW1xS1dpNzFob3krbHBqM0FwRnhBQ3lPY2dmZE03VFQyb25rcXB1c0NUNlliZThXT3BrWWxIMGlpUmQKWkVISC9zakhySzNEaktJWEIvSEVyVEdrOVJNaTdiNUd4NGYweVVkM2hqd0E2Y2dGRDlyd0l6VyszMjM0Z2xlNwphdzlIRFpxVjRRS0JnQVBiOXVjMkRSd3dlK1NtaFNLeEJ5Z0VVaWJQM1gwelJXQVZLQWJjU0NEb0w2UjVlK0lYCmdxTThLUGFmM3RkNnpZNmxBTHlSWnhiYnRlQnBsRHdpWGJ1VnB1V0lmZS9UdE1uVWs2dkt0cEh4VVh6TEdtdWoKWGU0N3lGVklSN25PdXE3NzNNdmFFMUxROHFxTEZtYjNHcm5tY0pJbHZPcWNnQmpmdHZJd0pzZ2xBb0dBU1RtWQoyZlJEbEptOFhrUnlzamtySzdmZDk2cGc4blBpMmpmRXN3b3M3UUtzV3oxN1JQak5YczB2RUc4YnF6Z3p5V3JvCnRMN3JZOTZ3TndkWWJqNGxMTE9KMTBtbEk3Nk1NUytqWVp4SGhaNGNaWlJUd0dONmpmSWhST0F6a2gwWU9Da1EKUjB5bmpVYU11ZGFKVXdtdk9pM3hieHBhUWpzeEZQOGdiQTg0aE9FQ2dZRUExbXZjSStZeDZITW00WkVjMU9yaworNXJoUHJrdGNMT0JHR3pZZGZIZGRZMytVdFZydUpCRmt5R2pCU2t2YmVtcUZxRlluMHFZckpXZVlUS2hMbUlwClkyRk1Gd29abWxpSkpONTA1eStTemdPbUVxN2wzT1Z4R0NwTTd1ODNyWFBXRGRERnc5WVNYVU1ueFRDUGsyRW0KekEyUzVkWjlWRld2NlR6VHg3cTIyc2c9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
volumes:
mongodb_data:
driver: local
22 changes: 22 additions & 0 deletions docker-registry-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
# proxy:
# remoteurl: https://registry-1.docker.io
delete:
enabled: false
31 changes: 31 additions & 0 deletions generic-npmrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"_id": "6368b921ba81c6e80a0907f5",
"_type": "npmrc",
"_acl": [
{
"rights": 32767,
"_id": "5ce94386320b9ce0bc2c3d07",
"name": "allan5",
"$$hashKey": "object:284"
},
{
"rights": 65535,
"_id": "5a1702fa245d9013697656fb",
"name": "admins",
"$$hashKey": "object:285"
}
],
"_encrypt": [],
"_version": 1,
"catalogues": [
"https://catalogue.nodered.org/catalogue.json"
],
"content": "registry=http://verdaccio",
"name": "npmrc for all",
"_createdby": "Allan Zimmermann",
"_createdbyid": "5ce9422d320b9c09742c3ced",
"_created": "2022-11-07T07:52:01.361Z",
"_modifiedby": "Allan Zimmermann",
"_modifiedbyid": "5ce9422d320b9c09742c3ced",
"_modified": "2022-11-07T07:52:56.168Z"
}
18 changes: 18 additions & 0 deletions mosquitto.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
per_listener_settings false
allow_anonymous false

listener 1883 0.0.0.0

auth_plugin /mosquitto/go-auth.so
auth_opt_backends http
auth_opt_hasher bcrypt
auth_opt_cache true
auth_opt_auth_cache_seconds 30
auth_opt_acl_cache_seconds 90
auth_opt_auth_jitter_second 3
auth_opt_acl_jitter_seconds 5

auth_opt_http_host services
auth_opt_http_port 3000
auth_opt_http_getuser_uri /auth/client
auth_opt_http_aclcheck_uri /auth/acl
6 changes: 6 additions & 0 deletions offline-down.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@echo off
docker-compose -f docker-compose-traefik-offline.yml -p demo down --remove-orphans
rem echo "press enter to also delete cache"
rem echo "If you do this, you will need to run offline-pull.bat to reseed the image cache"
rem docker-compose -f docker-compose-traefik-offline-cache.yml -p cache down --remove-orphans
rem pause
33 changes: 33 additions & 0 deletions offline-pull.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
@echo off
if not exist "offline" mkdir offline
docker-compose -f docker-compose-traefik-offline-cache.yml -p cache up -d
pause
docker pull mongo
docker image tag mongo:latest localhost:5000/mongo:latest
docker image push localhost:5000/mongo:latest

docker pull traefik
docker image tag traefik:latest localhost:5000/traefik:latest
docker image push localhost:5000/traefik:latest

docker pull rabbitmq:3-management
docker image tag rabbitmq:3-management localhost:5000/rabbitmq:3-management
docker image push localhost:5000/rabbitmq:3-management

docker pull verdaccio/verdaccio
docker image tag verdaccio/verdaccio:latest localhost:5000/verdaccio/verdaccio
docker image push localhost:5000/verdaccio/verdaccio

docker pull iegomez/mosquitto-go-auth
docker image tag iegomez/mosquitto-go-auth:latest localhost:5000/iegomez/mosquitto-go-auth
docker image push localhost:5000/iegomez/mosquitto-go-auth



docker pull openiap/openflow:latest
docker image tag openiap/openflow:latest localhost:5000/openiap/openflow:latest
docker image push localhost:5000/openiap/openflow:latest

docker pull openiap/nodered:latest
docker image tag openiap/nodered:latest localhost:5000/openiap/nodered:latest
docker image push localhost:5000/openiap/nodered:latest
2 changes: 2 additions & 0 deletions offline-up.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
docker-compose -f docker-compose-traefik-offline.yml -p demo up -d
Loading

0 comments on commit 1457631

Please sign in to comment.