静看光阴荏苒
不管不顾不问不说也不念

NodeBB:基于Node.js的下一代论坛软件

以前看到这个论坛程序的名字时,总是不由自主的联想起这么一句话:you can you up no can no bb。。。

NodeBB是一套非常完善的论坛系统,经过几年的更新迭代,现在的功能基本可以满足大部分用户的需求。NodeBB的论坛风格其实类似于Discourse,但实际上我个人更喜欢NodeBB,因为它比Discourse轻量,部署也非常方便。在国际化支持方面也比Discourse要好。

NodeBB的官方论坛/演示站:https://community.nodebb.org/

NodeBB官方有非常详细的Docs,遇到问题可以先看这里:https://docs.nodebb.org/

我基本上第一次部署的时候也是照着官方的文档来的,不过多多少少还是有点小坑,这里记录一下符合我自己使用习惯的部署方法。

首先准备:

1.一台VPS,安装CentOS7 X64。

2.一个域名解析到VPSIP。

首先更新系统:

yum -y update

安装EPEL源:

yum -y install epel-release

安装开发工具包:

yum -y groupinstall "Development Tools"

安装Redis/ImageMagick,前者用于缓存也可用于NodeBB的数据库,后者主要用于图像处理:

yum -y install redis ImageMagick

启动Redis并设置开机启动:

systemctl start redis
systemctl enable redis

新建一个源,用于安装Mongodb:

vi /etc/yum.repos.d/mongodb-org-4.0.repo

写入:

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

然后就可以用yum安装了:

yum -y install mongodb-org

启动mongodb并设置开机启动:

systemctl start mongod
systemctl enable mongod

进入到mongodb的命令行:

mongo

选择:

use nodebb

创建数据库用户并设置密码:

db.createUser( { user: "nodebb", pwd: "设置一个高强度的密码", roles: [ "readWrite" ] } )

添加权限:

db.grantRolesToUser("nodebb",[{ role: "clusterMonitor", db: "admin" }]);

完成之后,键盘组合键Ctrl+D退出来,接下来编辑mongodb数据库的配置文件:

vi /etc/mongod.conf

找到下面的security选项,去掉前面的注释,然后添加下面的内容:

security:
  authorization: enabled

最后重启mongodb数据库,数据库这块就配置完成了:

systemctl restart mongod

现在我们安装Node.js:

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum -y install nodejs

完成之后,现在我们就可以拉取项目文件了:

cd
git clone -b v1.10.x https://github.com/NodeBB/NodeBB nodebb

进入到项目目录:

cd nodebb

执行安装命令:

./nodebb setup

在这个安装过程中,程序会以交互式的模式让你填写一些配置内容,大概如下:

Q:URL used to access this NodeBB (http://localhost:4567) 

A:回车

Q:Please enter a NodeBB secret (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) 

A:回车

Q:Which database to use (mongo) 

A:回车

Q: Host IP or address of your MongoDB instance (127.0.0.1) 

A:回车

Q:Host port of your MongoDB instance (27017) 

A:回车

Q:MongoDB username nodebb

A:回车

Q:Password of your MongoDB database

A:输入你之前设置的数据库密码

Q:MongoDB database name (nodebb) 

A:回车

Q:Administrator username

A:设置管理员用户名

Q:Administrator email address

A:设置管理员邮箱

Q:Password/Confirm Password

A:盲输管理员密码

完成之后,现在我们安装Nginx/Certbot:

yum -y install nginx
yum -y install certbot

使用certbot签发一个域名ssl证书(example.com替换成你们自己的域名):

certbot certonly --standalone -d example.com

接着新建一个Nginx站点配置文件(example.com替换成你们自己的域名):

vi /etc/nginx/conf.d/nodebb.conf

写入:

server {
    listen       80;
    listen       443 ssl http2;
    server_name  example.com www.example.com;
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

    ssl_certificate   /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:4567;
    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }
}

现在启动Nginx:

