A simple Docker image for quick-launching a NodeBB forum.
This repo contains the files for the automatic build of the Docker image
nilsramsperger/nodebb hosted on DockerHub.
The NodeBB comes with no plugins and the forum data is stored in a Redis within the container.
The Redis is configured for AOF persistence.
Not the fastest but the least chance for data loss on unexpected shutdowns.
Be advised, any other tags are for experimental purpose and might not be runnable.
Best stick to
latest or a specific version tag.
Create the container
docker create --name myNodeBB --restart always -p 4567:4567 -e url="http://127.0.0.1:4567" -v nodebb-data:/var/lib/redis -v nodebb-files:/opt/nodebb/public/uploads -v nodebb-config:/etc/nodebb nilsramsperger/nodebb
In this case the container named
myNodeBB and is bound to local port 4567.
The container's public url is set to
The three volumes are linked to the named volumes
Change things as you like.
Start the container
docker start myNodeBB
On first run, NodeBB will start it's web installer interface.
There you can create your admin account and set things up.
Just leave the database settings as they are and click "Install NodeBB".
When everything is done, click "Launch NodeBB".
The container will restart and the browser switch to the forum.
If an image of version 1.5.x or less is used, the container will not restart on "Launch NodeBB".
The restart must be done manually.
/var/lib/rediscontains the Redis data
/opt/nodebb/public/uploadscontains NodeBB uploads like avatars
Update to latest version
If you want to update your NodeBB to the latest version, just stop and remove your current container.
Then recreate it with the
create command from the install section.
On startup, the container will run a
nodebb upgrade and thus prepare the database for the new version of NodeBB.
Backup and restore
Save the contents of the three volumes for creating a backup.
To restore, copy the contents back.
The NodeBB web-client notifies about broken web socket connections and tries to reestablish infinitely.
The public URL and port in the
config.json are not set correctly.