Docker和MongoDB部署NodeBB论坛系统
本文软件由网友
114514
推荐;
什么是 NodeBB
?
NodeBB是下一代讨论平台,它利用
Web sockets
进行即时交互和实时通知。NodeBB
论坛具有许多开箱即用的现代功能,例如社交网络集成和流式讨论,以及完整的REST API
和插件框架,以实现完整的第三方可扩展性。
前言
先说下安装过程中遇到的两个问题:
问题 1
官方提供了 docker-compose.yml
文件,但是直接部署的话,在设置向导直接就通不过,日志中显示 warn: NodeBB Setup Aborted.
经排查,日志中有下面这样的错误
为了便于阅读,已格式化处理
db_1 | {
"t": {
"$date": "2022-11-08T02:38:55.786 00:00"
},
"s": "I",
"c": "ACCESS",
"id": 20249,
"ctx": "conn3",
"msg": "Authentication failed",
"attr": {
"mechanism": "SCRAM-SHA-1",
"speculative": false,
"principalName": "root",
"authenticationDatabase": "nodebb",
"remote": "192.168.48.3:50616",
"extraInfo": {},
"error": "UserNotFound: Could not find user \"root\" for db \"nodebb\""
}
}
老苏查了半天资料,一种方法是通过进入容器创建用户,但是感觉有点繁琐;另一种方法干脆就用了无用户/密码登录方式,可能会收到警告信息
warn: You have no mongo username/password setup!
不过反正也没有对外暴露数据库的端口,应该问题不大;
问题 2
本来想把配置文件 config.json
映射到容器中,这样改起来方便
但是访问页面时显示 Cannot read properties of undefined (reading 'split')
日志中也有错误
所以只能放弃这种方式,好在也没啥需要改的地方,有兴趣了解可以看最后的部分
命令行安装
用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3.5'
services:
node:
image: nodebb/docker
container_name: nodebb_web
restart: unless-stopped
depends_on:
- db
ports:
- 4567:4567
volumes:
# - ./config.json:/usr/src/app/config.json
- ./uploads:/usr/src/app/public/uploads
db:
image: mongo
container_name: nodebb_db
restart: unless-stopped
volumes:
- ./mongo:/data/db
然后执行下面的命令
# 新建文件夹 nodebb 和 子目录
mkdir -p /volume2/docker/nodebb/{mongo,uploads}
# 进入 nodebb 目录
cd /volume2/docker/nodebb
# 修改目录权限
chmod 777 uploads/
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
容器启动的时间有点长,除了初始化数据库,似乎还有代码 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
,本想做模板,用于映射的
-----------下面👇这段不需要---------------
# 配置完成后才会有 config.json 文件
# 拷贝配置文件到群晖中
docker cp nodebb_web:/usr/src/app/config.json config.json
config.json
的文件内容
{
"url": "",
"secret": "",
"database": "mongo",
"port": "4567",
"mongo": {
"host": "db",
"port": "27017",
"username": "",
"password": "",
"database": "nodebb",
"uri": ""
}
}
其中 :
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/NodeBB
Home | NodeBB | Your Community Forum Platform
地址:https://nodebb.org/
NodeBB 文档
地址:https://docs.nodebb.org/
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgabjja
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01