****************************************** NOTICE ************************************************
The collaborators on this project are Seckhen Andrade, Nikoloz Devidze, Ghani Raissov, Davit Charkviani, Yousuf Alkhiyami
Please know that there is a folder called node_module_real, which contains the files that are modified compared to the files that are in the node_modules we get by npm install. Please take the code from the files in the node_modules_real folder (files have the same names as in the node_module generated by npm install) and paste (replace the code) them in the respective files.
Please download the jest dependencies through npm install jest and npm install jest-environment-jsdom. After this also add "test:jest": "jest --config ./jest.config.js", in package.json's "scripts" section. After this, run npm run test:jest, and the tests about our added material will get executed!
In order to get rid of eslint error, also add the jest dependency in eslint.src file.
Please go to test/mocks/@nodebb/nodebb-additions/tests.js and comment out the commented section. This section has been commented to satisfy the lint issues which cannot be satisfied on git, only on local machine.
NodeBB Forum Software is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB takes the best of the modern web: real-time streaming discussions, mobile responsiveness, and rich RESTful read/write APIs, while staying true to the original bulletin board/forum format → categorical hierarchies, local user accounts, and asynchronous messaging.
NodeBB by itself contains a "common core" of basic functionality, while additional functionality and integrations are 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 "Harmony" theme gets you going right away, no coding experience required.
- 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 SCSS or CSS. NodeBB's base theme utilizes Bootstrap 5 as a frontend toolkit.
- 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 16 or greater (installation/upgrade instructions)
- MongoDB, version 3.6 or greater or Redis, version 2.8.9 or greater
- If you are using clustering you need Redis installed and configured.
- 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. If installing via the cloud (or using Docker), please see cloud-based installation documentation.
It is important to ensure that your NodeBB and database servers are secured. Bear these points in mind:
- 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
to127.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
- Set
- Use
iptables
to secure your server from unintended open ports. In Ubuntu,ufw
provides a friendlier interface to working withiptables
.- e.g. If your NodeBB is proxied, no ports should be open except 80 (and possibly 22, for SSH access)
Detailed upgrade instructions are listed in Upgrading NodeBB
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 [email protected].
- Demo
- Developer Community
- Documentation & Installation Instructions
- Help translate NodeBB
- NodeBB Blog
- Premium Hosting for NodeBB
- Unofficial IRC community – channel
#nodebb
on Libera.chat - Follow us on Twitter
- Like us on Facebook