Cool 🙂 I'm more than happy to transfer the repo over to you if you wish to maintain it. As far as the NodeBB core is concerned, just submit a PR and we can discuss it there
[nodebb-plugin-camo] Make embedded images look secure!
Have you by chance tried re-installing the plugin? It installs camo from github, which can sometimes cause issues.
Edit: Also, I just noticed, this plugin doesn't consider that you may have camo installed globally, which may cause that error.
@yariplus I definitely haven't installed it globally. I can try and reinstall. I'm also wondering if the key has something to do with it? You were saying that if the internal proxy was selected, then you wouldn't need to specify a key? Looking at the code here, it's still trying to grab a key from the settings module.
So now the error looks the same, slightly different:
21/4 21:36  - info: [Camo]: Starting Camo worker... 21/4 21:36  - error: Error: spawn node ENOENT at exports._errnoException (util.js:870:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) at onErrorNT (internal/child_process.js:344:16) at nextTickCallbackWith2Args (node.js:437:9) at process._tickCallback (node.js:351:17) Error: spawn node ENOENT at exports._errnoException (util.js:870:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32) at onErrorNT (internal/child_process.js:344:16) at nextTickCallbackWith2Args (node.js:437:9) at process._tickCallback (node.js:351:17)
EDIT: Also, the new version (1.2.2) crashes nodebb, where 1.2.1 fails, but nodebb stays up
And if I go to node v0.10.25,
21/4 22:23  - error: [CamoProxy]: events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit (child_process.js:779:34)
I tried deleting the entire node_modules folder under nodebb, and reinstalling under node v0.10.25, and then manually installing [email protected] Still getting that error
What env are you running on? Did you have to install anything special (like node-gyp or ...? )
Here's some more information: I can actually get it running this way, if I set the plugin to use an external camo instance, and then run camo (the one in your plugin as a dependency) like this:
~/NodeBB/node_modules/nodebb-plugin-camo/node_modules/camo$ /usr/bin/env PORT=8082 CAMO_KEY="<key generated by your plugin>" node server.js
@Bri Just a normal Ubuntu LTS. Nothing in npm global, no node-gyp in nodebb directory.
I don't think the there's anything wrong with the key, it checks to make sure it's valid.
@Bri Interesting, I can only think there must be something wrong with the path I give to spawn call.
@yariplus I found the problem, the child process wasn't getting the PATH variable from the parent env, so when child_process.spawn() was called on 'node' it didn't know where to find it. I've made a PR for you.
Perfect! I figured it was something like that. Odd though.
Yeah, curious how it was working for you... I'm using nvm to manage node versions on my server, so it makes sense that the path to node would be different and require the right path in the PATH variable
@Bri Mind testing the version I just pushed? I refactored a lot of code and got rid of the extra loader process.
Everything looks good! I deployed it to my prod server and am seeing messages in the logs from the camo server
I pushed a small update that should make clustered setups work properly without needing a restart.
I also updated the source to use es2015, if anyone is interested in that.
@yariplus mm, does that mean your plugin only works with Node v4/v5?
lenovouser last edited by lenovouser
@julian nope, it is being compiled down to ES5 with babeljs IIRC
EDIT: Yes, it indeed is: https://github.com/minora-oss/nodebb-plugin-camo/blob/master/package.json#L50-L60
Yep yep. The distributed code on NPM is babeled down. Works with node >=0.10.0
teh_g last edited by
Sorry for rezzing an old thread!
Does this make it so I don't need to manually setup Camo? Also, does this still work in the latest NodeBB?
lenovouser last edited by
teh_g last edited by
Hmm, I will have to try this out. I was hoping to run camo and iframely on another box, but the documentation for doing that is terrible. This will at least make camo easier
Thanks for posting this. Should work well to neuter IP loggers and such.
New Release 1.5.1
Back from the dead with a bunch of bug fixes, code rewrite to current node and NodeBB, and new pictures for the guide topic!
- Fixed crash if camo was not installed locally.
- Fixed crash if an incorrect url was specified.
- Fixed crash if installed on windows.
- Fixed settings not changeable after original setup.
- Removed old or useless hooks.
- Removed babel.
- Corrected dead links and emails.
- Changed compatibility to >= NodeBB 1.0.0
- New docs!