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.
  • Pagination is not working

    4
    0 Votes
    4 Posts
    656 Views
    manaM
    @maciej-bąk-0 Maple leaf only works for subsequent registered users. The pattern has been recorded
  • Upgrade error: fullname.substr is not a function

    4
    0 Votes
    4 Posts
    775 Views
    E
    success! thanks
  • Remove login button

    Solved
    8
    0 Votes
    8 Posts
    1k Views
    J
    @pitaj said in Remove login button: @jaredbusch you could try something like this in your custom css in the ACP: a[href="/login"] { display: none !important; } That did it.
  • Missing translations, v 1.16.1

    7
    0 Votes
    7 Posts
    787 Views
    sivyS
    @julian I was using the "rebuild and restart" command in the Admin, but running nodebb build from the CLI finally worked.
  • Error when insert image

    Unsolved
    2
    0 Votes
    2 Posts
    422 Views
    barisB
    A connection error usually means there is a server side error, can you check the logs/output.log when uploading an image in the composer.
  • When user load avatar from imgur : error this operation is insecure

    1
    0 Votes
    1 Posts
    237 Views
    Thomas BoulengerT
    When user load avatar from imgur : error this operation is insecure on firefox you have this error : [image: 1610712481315-2021-01-15_08h56_42.png] on chrome [image: 1610712614183-2021-01-15_09h32_55.png] when user upload an image in a post or for avatar, there is this error [image: 1610712650654-2021-01-15_08h56_13.png]
  • Converting old posts and topic from HTML format to Markdown

    1
    0 Votes
    1 Posts
    277 Views
    Patrick AndersonP
    Title pretty much sums up the entire subject matter. We use to use HTML but are now using Markdown, is there an effective way to convert those old replies/threads into Markdown? Thanks!
  • Generating Bearer Token with Write API

    3
    0 Votes
    3 Posts
    1k Views
    S
    @dogs ah, i must have skimmed over that last part of the note. makes sense, thanks for pointing that out!
  • Pin topic - Returns 403 Forbidden for Global Moderators

    4
    0 Votes
    4 Posts
    512 Views
    UniversalSuperBoxU
    Great news! https://github.com/NodeBB/NodeBB/commit/c0fb1cb59cd76f46919a171862bc4015d1ff2d2a should fix the issue in v1.16.2
  • Reply/Upvote/Share Post from Category page

    15
    1 Votes
    15 Posts
    2k Views
    PitaJP
    @mickola well yes, the second hook should also work, but either one should work for what you're doing.
  • npm Error No valid versions available when attempting to upgrade NodeBB

    7
    0 Votes
    7 Posts
    6k Views
    E
    @pitaj The plugin was indeed in the dependencies section even though it was not installed on my nodeBB instance, weird. Removing it has fixed the error. Thank you so much for your help Here's how the package.json file looked like: { "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", "version": "1.16.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", "url": "https://github.com/NodeBB/NodeBB/" }, "main": "app.js", "scripts": { "start": "node loader.js", "lint": "npx eslint --cache ./nodebb .", "test": "npx nyc --reporter=html --reporter=text-summary npx mocha", "coverage": "nyc report --reporter=text-lcov > ./coverage/lcov.info", "coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage" }, "husky": { "hooks": { "pre-commit": "npx lint-staged", "commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS" } }, "lint-staged": { "*.js": [ "eslint --fix", "git add" ] }, "dependencies": { "@adactive/bootstrap-tagsinput": "^0.8.2", "@nodebb/bootswatch": "3.4.2", "ace-builds": "^1.4.9", "archiver": "^5.0.0", "async": "^3.2.0", "autoprefixer": "10.2.0", "bcryptjs": "2.4.3", "benchpressjs": "2.4.0", "body-parser": "^1.19.0", "bootbox": "4.4.0", "bootstrap": "^3.4.1", "chart.js": "^2.9.3", "cli-graph": "^3.2.2", "clipboard": "^2.0.6", "colors": "^1.4.0", "commander": "^6.0.0", "compare-versions": "3.6.0", "compression": "^1.7.4", "connect-ensure-login": "^0.1.1", "connect-flash": "^0.1.1", "connect-mongo": "3.2.0", "connect-multiparty": "^2.2.0", "connect-pg-simple": "^6.1.0", "connect-redis": "5.0.0", "cookie-parser": "^1.4.5", "cron": "^1.8.2", "cropperjs": "^1.5.6", "csurf": "^1.11.0", "daemon": "^1.1.0", "diff": "^5.0.0", "express": "^4.17.1", "express-session": "^1.17.0", "express-useragent": "^1.0.13", "graceful-fs": "^4.2.3", "helmet": "^4.0.0", "html-to-text": "6.0.0", "ipaddr.js": "^2.0.0", "jquery": "3.5.1", "jquery-deserialize": "2.0.0-rc1", "jquery-form": "4.3.0", "jquery-serializeobject": "1.0.0", "jquery-ui": "1.12.1", "jsesc": "3.0.2", "json2csv": "5.0.5", "jsonwebtoken": "^8.5.1", "less": "^3.11.1", "lodash": "^4.17.15", "logrotate-stream": "^0.2.6", "lru-cache": "6.0.0", "material-design-lite": "^1.3.0", "mime": "^2.4.4", "mkdirp": "^1.0.4", "mongodb": "3.6.3", "morgan": "^1.10.0", "mousetrap": "^1.6.5", "nconf": "^0.11.0", "nodebb-plugin-composer-default": "6.5.5", "nodebb-plugin-dbsearch": "4.1.2", "nodebb-plugin-emoji": "^3.3.0", "nodebb-plugin-emoji-android": "2.0.0", "nodebb-plugin-gamification": "^1.0.1", "nodebb-plugin-markdown": "8.12.4", "nodebb-plugin-mentions": "2.13.6", "nodebb-plugin-question-and-answer": "^0.7.7", "nodebb-plugin-require": "0.0.6", "nodebb-plugin-seo": "^1.0.0", "nodebb-plugin-seo-slug-friendly": "0.0.8", "nodebb-plugin-seo-thread": "^0.1.10", "nodebb-plugin-soundpack-default": "1.0.0", "nodebb-plugin-spam-be-gone": "0.7.7", "nodebb-rewards-essentials": "0.1.4", "nodebb-theme-lavender": "5.0.17", "nodebb-theme-persona": "10.3.17", "nodebb-theme-slick": "1.3.7", "nodebb-theme-vanilla": "11.3.10", "nodebb-widget-essentials": "5.0.2", "nodemailer": "^6.4.6", "nprogress": "0.2.0", "passport": "^0.4.1", "passport-http-bearer": "^1.0.1", "passport-local": "1.0.0", "pg": "^8.0.2", "pg-cursor": "^2.1.9", "postcss": "8.1.10", "postcss-clean": "1.1.0", "promise-polyfill": "^8.1.3", "prompt": "^1.0.0", "redis": "3.0.2", "request": "2.88.2", "request-promise-native": "^1.0.8", "requirejs": "2.3.6", "rimraf": "3.0.2", "rss": "^1.2.2", "sanitize-html": "^2.0.0", "semver": "^7.2.1", "serve-favicon": "^2.5.0", "sharp": "0.27.0", "sitemap": "^6.1.0", "slideout": "1.0.1", "socket.io": "3.0.5", "socket.io-adapter-cluster": "^1.0.1", "socket.io-client": "3.0.5", "socket.io-redis": "6.0.1", "sortablejs": "1.10.2", "spdx-license-list": "^6.1.0", "spider-detector": "2.0.0", "textcomplete": "^0.17.1", "textcomplete.contenteditable": "^0.1.1", "timeago": "^1.6.7", "tinycon": "0.6.8", "toobusy-js": "^0.5.1", "uglify-es": "^3.3.9", "validator": "13.5.2", "visibilityjs": "2.0.2", "winston": "3.3.3", "xml": "^1.0.1", "xregexp": "^4.3.0", "zxcvbn": "^4.4.2" }, "devDependencies": { "@apidevtools/swagger-parser": "10.0.2", "@commitlint/cli": "11.0.0", "@commitlint/config-angular": "11.0.0", "coveralls": "3.1.0", "eslint": "7.17.0", "eslint-config-airbnb-base": "14.2.1", "eslint-plugin-import": "2.22.1", "grunt": "1.3.0", "grunt-contrib-watch": "1.1.0", "husky": "4.3.6", "jsdom": "16.4.0", "lint-staged": "10.5.3", "mocha": "8.2.1", "mocha-lcov-reporter": "1.3.0", "nyc": "15.1.0", "smtp-server": "3.8.0" }, "bugs": { "url": "https://github.com/NodeBB/NodeBB/issues" }, "engines": { "node": ">=10" }, "maintainers": [ { "name": "Andrew Rodrigues", "email": "[email protected]", "url": "https://github.com/psychobunny" }, { "name": "Julian Lam", "email": "[email protected]", "url": "https://github.com/julianlam" }, { "name": "Barış Soner Uşaklı", "email": "[email protected]", "url": "https://github.com/barisusakli" } ], "nyc": { "exclude": [ "src/upgrades/*", "test/*" ] } }
  • Flags / reported (delete flags)

    Unsolved
    5
    0 Votes
    5 Posts
    673 Views
    Alex2019A
    @pitaj [image: 1610320007243-2021-01-11_010358.png]
  • Show mod notes for all user

    1
    0 Votes
    1 Posts
    225 Views
    T
    Hey! Admin/moderate can add moderate notes in user account and only admin/moder can watch this. How i can change this? I want show moderate notes to all user on forum, but without history changes notes.
  • All users' status is invisible

    Solved
    14
    0 Votes
    14 Posts
    2k Views
    murcsM
    @baris said in All users' status is invisible: The script @pitaj posted will set lastonline field of the user to Date.now if you don't want that remove it from the data object above. unfortunately we had to remove the other lastonline line(s) in setUsersOnline()too. function setUsersOnline(callback) { var batch = require('./src/batch'); batch.processSortedSet('users:joindate', function (uids, next) { // const lastonline = Date.now(); const data = { // lastonline, status: 'online', }; async.parallel([ cb => async.each(uids, (uid, next) => { db.setObject(`user:${uid}`, data, next); }, cb), // cb => db.sortedSetAdd('users:online', uids.map(() => lastonline), uids, cb), ], next); }, callback); } no idea why lastonline is manipulated by the script anyway.  to force a re-login to see it taking effect the forum was rebuild and restarted after running the script.
  • Breaking change for plugins

    Solved
    7
    0 Votes
    7 Posts
    852 Views
    D
    Somehow it was uninstalled. Weird. There was also a bug in the code. Maybe a node.js version issue.
  • Custom Home page

    2
    0 Votes
    2 Posts
    467 Views
    barisB
    https://github.com/NodeBB/NodeBB/pull/9180
  • Couldn't set default admin username and password in config.json

    12
    0 Votes
    12 Posts
    3k Views
    PitaJP
    @venkat what was the output of that command? NodeBB starts up fine?
  • A few questions about NodeBB

    3
    0 Votes
    3 Posts
    491 Views
    Wocek DerejczykW
    @Julian Thanks for your help.
  • Manually change digest settings

    Unsolved
    2
    0 Votes
    2 Posts
    427 Views
    PitaJP
    I think a script like this could work: 'use strict'; var nconf = require('nconf'); var async = require('async'); nconf.file({ file: 'config.json', }); nconf.defaults({ base_dir: __dirname, views_dir: './build/public/templates', }); var db = require('./src/database'); async.series([ db.init, process, ], (err) => { if (err) { console.error(err); process.exit(1); } process.exit(); }); const freq = 'off'; // or daily, weekly, monthly function process(callback) { var batch = require('./src/batch'); var User = require('./src/user'); batch.processSortedSet('users:joindate', function (uids, next) { async.parallel([ cb => async.each(uids, (uid, next) => { User.setSetting(uid, 'dailyDigestFreq', freq, next); }, cb), cb => async.each(uids, (uid, next) => { User.updateDigestSetting(uid, freq, next); }, cb), ], next); }, callback); } I think this should work to set all users to a specific frequency. Please backup your database before trying this. You might also need to fix a couple JS errors, I haven't tried this myself. Create a new file called process-users.js in your main nodebb directory (the one with config.json etc), paste that script into it, set the frequency you desire, and run node process-users from within that directory to set all of your users to the selected frequency.
  • a picture only category? (like instagram)

    2
    0 Votes
    2 Posts
    401 Views
    data-dataninjaD
    [image: 1609879032105-screen-shot-2021-01-05-at-8.32.19-pm-resized.png]