NodeBB v4.3.0 — Remote Categories are a go!
-
We're happy to announce the release of NodeBB v4.3.0, which contains native support for remote categories, bringing better integration with other NodeBB forums, WordPress, Lemmy, PieFed, mbin, and other "group-based" implementors on the ActivityPub network!
What does this mean?
It means that starting with this release, you will be able to "browse" to other categories simply by searching for them in your
/world
page. Just like with regular categories, you can "track" or "watch" remote categories — the former will show up in your/unread
page, and the latter will also send notifications on new topics.Prior to this change, remote categories were rendered just like regular users, and there was some confusion over who was a user and who was a publisher.
The integration with blog platforms like WordPress also mean you'll be able to use NodeBB kind of like a feed reader, with built-in notifications when new content is received. We're hoping to also extend this to support Ghost as well
Some examples of categories loaded remotely in this NodeBB:
- "Fediverse" on piefed.social (running Piefed) —
@fediverse@piefed.social
- "ActivityPub Protocol" on SocialHub (running Discourse) —
@protocol@socialhub.activitypub.rocks
- Vivaldi Browser Blog (running WordPress) —
@blog@vivaldi.com
- "General Climbing News" on community.openbeta.io (running NodeBB) —
@news@community.openbeta.io
- Fediverse memes (running Lemmy) —
@fedimemes@feddit.uk
Other notable changes in v4.3.0
Chat allow/deny list
There was some desire for more fine-grained support for allow/deny lists for the chat system. This is now available in v4.3.0. Per @baris:
> Leaving allow list empty would mean anyone who is not in deny list can message you.
> Leaving deny list empty would mean anyone who is in allow list can message you.
> If both are empty everyone can message you.
> Current restrictChat toggle can be turned into a toggle to disable chat completely.
> Upgrade script can add the users following to the allow list if they have restrictChat turned on.Show number of topic watchers
You are now able to see the number of users watching a specific topic alongside the existing stats (posts, views, etc.)
Accessibility updates
- Avatar background colours are now selectable via keyboard navigation
- Post drafts are now accessible via keyboard navigation
... and of course
- Bug fixes and security updates
- "Fediverse" on piefed.social (running Piefed) —
-
-
@sweetp did you run
git fetch
? -
@Julian thx!
but now im getting this error:
npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: nodebb@4.3.0 npm error Found: eslint@8.57.1 npm error node_modules/eslint npm error peer eslint@"^6.0.0 || ^7.0.0 || >=8.0.0" from @eslint-community/eslint-utils@4.3.0 npm error node_modules/@eslint-community/eslint-utils npm error @eslint-community/eslint-utils@"^4.2.0" from eslint@8.57.1 npm error peer eslint@"^7.32.0 || ^8.2.0" from eslint-config-airbnb-base@15.0.0 npm error node_modules/eslint-config-airbnb-base npm error eslint-config-airbnb-base@"15.0.0" from eslint-config-nodebb@0.2.1 npm error node_modules/eslint-config-nodebb npm error dev eslint-config-nodebb@"1.1.4" from the root project npm error 3 more (eslint-config-nodebb, eslint-plugin-import, nodebb-plugin-2factor) npm error npm error Could not resolve dependency: npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Conflicting peer dependency: eslint@9.25.1 npm error node_modules/eslint npm error peer eslint@">=9.0.0" from @stylistic/eslint-plugin-js@4.2.0 npm error node_modules/@stylistic/eslint-plugin-js npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error .../.npm/_logs/2025-05-01T04_18_44_098Z-eresolve-report.txt npm error A complete log of this run can be found in: .../.npm/_logs/2025-05-01T04_18_44_098Z-debug-0.log Error installing dependencies! message: Command failed: npm install --omit=dev stdout: null stderr: null .../NodeBB/src/cli/package-install.js:138 throw e; ^ Error: Command failed: npm install --omit=dev at genericNodeError (node:internal/errors:983:15) at wrappedFn (node:internal/errors:537:14) at checkExecSyncError (node:child_process:882:11) at Object.execSync (node:child_process:954:15) at pkgInstall.installAll (.../NodeBB/src/cli/package-install.js:129:9) at Object. (.../NodeBB/src/cli/index.js:50:18) at Module._compile (node:internal/modules/cjs/loader:1734:14) at Object..js (node:internal/modules/cjs/loader:1899:10) at Module.load (node:internal/modules/cjs/loader:1469:32) at Function._load (node:internal/modules/cjs/loader:1286:12) { status: 1, signal: null, output: [ null, null, null ], pid: 2626367, stdout: null, stderr: null }
-
@julian@community.nodebb.org I'm getting this error when running ./nodebb upgrade:
npm error Could not resolve dependency:
npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project
Error installing dependencies!
message: Command failed: npm install --omit=dev
stdout: null
stderr: null
/home/nodebb/nodebb/src/cli/package-install.js:138
throw e;
^ -
If that's NodeBB 4.3.0 already, I think I've spotted a bug: BBcode mostly goes out as BBcode instead of converted into HTML which would then be rendered accordingly.
Here on Hubzilla, in-line code and code blocks are rendered as such. But at least headlines, lists, images, quotes and links aren't; instead, I see the raw BBcode with no formatting. Hubzilla uses BBcode for formatting itself, but internally, and it doesn't expect BBcode to come in via ActivityPub. -
@Julian thx!
but now im getting this error:
npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: nodebb@4.3.0 npm error Found: eslint@8.57.1 npm error node_modules/eslint npm error peer eslint@"^6.0.0 || ^7.0.0 || >=8.0.0" from @eslint-community/eslint-utils@4.3.0 npm error node_modules/@eslint-community/eslint-utils npm error @eslint-community/eslint-utils@"^4.2.0" from eslint@8.57.1 npm error peer eslint@"^7.32.0 || ^8.2.0" from eslint-config-airbnb-base@15.0.0 npm error node_modules/eslint-config-airbnb-base npm error eslint-config-airbnb-base@"15.0.0" from eslint-config-nodebb@0.2.1 npm error node_modules/eslint-config-nodebb npm error dev eslint-config-nodebb@"1.1.4" from the root project npm error 3 more (eslint-config-nodebb, eslint-plugin-import, nodebb-plugin-2factor) npm error npm error Could not resolve dependency: npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Conflicting peer dependency: eslint@9.25.1 npm error node_modules/eslint npm error peer eslint@">=9.0.0" from @stylistic/eslint-plugin-js@4.2.0 npm error node_modules/@stylistic/eslint-plugin-js npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error .../.npm/_logs/2025-05-01T04_18_44_098Z-eresolve-report.txt npm error A complete log of this run can be found in: .../.npm/_logs/2025-05-01T04_18_44_098Z-debug-0.log Error installing dependencies! message: Command failed: npm install --omit=dev stdout: null stderr: null .../NodeBB/src/cli/package-install.js:138 throw e; ^ Error: Command failed: npm install --omit=dev at genericNodeError (node:internal/errors:983:15) at wrappedFn (node:internal/errors:537:14) at checkExecSyncError (node:child_process:882:11) at Object.execSync (node:child_process:954:15) at pkgInstall.installAll (.../NodeBB/src/cli/package-install.js:129:9) at Object. (.../NodeBB/src/cli/index.js:50:18) at Module._compile (node:internal/modules/cjs/loader:1734:14) at Object..js (node:internal/modules/cjs/loader:1899:10) at Module.load (node:internal/modules/cjs/loader:1469:32) at Function._load (node:internal/modules/cjs/loader:1286:12) { status: 1, signal: null, output: [ null, null, null ], pid: 2626367, stdout: null, stderr: null }
@sweetp Same error on my installation
npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: nodebb@4.3.0 npm error Found: eslint@8.57.1 npm error node_modules/eslint npm error peer eslint@"^6.0.0 || ^7.0.0 || >=8.0.0" from @eslint-community/eslint-utils@4.4.0 npm error node_modules/@eslint-community/eslint-utils npm error @eslint-community/eslint-utils@"^4.2.0" from eslint@8.57.1 npm error peer eslint@"^7.32.0 || ^8.2.0" from eslint-config-airbnb-base@15.0.0 npm error node_modules/eslint-config-airbnb-base npm error eslint-config-airbnb-base@"15.0.0" from eslint-config-nodebb@0.2.1 npm error node_modules/eslint-config-nodebb npm error dev eslint-config-nodebb@"1.1.4" from the root project npm error 3 more (eslint-config-nodebb, eslint-plugin-import, nodebb-plugin-2factor) npm error npm error Could not resolve dependency: npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Conflicting peer dependency: eslint@9.25.1 npm error node_modules/eslint npm error peer eslint@">=9.0.0" from @stylistic/eslint-plugin-js@4.2.0 npm error node_modules/@stylistic/eslint-plugin-js npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error /home/user_radforum/.npm/_logs/2025-05-01T08_35_32_095Z-eresolve-report.txt npm error A complete log of this run can be found in: /home/user_radforum/.npm/_logs/2025-05-01T08_35_32_095Z-debug-0.log Error installing dependencies!
-
@julian I'm not sure if you know about this, but your entire post appears both as a content warning and the expanded post, both contain the exact same text. Is that issue known? btw, I'm on go to social, so perhaps that could be a factor too?
-
Those having an issue with eslint, can just remove the node_modules folder in their nodebb folder and run
./nodebb upgrade
again. -
@baris it's still crashing for me
$ rm -rf node_modules $ ./nodebb upgrade npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: nodebb@4.3.0 npm error Found: eslint@8.57.1 npm error node_modules/eslint npm error peer eslint@"^6.0.0 || ^7.0.0 || >=8.0.0" from @eslint-community/eslint-utils@4.3.0 npm error node_modules/@eslint-community/eslint-utils npm error @eslint-community/eslint-utils@"^4.2.0" from eslint@8.57.1 npm error peer eslint@"^7.32.0 || ^8.2.0" from eslint-config-airbnb-base@15.0.0 npm error node_modules/eslint-config-airbnb-base npm error eslint-config-airbnb-base@"15.0.0" from eslint-config-nodebb@0.2.1 npm error node_modules/eslint-config-nodebb npm error dev eslint-config-nodebb@"1.1.4" from the root project npm error 3 more (eslint-config-nodebb, eslint-plugin-import, nodebb-plugin-2factor) npm error npm error Could not resolve dependency: npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Conflicting peer dependency: eslint@9.25.1 npm error node_modules/eslint npm error peer eslint@">=9.0.0" from @stylistic/eslint-plugin-js@4.2.0 npm error node_modules/@stylistic/eslint-plugin-js npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error .../.npm/_logs/2025-05-01T13_28_21_731Z-eresolve-report.txt npm error A complete log of this run can be found in: .../.npm/_logs/2025-05-01T13_28_21_731Z-debug-0.log Error installing dependencies! message: Command failed: npm install --omit=dev stdout: null stderr: null .../NodeBB/src/cli/index.js:65 throw e; ^ Error: Command failed: npm install --omit=dev at genericNodeError (node:internal/errors:983:15) at wrappedFn (node:internal/errors:537:14) at checkExecSyncError (node:child_process:882:11) at Object.execSync (node:child_process:954:15) at pkgInstall.installAll (.../NodeBB/src/cli/package-install.js:129:9) at Object. (.../NodeBB/src/cli/index.js:18:19) at Module._compile (node:internal/modules/cjs/loader:1734:14) at Object..js (node:internal/modules/cjs/loader:1899:10) at Module.load (node:internal/modules/cjs/loader:1469:32) at Function._load (node:internal/modules/cjs/loader:1286:12) { status: 1, signal: null, output: [ null, null, null ], pid: 2729523, stdout: null, stderr: null } Node.js v23.11.0
-
Do you have
eslint-config-airbnb-base
in your package.json? We don't use that dependency anymore so it shouldn't be in package.json. -
@baris nope:
{ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", "version": "4.3.0", "homepage": "https://www.nodebb.org", "repository": { "type": "git", "url": "https://github.com/NodeBB/NodeBB/" }, "main": "app.js", "scripts": { "start": "node loader.js", "lint": "eslint --cache ./nodebb .", "test": "nyc --reporter=html --reporter=text-summary 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" ] }, "dependencies": { "@adactive/bootstrap-tagsinput": "0.8.2", "@fontsource/inter": "5.2.5", "@fontsource/poppins": "5.2.5", "@fortawesome/fontawesome-free": "6.7.2", "@isaacs/ttlcache": "1.4.1", "[@nodebb](https://community.nodebb.org/user/nodebb)/spider-detector": "2.0.3", "@popperjs/core": "2.11.8", "@resvg/resvg-js": "2.6.2", "@socket.io/redis-adapter": "8.3.0", "@textcomplete/contenteditable": "0.1.13", "@textcomplete/core": "0.1.13", "@textcomplete/textarea": "0.1.13", "ace-builds": "1.40.1", "archiver": "7.0.1", "async": "3.2.6", "autoprefixer": "10.4.21", "bcryptjs": "3.0.2", "benchpressjs": "2.5.5", "body-parser": "2.2.0", "bootbox": "6.0.3", "bootstrap": "5.3.5", "bootswatch": "5.3.5", "chalk": "4.1.2", "chart.js": "4.4.9", "cli-graph": "3.2.2", "clipboard": "2.0.11", "commander": "13.1.0", "compare-versions": "6.1.1", "compression": "1.8.0", "connect-flash": "0.1.1", "connect-mongo": "5.1.0", "connect-multiparty": "2.2.0", "connect-pg-simple": "10.0.0", "connect-redis": "8.0.3", "cookie-parser": "1.4.7", "cron": "4.3.0", "cropperjs": "1.6.2", "csrf-sync": "4.1.0", "daemon": "1.1.0", "diff": "7.0.0", "esbuild": "0.25.3", "express": "4.21.2", "express-session": "1.18.1", "express-useragent": "1.0.15", "fetch-cookie": "3.1.0", "file-loader": "6.2.0", "fs-extra": "11.3.0", "graceful-fs": "4.2.11", "helmet": "7.2.0", "html-to-text": "9.0.5", "imagesloaded": "5.0.0", "ioredis": "5.6.1", "ipaddr.js": "2.2.0", "jquery": "3.7.1", "jquery-deserialize": "2.0.0", "jquery-form": "4.3.0", "jquery-serializeobject": "1.0.0", "jquery-ui": "1.14.1", "jsesc": "3.1.0", "json2csv": "5.0.7", "jsonwebtoken": "9.0.2", "lodash": "4.17.21", "logrotate-stream": "0.2.9", "lru-cache": "10.4.3", "mime": "3.0.0", "mkdirp": "3.0.1", "mongodb": "6.16.0", "morgan": "1.10.0", "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.13.0", "nodebb-plugin-2factor": "7.5.9", "nodebb-plugin-composer-default": "10.2.49", "nodebb-plugin-dbsearch": "6.2.15", "nodebb-plugin-emoji": "6.0.2", "nodebb-plugin-emoji-android": "4.1.1", "nodebb-plugin-imgur": "^4.1.0", "nodebb-plugin-markdown": "13.1.1", "nodebb-plugin-mentions": "4.7.3", "nodebb-plugin-ntfy": "1.7.7", "nodebb-plugin-soundpack-default": "^3.0.1", "nodebb-plugin-spam-be-gone": "2.3.1", "nodebb-plugin-web-push": "0.7.3", "nodebb-rewards-essentials": "1.0.1", "nodebb-theme-harmony": "2.1.11", "nodebb-theme-harmony-sweetp": "git+https://git@github.com/sweetppro/nodebb-theme-sweetp.git#master", "nodebb-theme-lavender": "7.1.18", "nodebb-theme-peace": "2.2.40", "nodebb-theme-persona": "14.1.9", "nodebb-theme-slick": "2.0.2", "nodebb-theme-vanilla": "12.1.19", "nodebb-widget-essentials": "7.0.36", "nodemailer": "6.10.1", "nprogress": "0.2.0", "passport": "0.7.0", "passport-http-bearer": "1.0.1", "passport-local": "1.0.0", "pg": "8.15.6", "pg-cursor": "2.14.6", "postcss": "8.5.3", "postcss-clean": "1.2.0", "progress-webpack-plugin": "1.0.16", "prompt": "1.3.0", "rimraf": "5.0.10", "rss": "1.2.2", "rtlcss": "4.3.0", "sanitize-html": "2.16.0", "sass": "1.87.0", "satori": "0.12.2", "semver": "7.7.1", "serve-favicon": "2.5.0", "sharp": "0.32.6", "sitemap": "8.0.0", "socket.io": "4.8.1", "socket.io-client": "4.8.1", "sortablejs": "1.15.6", "spdx-license-list": "6.10.0", "terser-webpack-plugin": "5.3.14", "textcomplete": "0.18.2", "textcomplete.contenteditable": "0.1.1", "timeago": "1.6.7", "tinycon": "0.6.8", "toobusy-js": "0.5.1", "tough-cookie": "5.1.2", "validator": "13.15.0", "webpack": "5.99.7", "webpack-merge": "6.0.1", "winston": "3.17.0", "workerpool": "9.2.0", "xml": "1.0.1", "xregexp": "5.1.2", "yargs": "17.7.2", "zxcvbn": "4.4.2" }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", "@commitlint/cli": "19.8.0", "@commitlint/config-angular": "19.8.0", "coveralls": "3.1.1", "@eslint/js": "9.25.1", "@stylistic/eslint-plugin-js": "4.2.0", "eslint-config-nodebb": "1.1.4", "eslint-plugin-import": "2.31.0", "grunt": "1.6.1", "grunt-contrib-watch": "1.1.0", "husky": "8.0.3", "jsdom": "26.1.0", "lint-staged": "15.5.1", "mocha": "11.1.0", "mocha-lcov-reporter": "1.3.0", "mockdate": "3.0.5", "nyc": "17.1.0", "smtp-server": "3.13.6" }, "bugs": { "url": "https://github.com/NodeBB/NodeBB/issues" }, "engines": { "node": ">=18" }, "maintainers": [ { "name": "Julian Lam", "email": "julian@nodebb.org", "url": "https://github.com/julianlam" }, { "name": "Barış Soner Uşaklı", "email": "baris@nodebb.org", "url": "https://github.com/barisusakli" }, { "name": "Barış Soner Uşaklı", "email": "baris@nodebb.org", "url": "https://github.com/barisusakli" } ], "nyc": { "exclude": [ "src/upgrades/*", "test/*" ] }, "resolutions": { "*/jquery": "3.7.1" }, "optionalDependencies": { "sass-embedded": "1.87.0" } }
-
What happens when you try the below
npm r eslint-config-airbnb-base npm r eslint-config-nodebb rm -rf node_modules/ npm i
-
@baris same issue unfortunately:
Dependencies outdated or not yet installed. Installing them now... npm error code ERESOLVE npm error ERESOLVE could not resolve npm error npm error While resolving: nodebb@4.3.0 npm error Found: eslint@8.57.1 npm error node_modules/eslint npm error peer eslint@"^6.0.0 || ^7.0.0 || >=8.0.0" from @eslint-community/eslint-utils@4.3.0 npm error node_modules/@eslint-community/eslint-utils npm error @eslint-community/eslint-utils@"^4.2.0" from eslint@8.57.1 npm error peer eslint@"^7.32.0 || ^8.2.0" from eslint-config-airbnb-base@15.0.0 npm error node_modules/eslint-config-airbnb-base npm error eslint-config-airbnb-base@"15.0.0" from eslint-config-nodebb@0.2.1 npm error node_modules/eslint-config-nodebb npm error dev eslint-config-nodebb@"1.1.4" from the root project npm error 3 more (eslint-config-nodebb, eslint-plugin-import, nodebb-plugin-2factor) npm error npm error Could not resolve dependency: npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Conflicting peer dependency: eslint@9.25.1 npm error node_modules/eslint npm error peer eslint@">=9.0.0" from @stylistic/eslint-plugin-js@4.2.0 npm error node_modules/@stylistic/eslint-plugin-js npm error dev @stylistic/eslint-plugin-js@"4.2.0" from the root project npm error npm error Fix the upstream dependency conflict, or retry npm error this command with --force or --legacy-peer-deps npm error to accept an incorrect (and potentially broken) dependency resolution. npm error npm error npm error For a full report see: npm error .../.npm/_logs/2025-05-01T13_56_37_050Z-eresolve-report.txt npm error A complete log of this run can be found in: .../.npm/_logs/2025-05-01T13_56_37_050Z-debug-0.log Error installing dependencies! message: Command failed: npm install --omit=dev stdout: null stderr: null .../NodeBB/src/cli/package-install.js:138 throw e; ^ Error: Command failed: npm install --omit=dev at genericNodeError (node:internal/errors:983:15) at wrappedFn (node:internal/errors:537:14) at checkExecSyncError (node:child_process:882:11) at Object.execSync (node:child_process:954:15) at pkgInstall.installAll (.../NodeBB/src/cli/package-install.js:129:9) at Object. (.../NodeBB/src/cli/index.js:50:18) at Module._compile (node:internal/modules/cjs/loader:1734:14) at Object..js (node:internal/modules/cjs/loader:1899:10) at Module.load (node:internal/modules/cjs/loader:1469:32) at Function._load (node:internal/modules/cjs/loader:1286:12) { status: 1, signal: null, output: [ null, null, null ], pid: 2732894, stdout: null, stderr: null } Node.js v23.11.0
-
Try removing package-lock.json as well see what happens.
npm r eslint-config-airbnb-base npm r eslint-config-nodebb rm package-lock.json rm -rf node_modules/ npm i
-
@baris that worked!
-
@julian I'm not sure if you know about this, but your entire post appears both as a content warning and the expanded post, both contain the exact same text. Is that issue known? btw, I'm on go to social, so perhaps that could be a factor too?
@esoteric_programmer@social.stealthy.club that's likely because GtS handles
summary
as a content warning for everything. The wholesummary
and content warning business is in flux right now, so hopefully a standard will be set soon.