Sign inSign up

readystack/nodebb

By readystack

•Updated about 21 hours ago

NodeBB: real-time forum software with a REST API. Signed; SBOM and SLSA v1 provenance.

Image
Content management system
0

5.0K

readystack/nodebb repository overview

⁠NodeBB

Signed: cosign SBOM: SPDX attached Provenance: SLSA v1

readystack/nodebb:v4.16.5-CE-ubuntu24.04-r1

Source, recipe and records

A cosign-signed build of github.com/NodeBB/NodeBB v4.16.5 (GPL-3.0), built clean-room from official upstream source by ReadyStack⁠.

⁠Who uses it and why

Who: Communities and organisations that want a modern discussion forum they host themselves.

Why: NodeBB is forum software with real-time discussions and notifications, categories, user accounts and messaging, a read and write REST API, and plugins and themes for extra features.

Use case: An open-source project runs its support forum on NodeBB. Questions sit in categories, new replies and notifications appear without reloading the page, the forum works on phones as well as desktops, and plugins add the integrations the project needs.

About the upstream project, written from its own description: https://github.com/NodeBB/NodeBB⁠

⁠What you get

Signature, user and attestations below were measured on the published digest sha256:49b4b223a847d40ddcd708a8ac689c4f35be68ac2538828f891e3fc500a90cb9 on 2026-10-29.

  • Scan scores — we scan every image we publish every day (an SBOM made with syft, vulnerabilities matched with grype, scored with cerodeo-v1, the rubric ce.rodeo published until 2026-10-26) and record each scan with how its score was derived. This release's first and latest scan: https://readystack.dev/products/nodebb⁠
  • ReadyStack release check — passed at release on 2026-10-29: no fixable critical or high vulnerability (Docker Scout and OSV), a non-root user, SBOM and provenance attached. This is ReadyStack's own test, not a Docker grade; vulnerabilities published since then are in today's result at https://readystack.dev/queue⁠.
  • Signed — cosign signature by the ReadyStack release key (fingerprint 04daa92344a52dbc) on this release's index digest sha256:49b4b223a847d40ddcd708a8ac689c4f35be68ac2538828f891e3fc500a90cb9; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/nodebb:v4.16.5-CE-ubuntu24.04-r1.
  • Attestations — An SPDX SBOM and SLSA v1 build provenance are attached to this digest.
  • Runs as a non-root user (nodebb).
  • Built from source by ReadyStack.

⁠Which tag should I pull?

This image follows the ReadyStack release-tag convention:

  • The current release is v4.16.5-CE-ubuntu24.04-r1 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement⁠.

  • Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.

  • Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html⁠

  • Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.

# ✓ current release
docker pull readystack/nodebb:v4.16.5-CE-ubuntu24.04-r1

# ✗ unsupported (do not pull)
docker pull readystack/nodebb:internal-...

This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/nodebb:v4.16.5-CE-ubuntu24.04-r1 (the signature is recorded in the public Sigstore transparency log). Support: [email protected]⁠, as set out in the ReadyStack Agreement⁠.

⁠Deployment

Single container running the NodeBB forum in the foreground against an EXTERNAL database (Valkey in this release's tested setup; NodeBB can also use Redis, MongoDB or PostgreSQL, untested here). Node.js application; the image contains no database.

Secrets go in an env file that only you can read, not on the command line, and passwords that only set up the first start come out of it after setup. Create nodebb.env with install -m 600 /dev/null nodebb.env, then write these lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.

# Used only when NodeBB creates the administrator on an empty database, but every new nodebb container needs it to run setup. After setup, replace NODEBB_ADMIN_PASSWORD's value with another strong random value and recreate the container; the admin keeps the password.
NODEBB_ADMIN_PASSWORD=YOUR_ADMIN_PASSWORD
docker network create nodebb-net
docker run -d --name valkey --network nodebb-net -v valkey-data:/data valkey/valkey:8-alpine
docker run -d --name nodebb --network nodebb-net -p 4567:4567 -e NODEBB_DB_HOST=valkey -e NODEBB_URL=http://localhost:4567 -e NODEBB_ADMIN_USERNAME=admin -e [email protected] --env-file ./nodebb.env -v nodebb-uploads:/app/public/uploads readystack/nodebb:v4.16.5-CE-ubuntu24.04-r1

NodeBB stores everything in a Valkey (or Redis) server it reaches by name, so both containers share the nodebb-net network (without it NodeBB exits at once with Error: getaddrinfo ENOTFOUND valkey). Choose your own admin password (6 or more characters, not a common word) and write it in nodebb.env; put your forum's address in NODEBB_URL. About 10 seconds later GET http://localhost:4567/api/v3/ping⁠ answers 200. Set NODEBB_ADMIN_PASSWORD every time you create the nodebb container, not only the first time: config.json lives inside the container, so a new container runs setup again and exits at once without it. The admin password itself is set only on an empty database, so after setup replace NODEBB_ADMIN_PASSWORD's value in nodebb.env with another strong random value (for example the output of openssl rand -hex 16) and recreate the container (docker rm -f nodebb, then its docker run line again): setup finds the administrator and skips it, the admin keeps its password, and that password is no longer in the container's environment (tested).

⁠The full ReadyStack Hermetic Build Kit

The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/nodebb⁠. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:1985054078b7654c28610657d3703ea47e417cadd2203e8327c628608e35b37e on 2026-10-29.

— ReadyStack · readystack.dev

Tag summary

Content type

Image

Digest

sha256:49b4b223a…

Size

277.5 MB

Last updated

about 21 hours ago

docker pull readystack/nodebb:v4.16.5-CE-ubuntu24.04-r1