systemctl start nginx

现在编辑NodeBB的配置文件:

vi config.json

把下图中红框标注的URL地址修改成你们自己的域名:

最后我们启动NodeBB即可:

./nodebb start

不出意外,现在打开你的站点域名可以访问到这个论坛程序了:

实际上NodeBB给大家配置的这个脚本还有多种用法,可以执行下面的命令查看,对于日常维护非常有用:

./nodebb help

如按照本篇文章安装完成之后,论坛无法访问,一般是防火墙和SELinux问题,可以执行下面的命令关闭:

systemctl stop firewalld.service
systemctl disable firewalld.service
vi /etc/selinux/config
SELINUX=disabled
setenforce 0

不想关防火墙就自己放行80/443/4567/等程序需要用到的端口。

关于数据库备份:

mongodump -d nodebb -u nodebb -p password

备份的数据会保存到当前命令执行目录的dump目录下。

赞(1)
未经允许不得转载:荒岛 » NodeBB:基于Node.js的下一代论坛软件
分享到: 更多 (0)

评论 18

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    :mrgreen:

    FaceTheWorld6个月前 (11-12) Google Chrome 70.0.3538.77 Google Chrome 70.0.3538.77 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    6

    YuGer6个月前 (11-12) Google Chrome 70.0.3538.77 Google Chrome 70.0.3538.77 Windows 10 x64 Edition Windows 10 x64 Edition回复
  3. #3

    好麻烦的样子,能用宝塔就好了

    瞎折腾6个月前 (11-12) Firefox 63.0 Firefox 63.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 宝塔我只建议使用PHP环境的程序用。

      LALA6个月前 (11-13) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
      • 这样啊,大佬安装过phpdish没,也是个问答社区,我一直安不上,可否搞一篇 :cry:

        瞎折腾6个月前 (11-15) Chrome 70.0.3538.75 Chrome 70.0.3538.75 iPhone iOS 12.1 iPhone iOS 12.1回复
        • 以前装过,反正我那时候装上去用着感觉不行,功能不完善,不知道现在怎么样了。

          LALA6个月前 (11-16) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
          • 听说升级了,我是死活安不上 :eek:

            瞎折腾6个月前 (11-19) Google Chrome 68.0.3440.91 Google Chrome 68.0.3440.91 Android 6.0.1 Android 6.0.1
  4. #4

    是不是被墙了,代理才能上

    YuGer6个月前 (11-13) Google Chrome 70.0.3538.77 Google Chrome 70.0.3538.77 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 嗯,舒服了~

      LALA6个月前 (11-13) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
  5. #5

    拉拉你的网站是不是被墙了呀,现在访问都要挂SS才能访问。

    小阳6个月前 (11-13) Google Chrome 68.0.3440.106 Google Chrome 68.0.3440.106 Windows 7 Windows 7回复
    • 嗯,域名被DNS污染了。

      LALA6个月前 (11-13) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
  6. #6

    恭喜拉拉获得gfw权威认证~

    446个月前 (11-13) Google Chrome 70.0.3538.102 Google Chrome 70.0.3538.102 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 喜获国家特殊荣誉,我很吃jing。

      LALA6个月前 (11-13) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
  7. #7

    :shock: 以后只能隔墙向望了

    test6个月前 (11-16) Firefox 63.0 Firefox 63.0 Windows 10 x64 Edition Windows 10 x64 Edition回复
  8. #8

    :neutral: 有没有php的论坛

    16个月前 (11-18) QQbrowser 10.3.2601.400 QQbrowser 10.3.2601.400 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • PHP那当然首选Discuz啦!

      LALA6个月前 (11-19) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
      • 老大写个flarum的教程吧,discuz开臃肿了感觉

        haig2331周前 (05-10) Google Chrome 74.0.3729.91 Google Chrome 74.0.3729.91 Windows 10 x64 Edition Windows 10 x64 Edition回复
        • 写过了。

          LALA1周前 (05-11) Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