Skip to content

NodeBB Development

Stay tuned here to hear more about new releases and features of NodeBB!

3.5k Topics 22.1k Posts

Subcategories


  • Posts from the NodeBB Development Blog
    96 Topics
    778 Posts
    julianJ

    Occasionally, we will get asked whether there are any differences between our hosted service and the open source project.

    It is as though we are holding back some great features and only allowing our paying customers access them! Conversely, it could be assumed that because we are hosting the software for others, that we would somehow out of self-interest or for economic reasons, deliver an inferior version with limitations.

    I'd like to say upfront that this is not the case for NodeBB.

    When you use our hosted service, you receive the same great NodeBB software that you can get for free off of our GitHub repository.

    What we're selling is support, maintenance, upgrades, and peace of mind delivered by our world-class† support team.

    You definitely can host NodeBB on your own! We've strived for years to deliver a piece of software that runs lean and fast on minimal hardware, great docs (some contributed by other admins!) that help you get up to speed quickly, and a fantastic community that will help you if you get stuck.

    The reason I take this principled stand is simple — I think it's unfair when artificial limitations are placed on software just for the purpose of getting customers to pay more.

    We've seen all this time and time again:

    You can't install any plugin you want, just a select few from a small list You can only have X units (tickets, posts, etc) of whatever you're using You can only have X admins/owners You can't see any messages older than X days

    These limitations are all artificial, and serve to restrict the use of something to the bare minimum. Anything extra is — of course — available for the right price.

    We don't do that. We tell everybody that NodeBB is powerful enough to run huge communities, and we stand by it. We tell everybody that NodeBB is flexible enough to look and function however you want, and we stand by it.

    These are the real limitations we impose on our hosting service:

    Hard drive space for uploads are imposed by our upstream provider and are set, though we are happy to add additional drive volumes for a fee) We have soft "pageview" limits that any user on our hosting can exceed (in fact, many do). We set them purely as a benchmark for the point at which your NodeBB may slow down depending on the type of load that you get, and encourage dialogue to make sure that you're on the right plan (server resources, etc.) We do not allow shell access for security reasons (and if you needed it, you probably could self-host)

    So please do rest assured when I and others tell you that what you see is what you get. No more, no less. I'd rather everybody get to use the best of NodeBB, instead of serving a special feature-reduced version for others.

    † I'm going to go out on limb here and say that we're probably the most qualified people to maintain NodeBB. Feel free to disagree 😉

  • You have a cool idea about NodeBB? Post it here.

    804 Topics
    5k Posts
    omegaO

    Another approach is an exam short-cut, say a Ctrl-Click (or some similar combo) that instead excludes the clicked categories, thus you could filter out "ActivityPUb" (or any category for that matter) using the "All Categories" button.

    As well as offering the opposite function using a short key as above, there would probably be a need to give the user a visual UI toggle include/exclude on that menu, so whatever they select they know they are either including or excluding form the list view.

  • Found a bug? Why not make a bug report here?
    1k Topics
    7k Posts
    barisB

    Created an issue https://github.com/NodeBB/NodeBB/issues/12474

  • Focused discussion related to ActivityPub integration in NodeBB

    39 Topics
    420 Posts
    julianJ

    Thanks @[email protected] — I think this is (one of) the last piece before two-way federation will start working. Hopefully it will be merged and updated soon 😄

  • Help Translate NodeBB
  • 0 Votes
    1 Posts
    2k Views
    K

    Well, I have this issue that I need to do following things:
    1.Mongo Find
    2. Foreach
    3. MongoFind
    4 one more Foreach.

    because of asynchronaus mongo calls it is difficult to get proper result, however process.nextTick should handle this problem and still I have problem:

    function find(dbComm) {

    dbComm.forEach(function (current) { id= parseFloat(current.ID); db.anotherCollection.find({ ID: id}, function (error, result) { result.forEach(function (rank) { if (parseFloat(result.ID) == parseFloat(current.ID)) { rank.rank = 'Some calculations'; } }); }); });

    }

    app.get('/someparams', function (req, res) {

    db.collection.find().sort({ "rank": order }).skip(pagenumber).limit(5, function (err, result) { process.nextTick(function () { find(result, function () { }) }); process.nextTick(function () { res.send(result); }); });

    And on client side I should recive an array where the rank equals 'Some Calculations'
    but unfortunetly it is not...
    However...! If I add setTimeout(function(){}) before res.send(result) (and res.send(result) will be placed inside setTimeout) it actually does work and on client side I recive data with "Some Calculations" but it is just timeout and it fails sometimes and client dont recive "Some Calculations"
    if I put process.nextTick instead of setTimeout it doesnt work and "Some calc..." are not sent.

    Something is beeing done eralier then it should (probably in forEach in find() function)
    and my question is how to deal with it? maybe I should put process.nextTick in different function ?

  • Possible to use mysql database?

    9
    0 Votes
    9 Posts
    8k Views
    A

    @José-Ángel-Rey-Liñares "version": "0.1.0",

    Yepp, exceptionally out of date.

  • This topic is deleted!

    Locked
    1
    1 Votes
    1 Posts
    36 Views
  • 0 Votes
    2 Posts
    1k Views
    barisB

    You don't have to. NodeBB core makes sure all requests to those routes are from admins.

    Link Preview Image NodeBB/src/routes/index.js at master · NodeBB/NodeBB

    Node.js based forum software built for the modern web - NodeBB/src/routes/index.js at master · NodeBB/NodeBB

    favicon

    GitHub (github.com)

  • 1 Votes
    5 Posts
    2k Views
    X

    @julian said:

    What's it currently sorted by, initial post time? 😄

    This:

    @baris said:

    Sorted by the time you watched the topic.

  • Are developer docs falling behind?

    4
    0 Votes
    4 Posts
    2k Views
    julianJ

    @frissdiegurke is correct, we've moved the list of plugin hooks to the wiki.

    It needs a bit of standardisation, since new hook documentation was added rather haphazardly, but most (if not all) of the hooks should be there. If not, they can be added by anybody who wants to, by editing the wiki doc itself.

  • 0 Votes
    1 Posts
    1k Views
    J

    Hello All,
    I'm pretty sure this isn't a feature, besides on install. But is it possible to tell of plugin compatibility before updating your NodeBB instance? Just putting this out there for example, WordPress:
    wp-example.png

    If we can automatically update in the future, this might be a good suggestion.

  • Wrapping nodebb using android WebView

    5
    0 Votes
    5 Posts
    3k Views
    tgezginisT

    @quahfamili said:

    @julian

    I solved it, its okay already 😛

    How did you solve this problem? I have this problem too.

  • Add infinitescroll to custom page

    2
    0 Votes
    2 Posts
    2k Views
    PitaJP

    @learner are you taking about using the infinite scroll module? Or implementing your own infinite scroll?

  • Redirection to route in plugin

    8
    0 Votes
    8 Posts
    4k Views
    L

    Up,
    Can anyone help me, please?

  • 1 Votes
    12 Posts
    7k Views
    Dustin FalgoutD

    @julian Right, I understand. It just makes it difficult to migrate from a more traditional forum like phpBB (which is the most, or perhaps second-most, used forum software today). I think making it easier to migrate from phpBB's format could only help nodeBB gain more ground 🙂 Here is the github issue I opened a couple weeks ago. It was closed, though I hope we can reopen it. I'm more than willing to contribute. Let me know if there's anything I can do.

    Link Preview Image Posts from child categories are not shown on the home page. · Issue #2549 · NodeBB/NodeBB

    This becomes an issue when the parent category does not contain any posts directly, but has several child categories. Is there a way to adjust this behavior? If anyone could point me in the right direction it would be much appreciated! 😄

    favicon

    GitHub (github.com)

  • 2 Votes
    7 Posts
    5k Views
    X

    @psychobunny 🙂

  • What is the problem in this library.js?

    3
    0 Votes
    3 Posts
    1k Views
    L

    Thanks, problem solved, it was the nodebb version. Now I have 0.6.1

  • plugin.json changes

    1
    0 Votes
    1 Posts
    901 Views
    barisB

    As per https://github.com/NodeBB/NodeBB/issues/2578

    The properties id, name and description in plugin.json will be phased out in 0.6.1.

    You can still have them but the values from package.json will be used.

  • 0 Votes
    3 Posts
    2k Views
    L

    Thanks, I have just solved the error.

    But the code doesn't work for now. How can I do execute a function when user go to topic?

    Thanks

  • 0 Votes
    2 Posts
    2k Views
    MegaM

    Sorry for bothering guys, I found it in the source code.

    There are two hooks already:

    action:group.join action:group.leave

    Both of them takes only one argument:

    { groupName: groupName, uid: uid }

    join: https://github.com/NodeBB/NodeBB/blob/master/src/groups.js#L633-L675
    leave: https://github.com/NodeBB/NodeBB/blob/master/src/groups.js#L711-L742

    Exactly what I'm looking for!

    Edit:
    action:groups.* hooks in the source code were renamed to
    action:group.*

  • Custom Reputation Plugin

    1
    1 Votes
    1 Posts
    1k Views
    M

    I was looking through the docs, but could not find this. Sorry if I missed it.

    Is there a way to see how exactly the reputation system works, without browsing the source code?

    If I wanted to implement some very specific rules, how easy/hard is it to customize? Could I just write my own reputation plugin and swap it out?

  • Template/logic: IF ELSE inside another IF ELSE

    3
    0 Votes
    3 Posts
    2k Views
    agarcia17A

    @Baerrus oh ok thank you 🙂

  • npm ERR! extraneous: [email protected]

    5
    0 Votes
    5 Posts
    4k Views
    BaerrusB

    I got it, now that I understand what installs redis.

    The way I upgrade is I create a brand new workspace, install a new version of nodebb, copy over the config.json. I think that makes sense in real deployment scenario versus executing "git pull" in place. This way I retain a fully functional prior version installation I can fall back to in a instant should something fail with a new version.

  • header.tpl changes

    3
    2 Votes
    3 Posts
    3k Views
    BaerrusB

    @baris I started working on a more SEO friendly theme/plugin. I hoped I could keep all the changes within a lavender derived theme, but I cannot. Some changes will be in the core. FOr example, server side rendered pagination. I am looking for some advice on how to coordinate making changes in a theme and core nodebb?