基于Docker和MongoDB部署NodeBB论坛系统
本文软件由网友
114514推荐;
什么是 NodeBB ?
NodeBB是下一代讨论平台,它利用
Web sockets进行即时交互和实时通知。NodeBB论坛具有许多开箱即用的现代功能,例如社交网络集成和流式讨论,以及完整的REST API和插件框架,以实现完整的第三方可扩展性。
前言
先说下安装过程中遇到的两个问题:
问题 1
官方提供了 docker-compose.yml 文件,但是直接部署的话,在设置向导直接就通不过,日志中显示 warn: NodeBB Setup Aborted.
经排查,日志中有下面这样的错误
为了便于阅读,已格式化处理
1 | db_1 | { |

老苏查了半天资料,一种方法是通过进入容器创建用户,但是感觉有点繁琐;另一种方法干脆就用了无用户/密码登录方式,可能会收到警告信息
1 | warn: You have no mongo username/password setup! |

不过反正也没有对外暴露数据库的端口,应该问题不大;
问题 2
本来想把配置文件 config.json 映射到容器中,这样改起来方便
但是访问页面时显示 Cannot read properties of undefined (reading 'split')
日志中也有错误

所以只能放弃这种方式,好在也没啥需要改的地方,有兴趣了解可以看最后的部分
命令行安装
用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3.5' |
然后执行下面的命令
1 | # 新建文件夹 nodebb 和 子目录 |
运行
容器启动的时间有点长,除了初始化数据库,似乎还有代码 build 的动作,
当在容器 nodebb_web 的日志中看到 Web installer listening on http://0.0.0.0:4567

就可以在浏览器中输入 http://群晖IP:4567 进行设置了

设置
web地址Web Address (URL):局域网使用直接默认的就可以;老苏尝试过,即使用npm做了反代,这里也不需要修改为域名;

创建管理员账号
Username:用于后台管理的管理员账号,比如:laposu;Email Address:管理员的电子邮件;Password和Confirm Password:是管理员的密码;

设置数据库
Database Type:数据库类型,默认的MongoDB就可以;Host IP or address of your MongoDB instance:不能用默认的127.0.0.1,改为docker-compose.yml文件中的service名称db;Host port of your MongoDB instance:默认的端口27017就可以;MongoDB username:数据库用户,按照前面的设置留空就行;Password of your MongoDB database:数据库密码,按照前面的设置留空就行;MongoDB database name:直接用默认的nodebb就可以;

设置的过程还是比较长的

日志中有进度

不出意外的话你会看到

直接点绿色按钮 Launch NodeBB,就能看到登录界面
虽然默认登录是中文界面,但后面不是,可能是自动识别错误了;

有可能会连不上,因为还有下载、编译的动作

登录成功后的 Dashboard

中文
Settings –> Languages

Default Language 中下拉选择 简体中文 后,点右下角的按钮保存

刷新之后就是中文了

其他
这个没啥用的,属于问题2折腾的一部分,从设置完成的容器内导出了一份 config.json,本想做模板,用于映射的
———–下面👇这段不需要—————
1 | # 配置完成后才会有 config.json 文件 |
config.json 的文件内容
1 | { |
其中 :
url:需要填主机 IP 和 服务端口,比如老苏的是http://192.168.0.197:4567;secret:在服务启动时会自动生成;- 其他的默认就可以了;
———–上面👆这段不需要—————
参考文档
NodeBB/NodeBB: Node.js based forum software built for the modern web
地址:https://github.com/NodeBB/NodeBBHome | NodeBB | Your Community Forum Platform
地址:https://nodebb.org/NodeBB 文档
地址:https://docs.nodebb.org/