Well, I'm immensely happier and more relaxed now.
I have a FreeNAS running 11.3-U4 and a Jail running same. I have created a user on the Jail and can SSH to it. I have installed npm and git, and then used npm to install the javascript application. It is almost working...
I can browse to the Jail TPLink application and it gives me an identical webpage to the one I experienced when running it on the PC, but with one, very serious difference: It doesn't discover any devices. I have used tcpdump to monitor the Jail interface traffic. I did get some error messages when I was installing the above.
root@TPLink-Devices:/home/andrew/tplink-energy-monitor # npm install
npm WARN npm npm does not support Node.js v14.4.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12, 13.
npm WARN npm You can find the latest version at
https://nodejs.org/
added 222 packages from 278 contributors and audited 223 packages in 10.133s
found 21 vulnerabilities (4 low, 10 moderate, 6 high, 1 critical)
run `npm audit fix` to fix them, or `npm audit` for details
root@TPLink-Devices:/home/andrew/tplink-energy-monitor #
root@TPLink-Devices:/home/andrew/tplink-energy-monitor # npm start
npm WARN npm npm does not support Node.js v14.4.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12, 13.
npm WARN npm You can find the latest version at
https://nodejs.org/
> tplink-monitor@0.0.1 start /usr/home/andrew/tplink-energy-monitor
> node ./app.js
Logger config file: "logger-config.json"
Log directory path: "."
Starting discovery on interface: 192.168.1.29
(node:25215) Warning: Accessing non-existent property 'cat' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:25215) Warning: Accessing non-existent property 'cd' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'chmod' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'cp' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'dirs' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'pushd' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'popd' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'echo' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'tempdir' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'pwd' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'exec' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'ls' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'find' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'grep' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'head' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'ln' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'mkdir' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'rm' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'mv' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'sed' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'set' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'sort' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'tail' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'test' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'to' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'toEnd' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'touch' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'uniq' of module exports inside circular dependency
(node:25215) Warning: Accessing non-existent property 'which' of module exports inside circular dependency
GET / 200 114.192 ms - 9826
GET /stylesheets/style.css 200 4.671 ms - 1229
GET /javascripts/dash.js 200 1.141 ms - 10233
GET /favicon.ico 200 15.496 ms - 9826
GET /index.html 200 12.731 ms - 9826
GET /stylesheets/style.css 304 1.345 ms - -
GET /javascripts/dash.js 304 0.576 ms - -
GET /index.html 304 17.911 ms - -
GET /stylesheets/style.css 304 1.327 ms - -
GET /javascripts/dash.js 304 0.620 ms - -
GET /index.html 304 10.533 ms - -
GET /stylesheets/style.css 304 0.593 ms - -
GET /javascripts/dash.js 304 0.613 ms - -
The "GET"'s are a result of my browsing to the webpage it produces.
I haven't performed any corrective action, as suggested by some of the above, I wanted to ask for advice first.