Node.js based forum software built for the modern web
JavaScript Smarty CSS Other
Latest commit a63ec0a Jan 21, 2017 @barisusakli barisusakli committed on GitHub up dbsearch
Permalink
Failed to load latest commit information.
.github added database to issue template Aug 13, 2016
.tx ACP Translations Dec 19, 2016
install use different path for installer files Dec 22, 2016
logs added daemon capability to ./nodebb start, npm start/stop scripts Feb 27, 2014
public Latest translations and fallbacks Jan 21, 2017
src Plugin `defaultLang` defaults to `en-GB` Jan 20, 2017
test Fixing lint issues Jan 16, 2017
.codeclimate.yml update exclude folder Oct 13, 2016
.editorconfig Fix editorconfig syntax Jan 20, 2015
.eslintignore Add eslint to detect unhandled callback errors Sep 5, 2016
.eslintrc.json using spaces in .eslintrc.json Jan 8, 2017
.gitattributes #3343 Jul 21, 2015
.gitignore All hail the glorious translation prebuilding Jan 14, 2017
.jsbeautifyrc format/jshint favourites.js Sep 18, 2013
.jshintrc Tests for admin search, simplifications Nov 28, 2016
.travis.yml what, does Travis not like 4-space indents? Dec 16, 2016
Dockerfile Insured we're on a recent & Long Time Support (LTS) version of node. Nov 3, 2015
Gruntfile.js Exclude config files Jan 19, 2017
LICENSE Resolving issue #2 -- added GPLv3 license file and updated package.json Jun 17, 2013
README.md some tweaks to the readme Nov 24, 2016
app.js refactor app.js/start Dec 23, 2016
bcrypt.js Fix space-before-function-paren linter rule Oct 13, 2016
build.js All hail the glorious translation prebuilding Jan 14, 2017
loader.js #5211 Nov 17, 2016
minifier.js Fix space-before-function-paren linter rule Oct 13, 2016
nodebb Windows compat Jan 12, 2017
nodebb.bat Fixes for dev-ing on windows Dec 11, 2016
package.json up dbsearch Jan 21, 2017

README.md

NodeBB

Gitter Build Status Coverage Status Dependency Status Code Climate Documentation Status

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.

Screenshots

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 extention 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.

Requirements

NodeBB requires the following software to be installed:

  • A version of Node.js at least 4 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)

Installation

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 127.0.0.1 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

License

NodeBB is licensed under the GNU General Public License v3 (GPL-3) (http://www.gnu.org/copyleft/gpl.html).

Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive environment? Contact us at sales@nodebb.org.