Julian Lam c4fbed24f8 Squashed commit of the following:
commit 9c86d9b2904e14927cd7e9679b92aec0951d1063
Merge: ebfa63a 5a7f811
Author: Julian Lam <julian@nodebb.org>
Date:   Thu Jul 20 08:41:39 2017 -0400

    Merge branch 'noscript-login' of https://github.com/An-dz/NodeBB into noscript

commit 5a7f81185e
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Mon Jul 17 23:07:14 2017 -0300

    Rename clashing variable 'next'

commit ebfa63a984073a58c17aa408c363cdb03ef89985
Merge: c1801cd f159d0d
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Jul 17 16:30:40 2017 -0400

    Merge branch 'noscript-logout' of https://github.com/An-dz/NodeBB into noscript

commit c1801cda14e6363491e30b659902e2ae71f7e1f7
Merge: 7a5f9f3 9fd542d
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Jul 17 16:30:31 2017 -0400

    Merge branch 'noscript-register' of https://github.com/An-dz/NodeBB into noscript

commit 7a5f9f35abc834bb72ddddc9ca07d34f2fde8353
Merge: 44851f9 d37b95c
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Jul 17 16:30:10 2017 -0400

    Merge branch 'noscript-compose' of https://github.com/An-dz/NodeBB into noscript

commit f159d0d9ef
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Thu Jul 6 12:16:38 2017 -0300

    Prevent form submit

    Required for theme change

commit d37b95cb71
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Thu Jul 6 01:49:52 2017 -0300

    Prevent link action with scripts

    Required for the theme change that changes the buttons to `a` tags.

commit 9fd542d897
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Wed Jul 5 19:57:56 2017 -0300

    Fix tests

commit cdad5bf8c2
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Wed Jul 5 19:09:17 2017 -0300

    Update error handling

commit 4ff11cd136
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Wed Jul 5 17:29:08 2017 -0300

    Remove async waterfall

commit df01d44e82
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Wed Jul 5 16:59:43 2017 -0300

    Set noscript compose as noscript at start

commit 4bcc380da7
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Wed Jul 5 16:59:12 2017 -0300

    Remove last useless next

commit b5eac6fea1
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sun Jul 2 18:35:08 2017 -0300

    Last function requires no next

commit 20a5cce6e6
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sun Jul 2 18:06:58 2017 -0300

    Remove more useless next calls

commit 85ee22a79b
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sun Jul 2 17:46:07 2017 -0300

    Remove useless next calls

commit 7d984c47ad
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sun Jul 2 15:45:31 2017 -0300

    Support old themes

commit 4a09dfbd08
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sun Jul 2 15:37:23 2017 -0300

    Moved all error handling into helpers function

commit 391aa6e67e
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Thu Jun 8 15:37:37 2017 -0300

    ESLint - Fix mixed conditionals

commit 80ccc6fd58
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sat Jun 3 18:08:15 2017 -0300

    Compose without scripts

commit 2aca811256
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sat Jun 3 18:00:44 2017 -0300

    Register without scripts

commit 097bb51577
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sat Jun 3 16:42:15 2017 -0300

    Logout without scripts

commit d497e08109
Author: André Zanghelini <an_dz@simutrans-forum>
Date:   Sat Jun 3 16:27:10 2017 -0300

    Login without script
2017-07-20 08:51:04 -04:00
2017-05-27 15:18:54 -06:00
2017-07-06 13:07:16 -04:00
2017-07-20 08:51:04 -04:00
2017-07-20 08:51:04 -04:00
2017-07-20 08:51:04 -04:00
2016-10-13 21:42:52 +03:00
2015-01-20 12:29:09 +01:00
2017-05-21 18:20:01 -06:00
2017-04-13 16:36:02 -04:00
2015-07-21 11:17:31 -04:00
2013-09-18 10:44:54 -04:00
2017-03-13 14:00:48 -04:00
2017-06-01 16:24:45 -04:00
2016-12-10 20:57:34 -07:00
2017-07-13 14:02:42 -04:00
2017-06-20 10:17:58 -04:00

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.

Languages
JavaScript 87.3%
Smarty 11.4%
SCSS 0.8%
Shell 0.2%
HTML 0.1%
Other 0.1%