The openshift installation docs are for openshift v2 and are NOT up to date with openshift v3. Could someone explain to me how to use nodebb with openshift v3?
The only solution I found is to hack webservers.js file by overwriting the port and IP variables with the respective $Openshifts variables
The guide has been updated since the writing of this post, no need to hack files
It worked for me aswell, didn't have the chance to debug and fix it otherwise.
I think it might be useful for other people to know how to fix it
Get the value of the ENV_VAR
and put it at line 104 of src/webserver.js as follow
//args = isSocket ? [port] : [port, nconf.get('bind_address')],
args = [8080, "127.0.0.1"],
@TILT Absolutely right!
I'm having trouble on getting this to work too.
My problem is that when i execute the node app setup, in the redis password step, even thought I write by hand the redis password (shown by the execution of echo $REDIS_CLI) i get the error that the password is incorrect.
So, two questions if you don't mind:
1- The "nodeBB secret" is only a desired password, isn't it?
2- The redis password is shown in the output of echo $REDIS_CLI like follows: -h ip_redis -p port_redis -a password
Sorry about the dumb questions, but i'm getting crazy about this error.
PS: Excuse me for my bad english and thanks in andvance.
First try to ssh your app on openshift and type:
If redis cartridge installed properly - you have to get in to redis console.
Then. Compose you json.config file this way(replace appropriate data):
And upload it to openshift.
You can get the redis object data for your config with the following command:
echo $OPENSHIFT_REDIS_HOST && echo $OPENSHIFT_REDIS_PORT && echo $REDIS_PASSWORD
Then try to 'nodebb app.js --setup' your application on the server. It'll fetch all the needed data from the config.
@Tom-Riddleff Thank you very much. I will try it that way. Thanks for the explanation.
@José-Ángel-Rey-Liñares Ok. Poke me if any.
And one more.
I can predict that websockets won't work in scope of defined socket io transports on openshift. The only long polling is running there (Chrome > F12(browser inspector )> Network : will demonstrate it for you.).
It's because openshift allows websocket connection with the port 8000 only.
In order to get it work just add the following line in your config.json:
jarey last edited by
@Tom-Riddleff Hi again.
I just modified the config.json file, as you suggested, but i'm istill getting an error when running node app --setup. The error is as follows:
At this point i'm kind of lost. Any help is really appreciated.
Thanks in advance.
@José-Ángel-Rey-Liñares That's because of connection to Redis could not be established
have you tried command: redis-cli $REDIS_CLI
[Update] Try to execute: node app.js (not node app.js --setup)
@Tom-Riddleff yes, but i would try it again. Thanks for your help.
EDITED: I just have been able to make it work. The problem was that when i runned "node app.js --setup" the file config.json got the redis password overriden and set it to blank, so as you pointed out, the database connection could not be stablished.
Then the problem was with the nodebb port and IP, when establishing the "trust proxy" step. So as you and @TILT explained in this thread i had to edit the file "src/webserver.js" setting the args port value to 8000 as you explained, and the IP of node.js (echo $OPENSIHFT_NODEJS_IP).
The guide has been updated since last we read it.
Apparently the caveat was to set the bind_address (I'm pretty sure I tried it but only with 0.0.0.)
No need for hacks!