NodeBB 搭建教程

杂谈 | 共 1865 字 | 2018/4/14 发表 | 2018/5/3 更新

我一直想建个关于主机的论坛,之前用flarum试了试不太好,昨天发现了NodeBB,安装了下发现非常好用。反向代理我使用的是 caddy 而不是 nginx,所以在搭建的过程中遇到了不少问题,写篇教程记录下。

老样子系统是 Centos7,其它系统基本上大同小异。域名为 mydomain.com,vps 内存比较小所以用 MongoDB 作为数据库。

环境

yum install npm -y

MongoDB 初始化

mongo 官方的文档说的已经很清楚了,安装过程也很简单。

echo "
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
" > /etc/yum.repos.d/mongodb-org-3.6.repo

yum install mongodb-org -y

安装好了以后需要创建一下数据库和用户

mongo
> use nodebb
> db.createUser( { user: "nodebb", pwd: "<Enter in a secure password>", roles: [ "readWrite" ] } )
> db.grantRolesToUser("nodebb",[{ role: "clusterMonitor", db: "admin" }]);

安装 NodeBB

git clone https://github.com/NodeBB/NodeBB.git nodebb
cd nodebb
./nodebb

找到 config.json,添加 socket.io 设置,否则网站无法正常运行。

{
  "url": "http://mydomain.com",
  "secret": "",
  "database": "mongo",
  "port": 4567,
  "mongo": {},
  "type": "literal",
  "socket.io": {
    "origins": "http://mydomain.com:*"
  }
}

使用 Caddy

这部分是最坑的,坑了我一整天。

Caddyfile

mydomain.com {
  timeouts 0
  proxy / 127.0.0.1:4567 {
    websocket
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    header_upstream Connection {>Connection}
    header_upstream Upgrade {>Upgrade}
  }
  log caddy.log
}

备份数据库

Mongo

backup_date=$(date +"%F-%H%M%S")
cd /data
mongodump -d nodebb
tar -zcvf ${backup_date}.tar.gz dump/nodebb --remove-files

定时任务 0 0,6,12,18 * * * bash /data/backup.sh

未完待续