Zero Second Downtime

NodeBB Blog
  • I hate waiting.

    I especially hate waiting for programs to compile when I want to make a small change, which is one of the reasons why I like web programming so much. While others would be waiting for their programs to compile, I could maintain my groove and concentration by immediately refreshing the browser to check my work before continuing.

    Node being pretty damn fast means I don't have to wait all that long either, although there's no getting around a lot of the pre-processing that needs to be done before a NodeBB instance is "ready".

    During a typical start-up, the following is done...

    Click here to see the full blog post

  • Utterly magnificent. I'd say that I loved you, but I might need to play that card later on. Take my upvote instead!

    In all seriousness though, this is awesome. No downtime is phenomenal, and practically unheard of.

  • Thanks @Ted! A lot of the inspiration for zero downtime stems from the same forums and CMS systems we're purportedly replacing*: Installing a plugin is literally a one-click affair, whereas in NodeBB, it's more like:

    1. Click "install" (or run npm install {plugin_name})
    2. Activate plugin
    3. Restart NodeBB
    4. Refresh the page to expose the new admin page for the plugin (if any)
    5. Optionally - Set up the plugin and restart NodeBB again

    Two restarts and a refresh just to install a plugin? I found that unacceptable. It was done this way because NodeBB is a server, not just an app sitting atop a server. That's part of the reason why it's fast, but also means the server needs to be restarted if things like routes, or minified scripts change.

    You might also remember a very very brief time when every time you activated a plugin or saved plugin settings, NodeBB would automatically restart. It become unbearable quickly, since restarts could take up more than 30 seconds for forums with many plugins enabled. With this new reloader system, I'm contemplating re-introducing automatic reloading for plugin activations.

    * Not that I consider NodeBB a CMS, but who am I to argue when people use NodeBB that way?

  • @julian, I dont think it's fair to define NodeBB. The platform is so flexible, it can be whatever you want or need it to be.

    Truthfully, it is neither a forum nor a discussion board, as it has too much potential to be summed up in such a manner. It certainly has elements of each, but it doesn't feel, to me anyways, to possess the limiting factors of each.

    If that makes any sense at all.

  • Super excited about these changes. NodeBB restarts get a bit old when you're trying to set up your forum and you're playing with all the plugins.

    • Not that I consider NodeBB a CMS, but who am I to argue when people use NodeBB that way?


    I am planning on using NodeBB as a full node platform πŸ‘

  • Very intresting the comunication between wordpress and nodebb forum.

  • Always nice with interesting blog updates even if they are 2 years old πŸ˜›

    I just say Cool Beans πŸ˜›

  • Always nice with interesting blog updates even if they are 2 years old ....

Suggested Topics

  • 8 Votes
    1 Posts

    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 πŸ˜‰

  • Migration Guide for v3

    NodeBB Blog
    3 Votes
    12 Posts

    @julian Thanks for the heads up.

  • 6 Votes
    5 Posts


    All my theme with persona is just CSS.
    if I update to V3, I recreate all my themes but it's a lot of work πŸ˜‰

  • GIFs support, ahoy!

    NodeBB Blog
    5 Votes
    10 Posts

    @crazycells seems Tenor gif started sending back larger gifs which caused the camo proxy to fail (the default max size is 5mb. I upped it to 10mb now).

    Stop linking to huge GIFs people πŸ˜†

    Kramer Seinfeld GIF

  • 5 Votes
    6 Posts

    @pramariena What would you like to know? What they've shared is what's in the blog post, but I am happy to answer questions.

    @omega I missed your questions, but it's a quick one. The whole moz project took only a couple months, and most of that was building out their custom theme and some custom functionality. Getting their forum imported into NodeBB was straightforward when using nodebb-plugin-import. We worked with @bentael for that one.

    One tricky bit was getting their URL redirections working. Their topic slugs were not easy to parse since they were at the root level (e.g. /community/q/this-is-the-topic-slug). This meant we had to create a redirect map for every one of their existing topics, and ensure they correctly routed to the new topic ID.