Yeah @kurulumu-Net you can change port in config.json in one of the NodeBBs and change to the same port in the proxy-pass part of the corresponding nginx config.
Default port is 4567, one will need to be changed.
I would like to introduce what I have done with a NodeBB and a docker.
Contribute to qgp9/nodebb-docker-dev development by creating an account on GitHub.
GitHub (github.com)
This docker chain of Nginx, NodeBB, Redis, MongoDB(!!) is based on Alpine Linux and docker-compose
.
This design is mainly for developments and small standalone service rather than large distributable/scalable service.
A Major Difference from other many(?) docker implementations is that I don't embed source and config files into images but just mount most of files on a host directory to containers even include NodeBB source and node_modules. There are pros and cons. I'll explain them briefly and we could discuss them.
A MongoDB
is added as a default DB !!!
And redis is intened to be used for websock blabla, but I'm not sure it's properly working.
What I know actually, no errors, no warnings and I can see both of mongo and redis at admin web UI.
If anybody would try this docker chain, please let me know results.
!!! WARNING !!!
I haven't checked yet how mongod
and redis-server
manage SIGTERM
which docker send.
This means that in worst case one can loose data !
Does any body know about this?
mongod
and redis-server
has been checked. Safe with docker stop
but not with docker kill
git clone https://github.com/qgp9/nodebb-docker-dev.git nodebb-docker-dev
cd nodebb-docker-dev
git clone -b v1.x.x https://github.com/NodeBB/NodeBB.git nodebb
./bin/com-nodebb npm install
./bin/com-nodebb npm install socket.io-redis connect
./bin/com-nodebb npm setup
./bin/utils jq -M -s add nodebb/config.json conf/example/redis.josn > tmp.json && mv tmp.json nodebb/config.json
./bin/docker-compose up
mongo
, DB address: mongodb
, DB user: admin
, no DB passworddocker-compose.xml
, connect a port 4567 of NodeBB to host, and you may know how you can connect from your webserver to http://127.0.0.1:4567
. Here is a example docker-compose.xmlhttp://127.0.0.1:8080
. Here is a example docker-compose.xmlWhen you want to do ./nodebb setup
or ./nodebb upgrade
or npm install
on your nodebb, don't do it on Host directory. You have a helper script, do next.
./bin/com-nodebb ./nodebb setup
./bin/com-nodebb ./nodebb upgrade
./bin/com-nodebb npm install <package>
Also you can open bash and do whatever you want
./bin/com-nodebb bash
git pull
, you can do it on the host directory ( or with docker, doesn't matter )nodebb-docker-dev
├── bin
│ ├── com-nodebb # Helper to control NodeBB docker
│ └── docker-compose # Docker version of docker-compose for portability
├── conf # All Dockerfile and configuration.
│ ├── nginx
│ │ ├── Dockerfile
│ │ └── nginx.conf
│ ├── nodebb-dev
│ │ └── Dockerfile
│ └── redis
│ ├── Dockerfile
│ └── redis.conf
├── data
│ ├── nginx
│ │ └── logs # nginx, site logs
│ ├── nodebb # Empty. reserved for future plans.
│ └── redis # dump.rgb ( db data ) , redis.log ( log file )
├── docker-compose.yml
└── nodebb # NodeBB source will be here
conf
directory. All data files genereated by nginx, redis are in a data
directory.
config.json
and a logfile of NodeBB are in nodebb directory for easy management.When you build a system by ./bin/docker-compose up
, you will see a wired long name of images/container like nodebbdockerdev_nginx
by docker images
or docker ps -a
. This is because docker-compose
use a directory name as a project nam.
To get a short/readable name , you have recommontable 2 options.
export COMPOSE_PROJECT_NAME=qgp9
./bin/com-nodebb
and ./bin/docker-compose
qgp9_nginx
.More details will be .. updated at the github repo soon.
Any questions/comments/ideas/criticizing/WOW/BOO~ ?
I could successfully migrate my old nodebb system to a dockrized chain.
It was ubuntu based and I got some troubles with nginx configurations and ssl keys from letsencrypt, but in the end every things are fine now without large modifications from my orignal github repo.
If some body needs/wants, I'll post it and also update the github repo.
A MongoDB
is added as a default DB !!!
And redis is intened to be used for websock blabla, but I'm not sure it's properly working.
What I know actually, no errors, no warnings and I can see both of mongo and redis at admin web UI.
If anybody would try this docker chain, please let me know results.
Hi! I tried installing your docker container. After executing the instruction "./bin/docker-compose up" I put the nodebb setting in my browser, but then I got one of these errors in the terminal where I ran the docker-container:
error: Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
or
error: NodeBB could not connect to your Mongo database. Mongo returned the following error: connect ECONNREFUSED 127.0.0.1:27017
One of full logs:
nodebb_1 | Welcome to NodeBB!
nodebb_1 |
nodebb_1 | This looks like a new installation, so you'll have to answer a few questions about your environment before we can proceed.
nodebb_1 | Press enter to accept the default setting (shown in brackets).
nodebb_1 |
nodebb_1 | 26/5 16:52 [50] - info: Now configuring redis database:
nodebb_1 | Configuration Saved OK
nodebb_1 | Populating database with default configs, if not already set...
nodebb_1 | 26/5 16:52 [50] - error: Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
nodebb_1 | at Object.exports._errnoException (util.js:870:11)
nodebb_1 | at exports._exceptionWithHostPort (util.js:893:20)
nodebb_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14)
or
nodebb_1 | Welcome to NodeBB!
nodebb_1 |
nodebb_1 | This looks like a new installation, so you'll have to answer a few questions about your environment before we can proceed.
nodebb_1 | Press enter to accept the default setting (shown in brackets).
nodebb_1 |
nodebb_1 | 26/5 19:27 [32] - info: Now configuring mongo database:
nodebb_1 | Configuration Saved OK
nodebb_1 | 26/5 19:27 [32] - error: NodeBB could not connect to your Mongo database. Mongo returned the following error: connect ECONNREFUSED 127.0.0.1:27017
nodebb_1 | 26/5 19:27 [32] - warn: NodeBB Setup Aborted.
nodebb_1 | Error: connect ECONNREFUSED 127.0.0.1:27017
nodebb_1 | at Object.exports._errnoException (util.js:870:11)
nodebb_1 | at exports._exceptionWithHostPort (util.js:893:20)
nodebb_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14)
I tried you repo, but unfortunately the Mongo container fails:
mongodb_1 | Error relocating /usr/bin/mongod: _ZNK5boost16re_detail_10600031cpp_regex_traits_implementationIcE17transform_primaryEPKcS4_: symbol not found
mongodb_1 | Error relocating /usr/bin/mongod: _ZNK5boost16re_detail_10600031cpp_regex_traits_implementationIcE9transformEPKcS4_: symbol not found
nodebbdockerdev_mongodb_1 exited with code 127
Searching StackOverflow it seems this is an issue with Mongo on Alpine...
(I using Docker beta for MacOS, but I don't think this is the issue)
npm either isn't installed or is installed incorrectly.
I try to this docker chain, and got some error after exec sudo ./bin/com-nodebb npm install
:
Successfully built ee060087bd12
Successfully tagged nodebbdockerdev_nodebb:latest
npm WARN saveError ENOENT: no such file or directory, open '/opt/nodebb/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/opt/nodebb/package.json'
npm WARN nodebb No description
npm WARN nodebb No repository field.
npm WARN nodebb No README data
npm WARN nodebb No license field.
and idea?
Don't use sudo
. What tutorial or guide are you using?
@alphagao link me whatever guide you're using. If you don't know what to do, use this guide: