Skip to content

Technical Support

Need help with installing or configuring NodeBB? Look here.

4.7k Topics 26.1k Posts

Subcategories


  • User documentation for NodeBB

    44 Topics
    44 Posts
    Jay MoonahJ

    One of the first important things to do after setting up NodeBB is to set up an emailer plugin. While NodeBB does include a local emailer, if your forum is particularly active we recommend using an third-party emailer such as SendGrid which provides better deliverability for sites that send a high volume of email. Setting up SendGrid in NodeBB is very easy.

    Open the administrative dashboard using the 'gear' icon on your forum. Open the Extend > Plugins menu, and select the Find Plugins tab. Use the search on the right. Type 'SendGrid' and the plugin should appear -- select Install when you see it. From Installed tab on the Plugins menu, search again for 'SendGrid' and select Activate. Activating the plugin will require a restart of your forum. To restart, select the Dashboard menu and press the Restart button to the right. After NodeBB restarts, the SendGrid plugin will be active.

    After you restart, there should be a item called Emailer (SendGrid) under the Plugins menu -- if you don't see this right away, try refreshing your browser.

    Sign up to SendGrid

    Go to the SendGrid website, open the pricing page and scroll to the bottom. Click on the link and create your free account. Once you've confirmed your SendGrid account via email, you should be able to login to the SendGrid website. On the left side of your SendGrid dashboard, open Settings and click on API Keys. Click the button in the top right to create a new key. Make sure that the key has Full Access for Send Mail and Alerts.  When you are done, the new key to your clipboard.

    Now, return to the SendGrid menu on your NodeBB admin panel. Paste the API key into the field, and save your changes. Now go back to the Dashboard to restart your forum one more time.

    SendGrid should now be working for your forum.

    YouTube Setting up SendGrid mailer for NodeBB

  • NodeBB guides, how-to's and general tips and tricks

    82 Topics
    599 Posts
    barisB

    Quick start plugin has an example on how to add a new api route https://github.com/NodeBB/nodebb-plugin-quickstart/blob/master/library.js#L40-L76.

    The hooks that are fired client side are for client side code in plugins. If you want to pass data from the client to the server you have two options.

    Create an api route like in quick start plugin Create a new socket event listener on the server side and use socket.emit() client side. Example here
  • 25 Topics
    196 Posts
    phenomlabP

    @baris updated to 3.7.2 and now just waiting for the plugin to be updated.

  • This topic is deleted!

    Unsolved
    2
    0 Votes
    2 Posts
    5 Views
  • Invalid CSRF token when authenticating via third-party app

    Unsolved
    7
    1 Votes
    7 Posts
    651 Views
    S

    @hnipps said in Invalid CSRF token when authenticating via third-party app:

    I'm trying to use NodeBB as a headless forum (i.e. just a REST API with a separate front end) but keep getting an "invalid csrf token" error when I try to authenticate.

    I've confirmed I can authenticate via the NodeBB UI on the same instance.

    I've also tried getting the NodeBB config and using the csrf token from there in my requests but it still does not work.

    My frontend is a NextJS app that rewrites all /api/:path* requests to http://<MY-NODE-BB-INSTANCE>/api/:path*. It also rewrites the auth paths.

    I can see the requests reach NodeBB but always get "invalid csrf token".

    I've verified that I can successfully call GET endpoints from my app, e.g. I can get the user list from /api/users.

    This is a 2 yr old thread, but @hnipps have you gone any further with the React/NextJS frontend with a headless nodebb?
    If you have made any progress I would love to contribute on the frontend build. It is daunting to start as a new project but if any foundations were laid I would love to jump in and build upon it.

  • 0 Votes
    14 Posts
    799 Views
    S

    Thank you @julian you always respond and seem motivated in helping the community. By proprietary I meant no effort has been made to provide clean working examples for the latest nodebb, as in maintenance of such documentation for people jumping into nodebb to replace their old system.

    You have a great product here, with so much more potential and I understand you may not have resources and funding to provide so much documentation and maintain working example of a plugin that does CRUD with custom fields/custom data, but it becomes harder for new adopters if they're unable to figure out cost effective way to replace their old platforms which have plethora of 3rd party add-ons and plugins especially dealing with custom fields and custom data.

    I take the blame as well, as part of the community it is partly our job to help keep a set of quickstart plugins, documentation, help available to enhance and optimize the process for new adopters. I hope the community gets together and makes something like a curated directory of available plugins, and tags and tracks what versions each supports, and tries to keep a version that supports the latest major version updates.

    Thank you for the wonderful product, I keep trying and finding an excuse to adopt it and hopefully I will get there sooner or later.

  • hiding "moved" badge from topic list

    Solved
    3
    1 Votes
    3 Posts
    64 Views
    crazycellsC

    @baris thank you very much. 👍

  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    9 Views
  • codes for the skins

    Solved
    3
    0 Votes
    3 Posts
    32 Views
    crazycellsC

    @baris said in codes for the skins:

    The css for these are coming from https://bootswatch.com/, you can find them in nodebb/node_modules/bootswatch/dist

    Thank a lot... I searched the GitHub and found them here:

    Link Preview Image bootswatch/dist at v5 · thomaspark/bootswatch

    Themes for Bootstrap. Contribute to thomaspark/bootswatch development by creating an account on GitHub.

    favicon

    GitHub (github.com)

  • How does nodebb-plugin-link-preview work exactly?

    Solved
    2
    0 Votes
    2 Posts
    61 Views
    julianJ

    Replied in the other linked topic.

  • Scaling Nodebb on Apache 2.4

    Unsolved
    6
    1 Votes
    6 Posts
    138 Views
    Nuran AkimbekN

    @julian yeah, database in the same VM. I already did re-indexing using this commands.

  • Quick Reply missing after upgrade to 3.7.0

    Unsolved
    18
    0 Votes
    18 Posts
    178 Views
    julianJ

    @B-738 spiders are bots, web crawlers, etc.

    You can restrict access to them for certain categories, for example.

  • 0 Votes
    4 Posts
    102 Views
    A

    As you named your postgres container db, you should use db as database host.

  • How can I change Redis configuration directory?

    Solved
    7
    0 Votes
    7 Posts
    1k Views
    Daniel Mendoza PupoD

    @julian I tried that route, and it still didn't work:
    -rw-r--r--. 1 redis redis 63122 Mar 6 13:56 /path/to/redis/redis.conf
    redis.service: (changed the path to my redis.conf)
    ExecStart=/usr/bin/redis-server /path/to/redis/redis.conf --supervised systems

    After changing the redis service file:
    systemctl daemon-reload
    systemctl start/restart redis
    ● redis.service - Redis persistent key-value database
    Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
    Drop-In: /etc/systemd/system/redis.service.d
    └─limit.conf
    Active: failed (Result: exit-code) since Thu 2024-03-07 16:18:06 EST; 7s ago
    Process: 3672598 ExecStop=/usr/libexec/redis-shutdown (code=exited, status=0/SUCCESS)
    Process: 3672869 ExecStart=/usr/bin/redis-server /path/to/redis/redis.conf --supervised systemd (code=exited, status=1/FAILURE)
    Main PID: 3672869 (code=exited, status=1/FAILURE)

    Mar 07 16:18:06 my-lab systemd[1]: Starting Redis persistent key-value database...
    Mar 07 16:18:06 my-lab redis-server[3672869]: 3672869:C 07 Mar 2024 16:18:06.355 # Fatal error, can't open config file '/path/to/redis/redis.conf'
    Mar 07 16:18:06 my-lab systemd[1]: redis.service: Main process exited, code=exited, status=1/FAILURE
    Mar 07 16:18:06 my-lab systemd[1]: redis.service: Failed with result 'exit-code'.
    Mar 07 16:18:06 my-lab systemd[1]: Failed to start Redis persistent key-value database.

  • 0 Votes
    2 Posts
    108 Views
    crazycellsC

    In case anyone else might be intrested, I fixed this color problem using these codes:

    .category-1 , .category-70 , .category-120 { .category-children-item .fa-caret-right { color: #ff9800 !important ; } } .category-111 { .category-children-item .fa-caret-right { color: #e91e63 !important ; } } .category-2 , .category-77 , .category-78 , .category-126 , .category-127 , .category-132 , .category-93 , .category-115 { .category-children-item .fa-caret-right { color: #4caf50 !important ; } }

    Basically I had to name each category separately... So, if there is any suggestion to shorten the code, I would love to hear... 🤣

  • Send email notification to admin from new registered users.

    Unsolved
    7
    0 Votes
    7 Posts
    111 Views
    barisB

    I've updated this plugin to nodebb 3.2 and up, new version is 3.0.0.

  • Bulk move users to group?

    Moved
    2
    1 Votes
    2 Posts
    70 Views
    barisB

    You would have to run a custom script like below. Place it in your nodebb folder, change the group name your special access group and run it with node myscript.js. It will add all users who have 10 posts or more into that group.

    'use strict'; const nconf = require('nconf'); nconf.file({ file: 'config.json', }); nconf.defaults({ base_dir: __dirname, views_dir: './build/public/templates', upload_path: 'public/uploads', }); const db = require('./src/database'); const groupName = '<Replace with your groupname>'; db.init((err) => { if (err) { console.log(`NodeBB could not connect to your database. Error: ${err.message}`); process.exit(); } addUsersToGroup((err) => { if (err) { console.error(err); process.exit(); } console.log('done'); process.exit(); }); }); async function addUsersToGroup(callback) { const user = require('./src/user'); const groups = require('./src/groups'); const batch = require('./src/batch'); // check if target group exists const exists = await groups.exists(groupName); if (!exists) { return callback(new Error('group does not exist')); } try { const now = Date.now(); await batch.processSortedSet('users:joindate', async (uids) => { const userData = (await user.getUsersData(uids)) .filter(u => u && u.postcount >= 10); await db.sortedSetAdd( `group:${groupName}:members`, userData.map(() => now), userData.map(u => u.uid) ); }, { batch: 500, }); const memberCount = await db.sortedSetCard(`group:${groupName}:members`); console.log('total count', memberCount); await db.setObjectField(`group:${groupName}`, 'memberCount', memberCount); await db.sortedSetAdd( 'groups:visible:memberCount', memberCount, groupName, ); callback(); } catch (err) { callback(err); } }
  • 0 Votes
    2 Posts
    51 Views
    phenomlabP

    @ursyaathi You'd be better placed using SSO for that - see https://community.nodebb.org/topic/17484/a-more-standardised-sso-implementation/2?_=1709300209014

  • Navigating to specific post

    Solved
    3
    0 Votes
    3 Posts
    91 Views
    R

    Thanks!, I was able to debug the issue.

  • Targeted Multi-User tagging

    Unsolved
    14
    0 Votes
    14 Posts
    424 Views
    crazycellsC

    @baris i know it is nothing urgent, but looking forward to having this addition 😄

    Link Preview Image Targeted Multi-User tagging · Issue #244 · julianlam/nodebb-plugin-mentions

    I suggest the usage of @everyone and @here to notify all users in the forum and on the topic respectively... please see this: https://community.nodebb.org/topic/17283/targeted-multi-user-tagging

    favicon

    GitHub (github.com)

  • Hiding a widget in a custom page

    Moved
    8
    0 Votes
    8 Posts
    198 Views
    Rui RamosR

    Thanks @baris that option worked like a charm.

  • Testing nodebb-plugin-sso-google

    Solved
    14
    0 Votes
    14 Posts
    415 Views
    ww9riversW

    @baris Thank you for the quick fix! It works now.

  • Clean Up Popular Topics

    Solved
    5
    2 Votes
    5 Posts
    86 Views
    T

    @baris gotcha, i'll give this one a shot. TY!