Open lu4t opened 3 years ago
Hi @lu4t, Thanks for the constructive feedback!!!
on a hosted node-red instance, the acme-client node didn't show up
Can you share some more detail about the hosted node-red?
And what do you mean that it doesn't show up? In the panel on the left side of your editor, or in the flow editor?
I know for example on IBM cloud this can result in headache, as e.g. in this discussion.
Can I assume that you run Docker containers? And is this the only contrib node that has this kind of troubles?
If you should see errors in the logs, please share those! Bart
Hi @lu4t, Thanks for the constructive feedback!!!
on a hosted node-red instance, the acme-client node didn't show up
Can you share some more detail about the hosted node-red? And what do you mean that it doesn't show up? In the panel on the left side of your editor, or in the flow editor? I know for example on IBM cloud this can result in headache, as e.g. in this discussion.
Can I assume that you run Docker containers? And is this the only contrib node that has this kind of troubles?
If you should see errors in the logs, please share those! Bart
hi @bartbutenaers you nailed it. This happened when deploying a node-red docker on a kubernetes cluster at IBMCloud. I had a look at the discussion you mention, but it is not applicable to this case, you had this problem on a cloudfoundry environment (which kind of sucks, to be all honest). We are using a regular k8s cluster, which is no different of any other you would find at any other cloud provider. When I say it doesn't show up, the node is not showing on the left... and if I import a flow which contains this node, a warning saying "the node XXXXX is not known" pops on the screen.
By the way, when I do the exact same process (following your guide on this repo) on a NR docker running on my local desktop, none of this happened, the flows are working and the node shows up.
There's no log on NR editor that I can show (nothing there).
This is the console right after installing the node:
bash-5.0# npm install bartbutenaers/node-red-contrib-letsencrypt
> @root/acme@3.1.0 postinstall /usr/src/node-red/node_modules/@root/acme
> node scripts/postinstall
npm notice created a lockfile as package-lock.json. You should commit this file.
+ node-red-contrib-letsencrypt@1.0.0
added 46 packages from 26 contributors and audited 408 packages in 11.367s
6 packages are looking for funding
run `npm fund` for details
found 3 moderate severity vulnerabilities
run `npm audit fix` to fix them, or `npm audit` for details
bash-5.0#
something that looks strange to me is, when I enter the nodes folder, I cannot see any module called acme-client. This is what I get if I dols
into node-red/node_modules
folder:
abbrev denque jsbn proxy-addr
accepts depd json-schema pseudomap
acme-dns-01-cloudflare destroy json-schema-traverse psl
acme-dns-01-digitalocean detect-libc json-stable-stringify-without-jsonify pump
acme-dns-01-dnsimple dicer json-stringify-safe pumpify
acme-dns-01-duckdns dom-serializer jsonata punycode
acme-dns-01-gandi domelementtype jsonfile qs
acme-dns-01-godaddy domhandler jsprim random-bytes
acme-dns-01-namecheap domutils leven range-parser
acme-dns-01-namedotcom duplexer3 lodash.assignin raw-body
acme-dns-01-route53 duplexify lodash.bind rc
acme-dns-01-vultr ecc-jsbn lodash.clonedeep read
acme-dns-01-zeit ee-first lodash.defaults readable-stream
acme-v2 emoji-regex lodash.filter regenerator-runtime
agent-base encodeurl lodash.flatten reinterval
ajv end-of-stream lodash.foreach remove-trailing-separator
ansi-regex entities lodash.map request
ansi-styles es-class lodash.merge retry
append-field es6-promise lodash.pick rimraf
aproba es6-promisify lodash.reduce safe-buffer
are-we-there-yet escape-html lodash.reject safer-buffer
argparse escape-string-regexp lodash.some sax
array-flatten esprima lowercase-keys semver
asn1 etag lru-cache send
it might be normal, but I was expecting to see: Lets encrypt
and acme-client
modules.... I hope this helps, and let me know if I can help on debugging.
best regards!
part 2: I tried to install Let's encrypt node using the palette, and this is the log I got after installing:
-----------------------------------------------------------
2021-02-12T01:32:16.578Z Install : node-red-contrib-lets-encrypt 0.0.3
2021-02-12T01:32:16.877Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production node-red-contrib-lets-encrypt@0.0.3
2021-02-12T01:32:20.084Z [err] npm
2021-02-12T01:32:20.085Z [err] WARN deprecated greenlock-challenge-dns@3.0.7: Please use acme-dns-01-cli. See https://www.npmjs.com/package/acme-dns-01-cli
2021-02-12T01:32:22.822Z [out]
2021-02-12T01:32:22.822Z [out] > acme-v2@1.8.6 postinstall /data/node_modules/acme/node_modules/acme-v2
2021-02-12T01:32:22.822Z [out] > node scripts/postinstall
2021-02-12T01:32:22.822Z [out]
2021-02-12T01:32:23.214Z [out]
2021-02-12T01:32:23.215Z [out] [31mGreenlock and ACME.js v3 are on the way![0m
2021-02-12T01:32:23.215Z [out] Watch for updates at https://indiegogo.com/at/greenlock
2021-02-12T01:32:23.215Z [out]
2021-02-12T01:32:24.424Z [out]
2021-02-12T01:32:24.424Z [out] > acme-v2@1.8.6 postinstall /data/node_modules/greenlock/node_modules/acme-v2
2021-02-12T01:32:24.424Z [out] > node scripts/postinstall
2021-02-12T01:32:24.424Z [out]
2021-02-12T01:32:24.835Z [out]
2021-02-12T01:32:24.838Z [out] [31mGreenlock and ACME.js v3 are on the way![0m
2021-02-12T01:32:24.838Z [out] Watch for updates at https://indiegogo.com/at/greenlock
2021-02-12T01:32:24.838Z [out]
2021-02-12T01:32:26.162Z [out] + node-red-contrib-lets-encrypt@0.0.3
2021-02-12T01:32:26.162Z [out] added 43 packages from 21 contributors in 8.77s
2021-02-12T01:32:26.187Z rc=0
just in case it helps... after adding Let's encrypt node using the palette I get it listed on the left, but I still get the message saying the acme-client node is missing.
part 3: this is the most interesting one. I added a let's encrypt input node from the left navigation, then I clicked deploy flows... nothing happened. Right after that I killed the pod, recreated a new one and there you have it. The acme-client node showed up.
I am happy, cause I get it working... but I am pretty sure this is not the install method you'd like the users of your nodes to follow.... :)
Let me know if I can help on something.
something that looks strange to me is, when I enter the nodes folder, I cannot see any module called acme-client.
I have now installed the node on my Windows portable and this is what has been added to .node-red\node_modules folder:
12/02/2021 12:41 <DIR> .bin
12/02/2021 12:41 <DIR> cert-info
12/02/2021 12:41 <DIR> node-red-contrib-letsencrypt
12/02/2021 12:41 <DIR> acme-dns-01-zeit
12/02/2021 12:41 <DIR> acme-v2
12/02/2021 12:41 <DIR> bcryptjs
12/02/2021 12:41 <DIR> check-password-strength
12/02/2021 12:41 <DIR> acme-dns-01-route53
12/02/2021 12:41 <DIR> acme-dns-01-namedotcom
12/02/2021 12:41 <DIR> acme-dns-01-cloudflare
12/02/2021 12:41 <DIR> acme-dns-01-dnsimple
12/02/2021 12:41 <DIR> acme-dns-01-namecheap
12/02/2021 12:41 <DIR> acme-dns-01-gandi
12/02/2021 12:41 <DIR> acme-dns-01-vultr
12/02/2021 12:41 <DIR> acme-dns-01-godaddy
12/02/2021 12:41 <DIR> url-parse-lax
12/02/2021 12:41 <DIR> got
12/02/2021 12:41 <DIR> acme-dns-01-duckdns
12/02/2021 12:41 <DIR> cloudflare
12/02/2021 12:41 <DIR> unzip-response
12/02/2021 12:41 <DIR> timed-out
12/02/2021 12:41 <DIR> should-proxy
12/02/2021 12:41 <DIR> url-pattern
12/02/2021 12:41 <DIR> acme-dns-01-digitalocean
12/02/2021 12:41 <DIR> lowercase-keys
12/02/2021 12:41 <DIR> prepend-http
12/02/2021 12:41 <DIR> duplexer3
12/02/2021 12:41 <DIR> is-retry-allowed
12/02/2021 12:41 <DIR> es-class
12/02/2021 12:41 <DIR> is-redirect
12/02/2021 12:41 <DIR> is-stream
12/02/2021 12:41 <DIR> autocreate
12/02/2021 12:41 <DIR> create-error-class
12/02/2021 12:41 <DIR> capture-stack-trace
12/02/2021 12:41 <DIR> get-stream
12/02/2021 12:41 <DIR> @root
The node-red-contrib-letsencrypt folder is my node, the others are dependencies. In the early days my node called node-red-contrib-acme-client, but after a discussion on Discourse we decided to change the name (because nobody knows what acme is ...).
The weird thing is that it looks like you don't get a node-red-contrib-letsencrypt folder?
after adding Let's encrypt node using the palette I get it listed on the left
Did you install a node (which is not published on NPM) via the Node-RED flow editor menu? Have not used that yet ...
I tried to install Let's encrypt node using the palette, and this is the log I got after installing
Have not seen the v3 messages before, because at the time being there was only the v2 version of the acme library...
Right after that I killed the pod, recreated a new one and there you have it. The acme-client node showed up.
Well to be honest this is way above my paygrade. Have not used Kubernetes, and my spare time is way too limited to start with it unfortunately. If I were you, I would start a discussion on Discourse. Hopefully somebody from the community has some experience with this kind of stuff ...
something that looks strange to me is, when I enter the nodes folder, I cannot see any module called acme-client.
I have now installed the node on my Windows portable and this is what has been added to .node-red\node_modules folder:
12/02/2021 12:41 <DIR> .bin 12/02/2021 12:41 <DIR> cert-info 12/02/2021 12:41 <DIR> node-red-contrib-letsencrypt 12/02/2021 12:41 <DIR> acme-dns-01-zeit 12/02/2021 12:41 <DIR> acme-v2 12/02/2021 12:41 <DIR> bcryptjs 12/02/2021 12:41 <DIR> check-password-strength 12/02/2021 12:41 <DIR> acme-dns-01-route53 12/02/2021 12:41 <DIR> acme-dns-01-namedotcom 12/02/2021 12:41 <DIR> acme-dns-01-cloudflare 12/02/2021 12:41 <DIR> acme-dns-01-dnsimple 12/02/2021 12:41 <DIR> acme-dns-01-namecheap 12/02/2021 12:41 <DIR> acme-dns-01-gandi 12/02/2021 12:41 <DIR> acme-dns-01-vultr 12/02/2021 12:41 <DIR> acme-dns-01-godaddy 12/02/2021 12:41 <DIR> url-parse-lax 12/02/2021 12:41 <DIR> got 12/02/2021 12:41 <DIR> acme-dns-01-duckdns 12/02/2021 12:41 <DIR> cloudflare 12/02/2021 12:41 <DIR> unzip-response 12/02/2021 12:41 <DIR> timed-out 12/02/2021 12:41 <DIR> should-proxy 12/02/2021 12:41 <DIR> url-pattern 12/02/2021 12:41 <DIR> acme-dns-01-digitalocean 12/02/2021 12:41 <DIR> lowercase-keys 12/02/2021 12:41 <DIR> prepend-http 12/02/2021 12:41 <DIR> duplexer3 12/02/2021 12:41 <DIR> is-retry-allowed 12/02/2021 12:41 <DIR> es-class 12/02/2021 12:41 <DIR> is-redirect 12/02/2021 12:41 <DIR> is-stream 12/02/2021 12:41 <DIR> autocreate 12/02/2021 12:41 <DIR> create-error-class 12/02/2021 12:41 <DIR> capture-stack-trace 12/02/2021 12:41 <DIR> get-stream 12/02/2021 12:41 <DIR> @root
The node-red-contrib-letsencrypt folder is my node, the others are dependencies. In the early days my node called node-red-contrib-acme-client, but after a discussion on Discourse we decided to change the name (because nobody knows what acme is ...).
The weird thing is that it looks like you don't get a node-red-contrib-letsencrypt folder?
after adding Let's encrypt node using the palette I get it listed on the left
Did you install a node (which is not published on NPM) via the Node-RED flow editor menu? Have not used that yet ...
I tried to install Let's encrypt node using the palette, and this is the log I got after installing
Have not seen the v3 messages before, because at the time being there was only the v2 version of the acme library...
Right after that I killed the pod, recreated a new one and there you have it. The acme-client node showed up.
Well to be honest this is way above my paygrade. Have not used Kubernetes, and my spare time is way too limited to start with it unfortunately. If I were you, I would start a discussion on Discourse. Hopefully somebody from the community has some experience with this kind of stuff ...
it's okay, now it seems to work properly. The fact this is installed on a kubernetes cluster has no effect on the install process of a node. At the end of the day, it is just a docker install from the same image you would use on a localhost. There's a node-red-contrib-letsencrypt folder. Actually, there are two. One with a dash:
bash-5.0# ls -lsa
total 332
4 drwxr-xr-x 83 root root 4096 Feb 12 02:37 .
4 drwxr-xr-x 5 root root 4096 Feb 12 08:58 ..
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 .bin
4 drwxr-xr-x 11 root root 4096 Feb 12 02:32 @root
4 drwxr-xr-x 3 root root 4096 Feb 12 02:32 acme
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 acme-dns-01-cloudflare
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-digitalocean
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-dnsimple
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-duckdns
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-gandi
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-godaddy
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-namecheap
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-namedotcom
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-route53
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-vultr
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 acme-dns-01-zeit
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 acme-v2
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 agent-base
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 autocreate
4 drwxr-xr-x 9 root root 4096 Feb 12 02:27 bcryptjs
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 capture-stack-trace
4 drwxr-xr-x 4 root root 4096 Feb 12 02:27 cert-info
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 check-password-strength
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 cloudflare
4 drwxr-xr-x 3 root root 4096 Feb 12 02:32 core-util-is
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 create-error-class
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 debug
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 detect-node
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 duplexer3
4 drwxr-xr-x 5 root root 4096 Feb 12 02:32 eckles
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 es-class
4 drwxr-xr-x 4 root root 4096 Feb 12 02:27 es6-promise
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 es6-promisify
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 get-stream
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 got
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 greenlock
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 greenlock-challenge-dns
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 greenlock-store-fs
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 handle-thing
4 drwxr-xr-x 7 root root 4096 Feb 12 02:32 hpack.js
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 http-deceiver
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 https-proxy-agent
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 inherits
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 is-redirect
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 is-retry-allowed
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 is-stream
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 isarray
4 drwxr-xr-x 3 root root 4096 Feb 12 02:32 keypairs
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 le-challenge-fs
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 le-sni-auto
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 le-store-certbot
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 lowercase-keys
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 minimalistic-assert
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 minimist
4 drwxr-xr-x 3 root root 4096 Feb 12 02:32 mkdirp
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 ms
4 drwxr-xr-x 3 root root 4096 Feb 12 02:32 node-red-contrib-lets-encrypt
4 drwxr-xr-x 2 root root 4096 Feb 12 02:37 node-red-contrib-letsencrypt
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 safe-buffer
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 safe-replace
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 sax
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 select-hose
4 drwxr-xr-x 4 root root 4096 Feb 12 02:27 should-proxy
4 drwxr-xr-x 5 root root 4096 Feb 12 02:32 spdy
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 spdy-transport
4 drwxr-xr-x 4 root root 4096 Feb 12 02:32 string_decoder
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 timed-out
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 unzip-response
4 drwxr-xr-x 2 root root 4096 Feb 12 02:27 url-parse-lax
4 drwxr-xr-x 5 root root 4096 Feb 12 02:27 url-pattern
4 drwxr-xr-x 2 root root 4096 Feb 12 02:32 util-deprecate
4 drwxr-xr-x 3 root root 4096 Feb 12 02:32 wbuf
4 drwxr-xr-x 3 root root 4096 Feb 12 02:27 xml2js
4 drwxr-xr-x 4 root root 4096 Feb 12 02:27 xmlbuilder
I believe the first one (node-red-contrib-lets-encrypt) is the one installed with the npm install command on your guide, and the second one (node-red-contrib-letsencrypt) is the one installed when using the palette. I don't know if the problem happens cause one is referenced as a dependency or something; the truth is the "acme-client" showed up after I installed the one on the palette and, right after I killed the pod (i.e. restarted the node-red docker).
first of all, congrats on all your nodes... your repo is amazing!!!.
After testing the letsencrypt node following your instructions, I managed to install and start it locally without a problem. But when I tried to install, following the same steps, on a hosted node-red instance, the acme-client node didn't show up. After doing some tests, deleted and re-installed, stoping and re-starting nodered,... nothing happened. The solution I found was to remove the node-red container and creating a new one. Then the new container (which was mapped to the same /data volume as the one I deleted) found the acme-client node all the sudden. I found this node very useful, and I believe this might prevent others to use it cause the installation might fail. Should you need logs or something to debug what happened, I can try to repeate the process I followed and send it to you. Thanks again for all your contribution.