Skip to content

Technical Support

Need help with installing or configuring NodeBB? Look here.

4.8k Topics 26.7k 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. [image: youtubelogo.png] Setting up SendGrid mailer for NodeBB
  • NodeBB guides, how-to's and general tips and tricks

    83 Topics
    601 Posts
    Z
    not sure the plugin worked for firefox. saw a-z in the sort icon. when i used it, i expected the topics in the category would be sorted a-z. they werent
  • 25 Topics
    201 Posts
    eeeeeE
    I think you answered my point, by agreeing there are issues. I didn't even attempt to deploy nodebb, I had problems with much smaller projects! Nextjs routing was going through a change of design at the time, so perhaps that is less confusing now, but there were multiple other headaches. I would get build errors and issues with package management.
  • Express-session eror

    Solved
    4
    0 Votes
    4 Posts
    710 Views
    dave1904D
    I just encountered this error after upgrading to v2.8.1. Unfortunately cannot reproduce it, just seemed to pop in the logs.
  • Issues on the upgrade

    Unsolved
    2
    0 Votes
    2 Posts
    284 Views
    FrankMF
    In your redis config /etc/redis/redis.conf you find this # Note that you must specify a directory here, not a file name. dir /var/lib/redis In /var/lib/redis you found dump.rdb
  • How to delete spam users by email domain ?

    Unsolved
    2
    0 Votes
    2 Posts
    241 Views
    FrankMF
    Try nodebb-plugin-email-blacklist @julian Please add this function
  • How to turn on blog feature if it exists ?

    Unsolved
    1
    1 Votes
    1 Posts
    114 Views
    ningjiN
    I can click someone's profile and see the posts, but these posts seem not organized. Is there's a blog mode ?
  • Getting all user who upvote/downvote a post

    Solved
    3
    0 Votes
    3 Posts
    374 Views
    nullpointerN
    @baris how can I miss this piece of code Thanks for pointing me out! Solved! Happy new years
  • How to change Font type? (serif vs. sans-serif)

    Unsolved
    18
    0 Votes
    18 Posts
    2k Views
    crazycellsC
    @phenomlab said in How to change Font type? (serif vs. sans-serif): @crazycells they can only be used on websites if they are installed and included in the site you are viewing. This basically means that unless the font is available on he remote server, it won't display to other users if they do not have it installed (but would for you if you have it installed) This is why CSS on most websites will use system as a fallback so that the text is rendered even if the font cannot be found rather than the default of Times New Roman being displayed. System essentially uses whatever font is the default on the system viewing the website. In essence, under Windows, this would be SegoeUI. Under a Mac, it's of course different. Importing a font into your website isn't a difficult task. It's explained very well here https://stackoverflow.com/questions/14676613/how-to-import-google-web-font-in-css-file However, if you'd like to include a font that isn't from Google this is still possible, but the process differs slightly - and the caveat here is that not all fonts are created equal. Some do not lend themselves very well to rendering within web pages, and so it's always best to go for "web safe" versions. For example, just try "master of puppets" (yes, Metallica) and see what happens ! In an seriousness, if you need help with fonts etc, happy to help. thank you very much, this was helpful! I will let you know about the progress
  • Docker pull new image 2.7 => 2.8 : stay in 2.7

    Solved
    5
    0 Votes
    5 Posts
    912 Views
    A
    Finally i found a workaround : i overload the CMD but i need to reinstall plugins i use before run. It was indeed the named volume which is persistent, so it kept the old files. So the new docker-compose is like below (where user 1000 is the user on the Docker host who run NodeBB ). It does not use persistent volume for NodeBB but a simple bind of config.json, so everytime a new version is published, all files and directory will be recreated when pulled. For better performance i share static content with a named volume static with an nginx container. Note : it does not run setup, so usable for an existing installation. version: "3.3" services: redis: image: redis:alpine container_name: redis restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - redis:/data networks: - web nodebb2: image: nodebb/docker:latest container_name: nodebb restart: unless-stopped user: 1000:1000 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./config.json:/usr/src/app/config.json:ro - static:/usr/src/app/public networks: - web depends_on: redis: condition: service_started command : > sh -c "npm i nodebb-plugin-calendar nodebb-plugin-category-notifications nodebb-plugin-custom-pages nodebb-plugin-desktop-notifications nodebb-plugin-gravatar nodebb-plugin-imgur nodebb-plugin-newsletter nodebb-plugin-night-mode nodebb-plugin-ns-embed nodebb-plugin-poll nodebb-plugin-question-and-answer nodebb-plugin-anti-spam-question nodebb-plugin-google-analytics nodebb-plugin-soundpack-default && node ./nodebb upgrade; node ./nodebb start" networks: web: name: web volumes: redis: Nginx container config version: '3' services: reverse-proxy: container_name: reverse-proxy hostname: reverse-proxy image: nginx:latest restart: unless-stopped ports: - 80:80 volumes: - conf:/etc/nginx - html:/usr/share/nginx/html - nodebb-static:/usr/share/nginx/html/nodebb_static - /etc/localtime:/etc/localtime:ro environment: - NGINX_PORT=80 networks: - web networks: web: name: web volumes: conf: html: nodebb-static: external: name: nodebb_static
  • Updating timestamp on a static Topic post

    Unsolved
    3
    0 Votes
    3 Posts
    264 Views
    crazycellsC
    @crazycells of course you can also add the "updated post" to the top of the post as well, and keep the original/ old post below ...
  • Unread counter disappear after reload or logout/login

    Solved
    7
    0 Votes
    7 Posts
    489 Views
    barisB
    The quickreply functionality was added to persona by @julian here you should be able to apply to slick I guess. Keep in mind in v3.0 this functionality moved to core so all themes can add quick reply easier. https://github.com/NodeBB/NodeBB/blob/bootstrap5/public/src/modules/quickreply.js.
  • Error within custom pages after cluster enable

    Solved
    7
    2 Votes
    7 Posts
    521 Views
    phenomlabP
    @baris thanks. That is a possibility. Will keep an eye on it.
  • Improving NodeBB for High Forum Traffic

    Unsolved
    4
    1 Votes
    4 Posts
    588 Views
    julianJ
    Looking at those numbers, definitely. We typically opt for a horizontally scaled solution the moment we see the "concurrent users" metric hit 100. This is a conservative estimate, NodeBB can easily handle more, as you've experienced, but it is a good point to start thinking about solutions.
  • Invalid CSRF Token when Uploading File via REST API

    Moved
    6
    1 Votes
    6 Posts
    1k Views
    Jeremy SnyderJ
    Finally getting back around to testing this, still not having much luck. After digging through a lot of the code, and reading through the unit tests for the /api/post/upload endpoint, a user is logged in first. I have been trying to do this with only an API token, as this process is loading data from another system. I really don't want to have to store a password in addition to an API token when doing my data load. I guess my next question is: Is /api/post/upload even usable without logging in with a username/password?
  • 503 error: high level traffic

    Unsolved
    12
    1 Votes
    12 Posts
    1k Views
    barisB
    Yeah it doesn't have a link in the ACP, it's a page.
  • On Docker timezone ok but not ok for logs

    Moved Unsolved
    3
    0 Votes
    3 Posts
    314 Views
    barisB
    @PitaJ
  • Why not showing anchor ads?

    Unsolved
    2
    0 Votes
    2 Posts
    198 Views
    omegaO
    @none-anonymou Do you have auto ads on too? Personally I think anchor ads cause mayhem with UI elements on mobile. They are my least favourite ads type, as they crowd out the view and so I never use them.
  • Connecting to socket endpoint from a custom frontend

    Solved
    10
    0 Votes
    10 Posts
    2k Views
    oplik0O
    @nullpointer said in Connecting to socket endpoint from a custom frontend: var socket = io('https://dev-forum.domain.io', { transport: ["polling", "websocket"], path: "/socket.io/", extraHeaders: { withCredentials: true, cookie: 'express.sid=s%3Am0UuuyatTTSajjAnI5gGSukaJSHJaiKpIVhb3H7L.TW4c4vZn4blOnWV1gilF9HhMqFc9g9V7NnLLZHMAmFg; Domain=dev-forum.domain.io; Path=/; HttpOnly; SameSite=Lax', }, }); withCredentials is not a header - it's an option that should be on the same level in the settings object as extraHeaders. It should be used instead of setting the cookie header manually in the browser - but it will only work if the browser has the cookies for the website you're connecting to and needs explicit permission from it via headers (the Access-Control-Allow-* headers). This should look more like this: var socket = io('https://dev-forum.domain.io', { transport: ["polling", "websocket"], path: "/socket.io/", withCredentials: true, }); The reason the NodeBB test example works is that it's not ran inside a browser - NodeJS, as a server environment, has quite different security requirements than browsers and also just can't save credentials for each page (imagine what programming horror having this kind of mutable state in code would be...). I'm not sure what is your ultimate goal with this code, so that's why I mentioned the cookies as needed for server-side code.
  • How to disable local login at setup?

    Unsolved
    4
    0 Votes
    4 Posts
    319 Views
    Siddharth SardaS
    @julian I assumed that since this was a managed container environment where containers are ephemeral and can be moved around, I would need to run ./nodebb setup every time. Is my assumption wrong? Can I just run setup once to populate the database and then just run ./nodebb build the other times?
  • How to change font of persona theme

    Moved
    9
    0 Votes
    9 Posts
    2k Views
    S
    @phenomlab said in How to change font of persona theme: Should still be possible if you use the !important flag in CSS - for example Ah thx, good to know!
  • Post count : how can I meddle with what's counted

    8
    0 Votes
    8 Posts
    981 Views
    julianJ
    Learn something new every day
  • Headless Integration with Nodebb

    Unsolved
    4
    0 Votes
    4 Posts
    399 Views
    E
    I might be overthinking this and Auth0 is perfectly usable if I create that in React, and use the bearer token or whatever from Nodebb. The issue still remains though that I want that to be the only way to register for an account (in the custom registration page on the front-end.) I'll have to disable user registration with SSO I guess or hide that alternative login option... What's odd though is that only the alternative login works when an account is created that way. It looks like when the account is made, it gets added to the users list in nodebb, so you should be able to login with the email and password you registered with on Auth0, right?