OpenLogs

All tools

NodeBB

Forum and community discussion software built on Node.js.

Replaces

Paid community forum services, such as Circle.

All open-source alternatives to Circle

Difficulty

Difficulty: Hard

4 services (3 database or broker: mongo, redis, postgres), 8 volume mounts, no env values to set, no elevated host access. Heuristic score 6 of 11: hard. A source checkout is needed, and the first start builds images from source, so the rating is at least medium.

Stack

JavaScript (language), MongoDB (database), Redis (database), PostgreSQL (database)

Deployment

docker_compose

Requirements

Not stated.

License

GPL-3.0 (OSI-approved open source)

Read from github.com/NodeBB/NodeBB/blob/acca7f3/LICENSE

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/NodeBB/NodeBB/blob/acca7f3/README.md, read on .

Repository

NodeBB/NodeBB

GitHub stats

Stars
15,240
Forks
3,009
Open issues and pull requests
116
Last push
2026-10-22
Latest release
v4.16.3
Released
2026-10-14

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as GPL-3.0.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose.yml Version 1
services:
  nodebb:
    build: .
    # image: ghcr.io/nodebb/nodebb:latest
    restart: unless-stopped
    ports:
      - '4567:4567' # comment this out if you don't want to expose NodeBB to the host, or change the first number to any port you want
    volumes:
      - nodebb-build:/usr/src/app/build
      - nodebb-uploads:/usr/src/app/public/uploads
      - nodebb-config:/opt/config
      - ./install/docker/setup.json:/usr/src/app/setup.json

  mongo:
    image: 'mongo:7-jammy'
    restart: unless-stopped
    ports:
      - '27017:27017'
    environment:
      MONGO_INITDB_ROOT_USERNAME: nodebb
      MONGO_INITDB_ROOT_PASSWORD: nodebb
      MONGO_INITDB_DATABASE: nodebb
    volumes:
      - mongo-data:/data/db
      - ./install/docker/mongodb-user-init.js:/docker-entrypoint-initdb.d/user-init.js
  redis:
    image: redis:8.10.1-alpine
    restart: unless-stopped
    command: ['redis-server', '--appendonly', 'yes', '--loglevel', 'warning']
    # command: ['redis-server', '--save', '60', '1', '--loglevel', 'warning'] # uncomment if you want to use snapshotting instead of AOF
    volumes:
      - redis-data:/data
    profiles:
      - redis

  postgres:
    image: postgres:18.6-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: nodebb
      POSTGRES_PASSWORD: nodebb
      POSTGRES_DB: nodebb
    volumes:
      - postgres-data:/var/lib/postgresql/data
    profiles:
      - postgres

volumes:
  mongo-data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: ./.docker/database/mongo/data

  redis-data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: ./.docker/database/redis

  postgres-data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: ./.docker/database/postgresql/data

  nodebb-build:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: ./.docker/build

  nodebb-uploads:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: ./.docker/public/uploads

  nodebb-config:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: ./.docker/config

From the app's own repository: github.com/NodeBB/NodeBB/blob/acca7f3/docker-compose.yml.

Compose file from NodeBB/NodeBB, used inside a checkout of that repository (documented setup B).

Install

  1. Docker with the Compose plugin and git (github.com/NodeBB/NodeBB/blob/acca7f3/README.md)

    A host with Docker, the Docker Compose plugin and git. This entry needs a checkout of the project repository.

  2. Get the source at commit acca7f3 (github.com/NodeBB/NodeBB/blob/acca7f3/README.md)
    git init NodeBB
    cd NodeBB
    git remote add origin https://github.com/NodeBB/NodeBB.git
    git fetch --depth 1 origin acca7f3471abd1c9ad1748a982b2408afa9dda73
    git checkout FETCH_HEAD
  3. The compose file in the checkout: docker-compose.yml (shown here for reading) (github.com/NodeBB/NodeBB/blob/acca7f3/docker-compose.yml)

    Use the compose file shown above.

  4. What the compose file check ran with (github.com/NodeBB/NodeBB/blob/acca7f3/README.md)

    The compose file check ran in a checkout of NodeBB/NodeBB at acca7f3471abd1c9ad1748a982b2408afa9dda73 (a sparse checkout: the top-level files and the folder install/docker). The README lists a Docker setup as its second install option and tells the reader to run docker-compose up in the repository.

  5. Start it (github.com/NodeBB/NodeBB/blob/acca7f3/README.md)
    docker compose up -d
  6. Open the app (github.com/NodeBB/NodeBB/blob/acca7f3/docker-compose.yml)

    Open http://localhost:4567. The compose file publishes host port 4567 for the nodebb service. The README names this address after docker-compose up.

Compose file check: config_ok on 2026-10-22.

Gotchas and maintenance

Gotchas

Signals

  • Open issues and pull requests: 116
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: v4.16.3 on 2026-10-14 (8 days before this page was built)