Skip to content
Node.js based forum software built for the modern web
JavaScript Smarty CSS Other
Branch: master
Clone or download

Latest commit


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update Dec 17, 2019
.tx feat: wip, better digest handling (+ eventual digest resend logic) (#… Nov 2, 2019
build endpoint to download user attachments, #6441 Apr 13, 2018
install fix(deps): update dependency sharp to v0.25.2 (#8220) Mar 20, 2020
logs added daemon capability to ./nodebb start, npm start/stop scripts Feb 27, 2014
public Latest translations and fallbacks Mar 24, 2020
src feat: add parent cids to body class Mar 26, 2020
test fix: return null if field does not exist Feb 24, 2020
.codeclimate.yml tweak codeclimate settings Oct 21, 2018
.editorconfig Fix editorconfig syntax Jan 20, 2015
.eslintignore Support scoped theme packages Jun 11, 2018
.eslintrc fix(style): requiring parens in block bodies Aug 13, 2019
.gitattributes #3343 Jul 21, 2015
.gitignore fix: only call clearCookie for logged in users Feb 18, 2020
.jsbeautifyrc format/jshint favourites.js Sep 18, 2013
.jshintrc update esversion Oct 22, 2018
.travis.yml fix: try travis fix again Feb 28, 2020 docs: updated changelog Feb 5, 2020
Dockerfile Update Dockerfile Feb 25, 2020
Gruntfile.js feat: allow only watching core Sep 7, 2019
LICENSE Resolving issue #2 -- added GPLv3 license file and updated package.json Jun 17, 2013 Update Node version Apr 10, 2019
app.js feat: resetting theme will reset skin Oct 10, 2019
commitlint.config.js feat: enabling commitlint Nov 8, 2018
docker-compose.yml Add docker-compose.yml (#7966) Oct 22, 2019
loader.js feat: Allow getting logfile path from config (#7044) Dec 14, 2018
nodebb CLI refactor with commander (#6058) Nov 23, 2017
nodebb.bat Fix #7263 (#7264) Jan 18, 2019
renovate.json Add renovate.json Jun 18, 2018
require-main.js Enable `require.main.require` in tests (#6896) Oct 31, 2018


Build Status Coverage Status Dependency Status Code Climate

NodeBB Forum Software is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.

Additional functionality is enabled through the use of third-party plugins.


NodeBB's theming engine is highly flexible and does not restrict your design choices. Check out some themed installs in these screenshots below:

Our minimalist "Persona" theme gets you going right away, no coding experience required.

How can I follow along/contribute?

  • If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of plugins which would be a great starting point for learning the codebase.
  • If you are a designer, NodeBB needs themes! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes Bootstrap 3 but themes can choose to use a different framework altogether.
  • If you know languages other than English you can help us translate NodeBB. We use Transifex for internationalization.
  • Please don't forget to like, follow, and star our repo! Join our growing community to keep up to date with the latest NodeBB development.


NodeBB requires the following software to be installed:

  • A version of Node.js at least 8 or greater (installation/upgrade instructions)
  • Redis, version 2.8.9 or greater or MongoDB, version 2.6 or greater
  • nginx, version 1.3.13 or greater (only if intending to use nginx to proxy requests to a NodeBB)


Please refer to platform-specific installation documentation

Securing NodeBB

It is important to ensure that your NodeBB and database servers are secured. Bear these points in mind:

  1. While some distributions set up Redis with a more restrictive configuration, Redis by default listens to all interfaces, which is especially dangerous when a server is open to the public. Some suggestions:
    • Set bind_address to so as to restrict access to the local machine only
    • Use requirepass to secure Redis behind a password (preferably a long one)
    • Familiarise yourself with Redis Security
  2. Use iptables to secure your server from unintended open ports. In Ubuntu, ufw provides a friendlier interface to working with iptables.
    • e.g. If your NodeBB is proxied, no ports should be open except 80 (and possibly 22, for SSH access)

Upgrading NodeBB

Detailed upgrade instructions are listed in Upgrading NodeBB


NodeBB is licensed under the GNU General Public License v3 (GPL-3) (

Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive environment? Contact us at

You can’t perform that action at this time.