Let's keep a list of NodeBB installations here :
If you are running your own NodeBB let us know we will add it to the list!
Let's keep a list of NodeBB installations here :
If you are running your own NodeBB let us know we will add it to the list!
This NodeBB plugin pulls RSS feeds and creates topics in predefined categories.
A NodeBB Plugin to post topics using RSS feeds. Contribute to barisusakli/nodebb-plugin-rss development by creating an account on GitHub.
GitHub (github.com)
To customise options for the parser, please consult the "RSS" page in the administration panel, under the "Plugins" heading.
npm install nodebb-plugin-rss
Just merged the group-chat branch into master, it will be available in our next release which will most likely be 1.0.0.
There are some breaking changes and schema changes in this merge.
The upgrade script will go through all the chat messages and assign them to rooms. This might take a while depending on how many chats messages there are in the system. The upgrade script should show the progress in the console.
For all the changes check out this PR https://github.com/NodeBB/NodeBB/pull/3968/files
This plugin shows who is currently viewing a topic. This was a core feature that we removed a while ago, now it is back as a plugin
npm install nodebb-plugin-browsing-users
More info at https://github.com/barisusakli/nodebb-plugin-browsing-users
Notes
Currently only persona supports this, if you want to add it to your custom theme make these changes.
While this topic has some broad ideas about new features following 3.x, this topic will be about new features and quality of life improvements coming in 3.1.0.
Without further ado let see what's new:
Topic thumbnails is a feature that allows users to upload images as part of a topic.
In persona theme it only replaced the user avatar on topic lists but with harmony it is now displayed separately in the topic list. With 3.1 you can now see the topic thumbnails inside the topic and click on them to see large versions and switch between images.
Try it on this topic https://community.nodebb.org/topic/17113/persona-a-retrospective
Our chat message edit interface needed some Previously editing a message used the same input box as sending a message and would lead to confusion, what happens if you already have text in the send input? Now it is possible to edit in place like slack and other chat apps.
Prior to 3.1.0 the only way to edit the tags of a topic was to enter the topic and then click edit on the main post. Starting in 3.1.0 it is possible to use the topic tools dropdown and modify the tags of a topic. It is also available on topic lists like the recent page so you can tag multiple topics at the same time.
Not sure why this wasn't requested before seeing how we share alot of code on this forum. With 3.1.0 you will be able to copy the contents of code blocks with a single click.
Our error pages had the same design since 2016 which used the default bootstrap alert classes.
We have updated them to look nicer, we also included some of our animal friends. See which one you get.
When forking a topic it wasn't possible to specify the category for the new topic. This would lead to problems if the category is only intended for topics from admins.
Now you don't have to move the topic after forking and just select the target category in one step.
Widgets can have start and end date and they will be visible only during that time frame.
We also fixed some issues reported by our users since 3.0.0 release. You can see those here
Peace is a simple theme with a sidebar navigation, it comes with a builtin bootswatch theme switcher.
More info and source https://github.com/barisusakli/nodebb-theme-peace
I have run some tests to check the memory usage.
The redis INFO command was reporting 811kb at the beginning since I was running the tests on db1. An empty NodeBB installation starts with roughly 405kb of memory usage.
start 811.44 kb
**Users **
100 users 1.04M diff (254kb) per user = 2.54kb
1000 users 3.61M diff( 2,885kb) per user = 2.885kb
10000 users 29.88M diff( 29,786kb) per user = 2.97kb
Posts (500 chars each)
336 posts 30.71M diff(849kb) per post = 2.52kb
996 posts 32.70M diff(2,887kb) per post = 2.89kb
9995 posts 54.39M diff (25,098kb) per post = 2.51kb
The memory usage per user is roughly 3kbs at 10,000 users. This value goes up as we have other structures that grow as the user count grows.
The memory usage per post is about 2.5kbs per post, keep in mind the posts I created are all 500 characters long.
So for 2,000,000 posts and 400,000 users :
2,000,000 x 2.5kb + 400,000 x 3kb = 5.9gb
So theoretically 6gb should be enough.
Hope that helps.
We recently added a new system group called Global Moderators, this group has access to the moderator tools but can't access the ACP. They can also ban users. We will let this group see banned users and flagged posts as well.
We have assigned some users as global mods on this forum as well https://community.nodebb.org/groups/global-moderators.
If you think we missed someone or you want to be a global mod ask for it here.
We have been nominated for the 20i Foss Awards in the category "Best Community & Social"
If you want to support NodeBB you can vote below. Thanks everyone!
Enter description here.
(www.20i.com)
Here is another simple widget to add a new topic button into the new brand header widget area. This allows your users to create topics from anywhere in the forum:
The widget is super simple:
<div class="dropdown">
<button class="btn btn-sm btn-primary" data-bs-toggle="dropdown">New Topic</button>
<ul class="dropdown-menu dropdown-menu-end p-1">
<li><a href="#" class="dropdown-item rounded-1" onclick="app.newTopic(2);">General Discussion</a></li>
<li><a href="#" class="dropdown-item rounded-1" onclick="app.newTopic(3);">NodeBB Development</a></li>
<li><a href="#" class="dropdown-item rounded-1" onclick="app.newTopic(5);">Feature Requests</a></li>
<li><a href="#" class="dropdown-item rounded-1" onclick="app.newTopic(6);">Bug Reports</a></li>
</ul>
</div>
If you want you can use the widget code from https://community.nodebb.org/topic/17095/how-to-create-a-category-selector-in-navigation to have a more complex category dropdown. Don't forget to update your category names and ids in the app.newTopic(cid)
calls.
Note: Latest stable is v3.3.9
Hello everyone! We have just released NodeBB 3.3.0.
There are some exciting changes in this release so please read below to learn more.
As mentioned here 3.3.0 comes with a refactored chat system that allows administrators to create public rooms. Here are some more highlights:
The chat system also performs much better with a lot of users, if you were using nodebb-plugin-global-chat you can switch to public group chats and disable that plugin.
Try it out on our chats page here.
Thanks to @oplik0's work on this you can now use fontawesome pro icons and fontawesome is now loaded as an npm dependency like most of our other dependencies.
More info in this pull request and in our docs.
Bootstrap had a minor version upgrade from 5.2.3 to 5.3.1.
For all changes please refer to bootstrap's blog
https://blog.getbootstrap.com/2023/05/30/bootstrap-5-3-0/
https://blog.getbootstrap.com/2023/07/26/bootstrap-5-3-1/
There are some big changes to color modes and addition of new colors.
The acp got redesigned in 3.2.0 and all of the hardcoded colors were replaced with bootstrap theme colors.
Since bootstrap 5.3 comes with a built in dark mode, I've added support for this in the ACP. It can be toggled with a switch on the ACP dashboard and your preference gets saved in local storage.
We have some QoL improvements as well.
Please let us know if you notice any issues in the support thread https://community.nodebb.org/topic/17488/3-3-0-upgrade-support
Since NodeBB 1.18.6 it is possible to create dropdowns in the navigation (https://github.com/NodeBB/NodeBB/issues/9967). Before 1.18.6 to accomplish this you would have to use nodebb-plugin-customize to modify the menu template or use javascript to inject the markup after page load.
In this tutorial I will show you how to create a dropdown navigation item that replaces the default categories link with a dropdown. The final result will look like this:
First thing to do is to turn the navigation item into a dropdown, to do this head over to yourforum.com/admin/settings/navigation
, select the categories navigation item and toggle the dropdown
option.
Once this is done you can use the text area below the toggle to add your markup. To create a simple dropdown you would just add a list of dropdown items like so:
<li><a class="dropdown-item" href="/categories">All</a></li>
<li><a class="dropdown-item" href="/category/2/general-discussion">General Discussion</a></li>
Since you can input html here you can create custom dropdowns. To achieve the same dropdown as the first gif use the below html code, no css is necessary.
<li><a class="dropdown-item" href="/categories">All</a></li>
<li class="dropdown-divider">
<li><a class="dropdown-item" href="/category/2/general-discussion">General Discussion</a></li>
<li class="d-flex flex-column">
<a class="dropdown-item" href="/category/3/nodebb-development">NodeBB Development</a>
<div class="d-flex flex-column px-4">
<div class="d-flex align-items-center gap-1">
<i class="fa fa-fw fa-caret-right text-primary"></i>
<a class="btn-ghost-sm text-sm text-nowrap" href="/category/13/nodebb-blog">NodeBB Blog</a>
</div>
<div class="d-flex align-items-center gap-1">
<i class="fa fa-fw fa-caret-right text-primary"></i>
<a class="btn-ghost-sm text-sm text-nowrap" href="/category/5/feature-requests">Feature Requests</a>
</div>
<div class="d-flex align-items-center gap-1">
<i class="fa fa-fw fa-caret-right text-primary"></i>
<a class="btn-ghost-sm text-sm text-nowrap" href="/category/6/bug-reports">Bug Reports</a>
</div>
<div class="d-flex align-items-center gap-1">
<i class="fa fa-fw fa-caret-right text-primary"></i>
<a class="btn-ghost-sm text-sm text-nowrap" href="https://explore.transifex.com/nodebb/nodebb/">NodeBB Localization</a>
</div>
</div>
</li>
<li><a class="dropdown-item" href="/category/7/nodebb-plugins">NodeBB Plugins</a></li>
<li><a class="dropdown-item" href="#">...add more as needed...</a></li>
Modify the links to match your forum categories. To create dividers between sections you can use <li class="dropdown-divider">
Now you can navigate your categories without going to the home/categories page.
This plugin allows defining keywords and descriptions in the admin control panel. These keywords will display a tooltip when the user mouse overs them in posts. Keywords are also displayed at /glossary along with information about each keyword.
npm install nodebb-plugin-glossary
More info:
Thanks to @Ben-Lubar we now have replies to posts. https://github.com/NodeBB/NodeBB/pull/5050
Right now it only displays one level of replies but you can modify your theme and remove this conditional https://github.com/NodeBB/nodebb-theme-persona/blob/master/templates/partials/topic/post.tpl#L87-Lundefined then you will get nested replies as well.
You can update to master or wait for 1.3.0 to get the feature. It looks like this.
As usual please report any bugs you find on our tracker at github.
This plugin adds a new route to your NodeBB at /feed
.
This route shows a feed of posts from users that you follow. The page has 4 widget areas to further customize it. You can also filter by a user or category.
I installed the plugin on this forum to showcase it https://community.nodebb.org/feed
Contribute to NodeBB/nodebb-plugin-feed development by creating an account on GitHub.
GitHub (github.com)
Hello everyone !
I forgot to make an official announcement for 3.2.0, some of you are already using it .
3.2.0 was released last week and we followed it with 3.2.1 yesterday with some bug fixes.
3.2.0 has a lot of bug fixes but the biggest change in this release is the redesigned admin pages. The ACP was built over the past 9 years and a lot of the pages weren't consistent.
The new ACP comes with a sidebar for navigation and also has a better table of contents on settings page. The old one pushed all the content down the page making it harder to navigate different settings pages.
Some of the settings were also merged into other pages
Please report any issues and bugs you find
Let's take a stroll down memory lane and see how the chat system has evolved over the years.
The initial chat feature was built 10 years ago and used websockets to send text messages. The message history wasn't even saved in this first iteration and it was limited to 2 users.
This first version was built using popup windows. In 2014 a separate page for chats was built in https://github.com/NodeBB/NodeBB/issues/1788
In 2015 group chats were introduced allowing more than 2 users. https://community.nodebb.org/topic/7289/group-chat-changes
After this the chat page didn't see any drastic changes, the design stayed mostly the same until we released 3.0.0 with Harmony theme.
Even though we allowed group chats since 2015 the way it was built wasn't scalable to lots of users. It was meant to be used to create chats between a small number of users. Adding thousands of users to a single room would make it really slow due to how the data was stored and delivered to each user. Without going into too much detail; the previous system would naively try to deliver a new message to all users in the room even if they weren't online.
The upcoming 3.3.0 release will add support for public group chats and allow bigger rooms.
Administrators will be able to create public chat rooms and select which groups can access them. If you select registered-users
it would be accessible to everyone who registers to your forum.
Public rooms allow users to view the entire chat history unlike private rooms where you only see messages sent after you have joined.
You can test by going to https://community.nodebb.org/chats. Hopefully you won't see our admin chats
This feature is on the develop
branch for anyone wanting to test it on their dev forums.
Happy chatting
Note: Latest stable is v3.4.2
Hello!
We are back with another release that improves some of the features related to public chats that were added in 3.3.0.
Starting with 3.4.0 room owners and administrators can pin chat messages. Pinned messages appear in a separate area that can be accessed from the room header. You can pin important messages so they can be easily found later.
Public rooms were sending the same type of notification as private chats so it was hard to tell them apart. 3.4.0 improves this so the name of the room is visible in the notification for public chats.
A feature that was added long ago but got removed during one of our refactors is back. The changes in 3.3.0 allows implementing this much easier.
Admins and global moderators will be able to edit and delete other users chat messages.
Muted users won't be able to send chat messages.
This educates new users about the post queue if it is enabled and also discourages manual spammers since they will know their post isn't going to show up in the forum when they submit.
We have added the ability to change a users password and email from the ACP and reorganized the manage users dropdown.
As usual there are plenty of bug fixes in this release.
Full list of closed issues
Let us know if you run into any issues in our support thread
Isn't this how stack overflow works as well? The vote count is for the question itself. I took a look at that code and it wasn't trivial to implement this without a new function so I added that here: https://github.com/NodeBB/NodeBB/pull/11579.
If anyone wants to build it as a plugin it can be done using the function from the above pull request. I will leave the code required here.
In plugin.json add this hook, it gets fired whenever a list of topics is loaded.
{ "hook": "filter:topics.get", "method": "filterTopicsGet" }
Now the code that will recalculate the vote count from the posts of the topics:
const db = require.main.require('./src/database');
library.filterTopicsGet = async (hookData) => {
const voteData = await db.getSortedSetsMembersWithScores(
hookData.topics.map(t => `tid:${t.tid}:posts:votes`)
);
hookData.topics.forEach((t, index) => {
if (t) {
const allvotes = voteData[index].reduce((acc, cur) => acc + cur.score, 0);
t.votes += allvotes;
}
});
return hookData;
};
Now the vote displayed on the topic list will be the total number of votes from all the posts in the topic.