NodeBB Forum Software is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
latest
, v1.15.1
, v1.15.0
, v1.14.3
, v1.14.2
...
beta
, v1.15.1-beta.0
, v1.15.0-rc.4
, v1.15.0-rc.3
, v1.15.0-beta.30
...
Images delivers through two registries, DockerHub and GitHub Container Registry.
- Auto installation
- Auto upgrade when you update image
- Persistant storage support (official NodeBB image haven't that)
docker run --name nodebb -d -p 4567:4567 \
-v ./data:/data \
-e URL="http://mynodebb.com" \
-e DATABASE="mongo" \
-e DB_HOST="host.docker.internal" \
-e DB_USER="mongo_user" \
-e DB_PASSWORD="mongo_pass" \
-e DB_PORT="27017" \
nibrev/nodebb:latest
docker run --name nodebb -d -p 4567:4567 \
-v ./data:/data \
-e URL="http://localhost" \
-e DATABASE="redis" \
-e DB_NAME="0" \
-e DB_HOST="host.docker.internal" \
-e DB_PASSWORD="redis_pass" \
-e DB_PORT="6379" \
nibrev/nodebb:latest
There is basic docker-compose example to run NodeBB using Redis database.
version: '3.1'
services:
nodebb:
image: ghcr.io/rez0n/nodebb:latest
restart: unless-stopped
environment:
URL: "http://localhost"
DATABASE: "redis"
DB_NAME: "0"
DB_HOST: "redis"
DB_PORT: "6379"
volumes:
- ./data/nodebb:/data
networks:
- nodebb
ports:
- "4567:4567"
redis:
image: redis
restart: unless-stopped
volumes:
- ./data/redis:/data
networks:
- nodebb
networks:
nodebb:
driver: bridge
This image was adjusted to run in k8s clusters. Example manifest below, you can find full manifests in the k8s-manifests directory.
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: beta-nodebb-pv-claim
namespace: nodebb
labels:
app: nodebb
spec:
storageClassName: local-path
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodebb
namespace: nodebb
labels:
app: nodebb
spec:
selector:
matchLabels:
app: nodebb
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: nodebb
tier: frontend
spec:
containers:
- image: nibrev/nodebb:beta
imagePullPolicy: Always
name: nodebb
env:
- name: DATABASE
value: "redis"
- name: DB_NAME
value: "1"
- name: DB_HOST
value: redis
- name: DB_PORT
value: "6379"
- name: URL
value: "http://node.157.230.78.171.nip.io"
ports:
- containerPort: 4567
name: nodebb
volumeMounts:
- name: beta-nodebb-pv
mountPath: /data
volumes:
- name: beta-nodebb-pv
persistentVolumeClaim:
claimName: beta-nodebb-pv-claim
---
apiVersion: v1
kind: Service
metadata:
name: nodebb
namespace: nodebb
labels:
app: nodebb
spec:
selector:
app: nodebb
tier: frontend
ports:
- port: 80
targetPort: 4567
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nodebb
namespace: nodebb
spec:
rules:
- host: node.157.230.78.171.nip.io
http:
paths:
- path: /
backend:
serviceName: nodebb
servicePort: 80