Skip to content

NodeBB Development

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

3.5k Topics 21.8k 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.

    798 Topics
    5k Posts
    crazycellsC

    when the forum is used as PWA, there is no easy way to navigate between pages...

    Yesterday, I was reading a post on the forum that mentioned another topic, I have encountered an issue when attempting to return to the original post. So, after reading the linked topic, I had to go to categories page and retrace my steps to locate the topic I was reading initially...

    Although this can be achieved by page control arrows on destop and mobile browsers, there is no easy way to achieve this on PWA... so I propose adding some page control buttons that appear at the bottom of the page when scrolled up. (maybe it can be integrated to post navigation bar but I believe those buttons should appear in all pages, not only in topics)

    Here is just a suggestion to distinguish them from other arrows...

    IMG_0029 copy.jpeg

    alternatively the arrows or rewind icons that YouTube uses can be used:

    IMG_0030.jpg

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

    @solmak

    Thank you for spending time on this, that was fast!

    he is quite speedy :rofl: @baris is known to create a new plugin in 3 minutes of it being discussed in the forum... lol

    Link Preview Image How? · Issue #2 · NodeBB/nodebb-plugin-best-posts

    How did you make a plugin in 3 minutes?

    favicon

    GitHub (github.com)

  • Focused discussion related to ActivityPub integration in NodeBB

    27 Topics
    231 Posts
    julianJ

    Please see below for details regarding the first Forasphere/Threadiverse Working Group meeting.

    Following up on the initial announcement post regarding the creation of a working group for threadiverse-type ActivityPub applications, I'm pleased to inform the community-at-large that we have scheduled our first meeting for Thursday, 4 April from 18:00 to 19:00 UTC.

    Thank you @[email protected] for organizing and providing an online meeting space:

    The video-call details are below. The goal of the meeting is to clarify what this group is, what its goals are, and how it will be run. As such, the working agenda is:

    Intro & housekeeping (e.g. consent to record). Who/what we are, nomenclature and overall expectations. Relationship with standards organisations and processes, including Fediverse Developers Network (FediDevs), W3C Social Web Community Group, and FEP process. Organisational, including software (i.e. mailing list), meeting times, facilitation and minutes.

    Topic: Forasphere/Threadiverse Technical Alignment Meeting
    Time: Apr 4, 2024 06:00 PM Universal Time UTC

    Join Zoom Meeting
    https://us06web.zoom.us/j/83819428627?pwd=zEE5EQXwPeEjCbqQNyJnaMR21ZMcSe.1

    If you have any suggestions on the agenda please respond to this post.

  • Help Translate NodeBB
  • 0 Votes
    5 Posts
    3k Views
    barisB

    Yeah I think this is the same issue as https://github.com/NodeBB/NodeBB/issues/3200. Only happens when javascript is minified.

  • voting not working

    10
    2 Votes
    10 Posts
    3k Views
    Rex HuangR

    The code is in src/socket.io/posts.js, but I can't find the topic_id and app.currentRoom you mention.

  • WebSocket connection error

    1
    0 Votes
    1 Posts
    831 Views
    Rex HuangR

    I got this error in browser client, don't know what it will take affect and how to solve?

    WebSocket connection to 'ws://<myhost>/socket.io/?EIO=3&transport=websocket&sid=wW5Z4UKR9a_ZHKHkAAAF' failed: Error during WebSocket handshake: Unexpected response code: 400

    which port it's using, I just open the port 4567 in firewall.

  • Javascript Error in the latest code.

    1
    0 Votes
    1 Posts
    1k Views
    A

    Hi,

    I have downloaded the 0.6.1 and 0.7.0 version of nodebb from github repository
    by using following commands.

    git clone -b v0.6.1 https://github.com/NodeBB/NodeBB.git nodebb git clone -b v0.7.0 https://github.com/NodeBB/NodeBB.git nodebb

    and install the NodeBB setup on ubuntu server.

    While Running the 0.6.1 we get following errors :
    1..Uncaught SyntaxError: Unexpected identifier(anonymous function)(nodebb.min.js:15688)
    2..Uncaught Error: Load timeout for modules: csrf,forum/footer
    http://requirejs.org/docs/errors.html#timeoutB (nodebb.min.js:12)
    3..Uncaught SyntaxError: Unexpected string(nodebb.min.js:1518)

    While Running the 0.7.0 we get following errors :

    Uncaught SyntaxError: Unexpected token function(nodebb.min.js:12999)

    These errors are not related to us but due these error user is not able to login or reply any comments.
    Error occurred only on Chrome 43 latest version.
    To reproduce issue please clear cache before hitting url or DISABLE cache through "Network" TAB

    Please let us know about how to resolved this issue.
    Thanks!!!

  • Upgrade?

    23
    0 Votes
    23 Posts
    12k Views
    wzrdtalesW

    This also only happens with v0.12.x if you downgrade to v0.10.x, then npm rebuild to rebuild the modules, do the upgrade with v0.10.x and upgrade to v0.12.x again and again npm rebuild everything works...

    @julian something is completely wrong together with v0.12.x

  • Has version 0.7.0 been released?

    3
    0 Votes
    3 Posts
    1k Views
    JenklerJ

    Yeah, I have updated all my sites to 0.7.x 🙂

  • 3 Votes
    15 Posts
    8k Views
    PitaJP

    @psychobunny

    You must code in your sleep, because the hook is definitely there already

  • Using NodeBB v0.7.x on Openshift

    3
    2 Votes
    3 Posts
    2k Views
    FireladF

    I'm finished! The pull request is at https://github.com/NodeBB/nodebb-english/pull/46

    If in case NodeBB didn't merge my pull request. 😉

  • NodeJS Versions

    1
    0 Votes
    1 Posts
    855 Views
    G

    I'm currently using:

    node -v v0.10.37

    on Ubuntu LTS 14.04.2.

    Has anyone upgraded from Chris Lea to Nodesource?
    Has anyone tested NodeBB with v0.10.38?

  • Multiple tag search

    2
    1 Votes
    2 Posts
    2k Views
    P

    @Richa-Singh No

  • Using PHP sessions with nodebb?

    28
    0 Votes
    28 Posts
    16k Views
    S

    @julian I see. Well I'm trying to basically port Vanilla's plugin to Nodebb, but I'm not sure if I'll be able to so it'd be cool if you devs had some official, simpler solution like it.

    Vanilla's is really easy. You give it the url for your registration and login page, and a url where it expects JSON to return for a users name, email, etc if they're logged in. If they're logged in, it creates a Vanilla forum user for them if one doesn't already exist. If they already on, it just logs them in normally as if they typed in their username and password on the Vanilla forums.
    So no matter what auth system you use, you can use your own API to output the JSON it wants, so long as the client-id and secret key supplied matches up as well. I have my own accounts system and it took me like <1 hour to read the documentation for how to set it up with Vanilla's and do a custom implementation.
    Reading the oauth plugins on the other hand, I'm rather clueless on what I need to do to make it work for my own, and what I need on my own site's end of things. Like looking at the BNET plugin, I can't figure out what "clientID: process.env.BNET_ID" and "clientSecret: process.env.BNET_SECRET" are, among other things. It's just too in depth for something that should be simpler.

    edit: Actually I see what the process.env are. They're user environment variables. But well, still, the oauth sso is way more complicated than I think a lot of people will want.
    Like if I want to replace the profile, I'd rather that have a separate plugin replacing the profile. Not part of the OAuth implementation. I imagine I can just cut that out while forking, but still. I wish there was something as simple as Vanilla's JSONP SSO.

    And as I look through more, I'm not seeing why authorizationURL, tokenURL, clientID, clientSecret can't just be on settings pages instead of constants, with an oauth/oauth2 radial.

  • 7 Votes
    25 Posts
    19k Views
    FireladF

    Didn't notice this - but I signed!

  • 0 Votes
    3 Posts
    1k Views
    S

    Thanks rbber. 0.7 dev version works great too.

  • Any good guides for color modify?

    1
    0 Votes
    1 Posts
    669 Views
    JenklerJ

    I am trying to modify vanilla style without modifying the source: CUSTOM CSS

    a { color: #222222; }
    a:hover { color: #444444; }

    .alert-warning
    {
    background-color: #eeeeee;
    border-color: #dddddd;
    color: #222222;
    }

    .btn-primary
    {
    color: #ffffff;
    background-color: #774653;
    border-color: #643b46;
    }

    .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open>.dropdown-toggle.btn-primary
    {
    color: #ffffff;
    background-color: #8a5261;
    border-color: #774653;
    }

    .btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.focus, .btn-primary.disabled:active, .btn-primary:active, .btn-primary.disabled.active, .btn-primary.active
    {
    background-color: #8a5261;
    border-color: #774653;
    }

    .btn-warning
    {
    color: #ffffff;
    background-color: #eb025a;
    border-color: #de0255;
    }

    .btn-warning:hover, .btn-warning:focus, .btn-warning.focus, .btn-warning:active, .btn-warning.active, .open>.dropdown-toggle.btn-warning
    {
    color: #ffffff;
    background-color: #f50660;
    border-color: #e9055b;
    }

    .nav-pills>li.active>a, .nav-pills>li.active>a:hover, .nav-pills>li.active>a:focus
    {
    color: #ffffff;
    background-color: #b4103a;
    }

    .btn-primary.active{background-color:#000000;border-color:#2e6da4}

    .btn-info
    {
    color: #ffffff;
    background-color: #444444;
    border-color: #222222;
    }

    .btn-info:hover, .btn-info:focus, .btn-info.focus, .btn-info:active, .btn-info.active, .open>.dropdown-toggle.btn-info
    {
    color: #ffffff;
    background-color: #774653;
    border-color: #643b46;
    }

    .account-username-box .open #profile
    {
    background-color: #666666;
    border-color: #643b46;
    }

    Is there any documentation on what class is doing what, and so on?

  • Problems with mobile

    1
    0 Votes
    1 Posts
    883 Views
    C

    I'm using Lavender Theme on the latest master branch.

    When using my mobile (tested iPhone 5s & 6),
    Categories/threads don't always load, it's not a very fast/friendly experience. Most of the time you get stuck on the grey overlay (the loading bit..)

    Only recently on the master branch it fixed the problem of not being able to login at all.

    ideally could have some more development for mobile

  • Set entire forum to invite only

    3
    0 Votes
    3 Posts
    2k Views
    S

    Gotcha. Thanks for the help.

  • Sharing SSO Sessions

    7
    1 Votes
    7 Posts
    3k Views
    P

    Haha or alternatively a feature request: ability to copy other people's canned responses 😉

  • Developer Focus: A series of blog posts

    Moved
    2
    4 Votes
    2 Posts
    3k Views
    A

    What about my YouTube plugin that was compatible but due to a recent PR seems to have issues? 😄 cough

  • 2 Votes
    51 Posts
    32k Views
    markkusM

    Updated to master & works like a charm ;).

  • 0.7.0 Breaking Changes

    13
    4 Votes
    13 Posts
    7k Views
    P

    I want to escape by default, to prevent accidental XSS. If you intentionally want to allow scripts then you should use double curly brackets

    I think its something I would rather break today than worry about it in future