前言

由于某种原因,我们有时的某些话,并不适合在主流的聊天应用上说,至少,我认为某些话,会被系统认为有风险,你可能面临禁言冻结或封号,甚至物理攻击。那么,自建一个私人的聊天室在你需要时,帮助你远离这些麻烦。

目录

以下教程是使用宝塔面板进行搭建。

介绍

fiora聊天室是基于node.js和react由碎碎酱独自开发的开源网页聊天室,使用socket.io模块WebSocket协议通讯,支持Service Worker和PWA.功能丰富,并且简单易上手,很适合作为学习node.js的参考项目,node.js初学者的福音

项目地址:

https://github.com/yinxin630/fiora

文档:

https://yinxin630.github.io/fiora/zh-Hans/

搭建

1、服务器安装好宝塔(至少CentOS 7.6 装好nginx)

2、在 软件商店 安装好

node.js版本管理器 (设置里安装 Node版本:v14 命令行版本选装的那个)

MongoDB、

Redis,三个应用。

3、如有外部安全防火墙 请预先开放9200端口,宝塔开启9200端口。

4、ssh连接服务器并检查环境是否搭建好

依次输入以下代码:

node -v
npm -v

若没有返回版本,则进行修复node.js:

进入软件商店,点击修复

如果修复后仍然不行,切换版本重试,直到返回版本为止。

5、拉取源码并存放于/opt文件夹 如果没有git请输入以下内容:

yum -y install git
git clone https://github.com/yinxin630/fiora.git -b master /opt/fiora/

6、进入fiora文件夹中

也可以到终端输入:

cd /opt/fiora/

7、安装依赖,用yarn来安装 没有yarn的请输入:

npm install -g yarn
yarn install

8、构建

yarn build:web

9、配置 JwtSecret 请将***** 替换为一个秘密文本

echo "JwtSecret=******" > .env

10、启动

yarn start

11、注册用户

打开 http://你服务器ip:9200 注册第一个用户: admin

12、接下来配置管理员,先使用Ctrl+C断开运行。

13、获取用户userid 比如admin

fiora getUserId admin

有的无法使用fiora指令,则在终端中,查看日志,不要及时断开,查看注册的用户,即可找到userid,如果不会找,可以私聊我求助。

14、设置管理员 宝塔打开 /opt/fiora/.env 文件,添加下列一行:(userid是上面取到的一连串文本,注意代换。)

Administrator=userid

15、再次启动fiora

yarn start

16、浏览器刷新,检查是否有管理权限了。没问题使用Ctrl+C断开运行 配置PM2在后台运行

pm2 start yarn --name fiora -- start

17、刷新聊天室 教程完成!

进行站点反代

宝塔面板新建一个网站,php版本选择纯静态即可,然后点击反向代理,点击添加反向代理,名称随便填,目标URL填写http://ip:9200,末尾不要有斜线。发送域名保持$host即可,然后访问你的域名就可以正常使用了。

DIY

logo

/opt/fiora/public/favicon-96.png

/opt/fiora/public/favicon-192.png

/opt/fiora/public/favicon-512.png

(public目录为构建产物 重新构建会被覆盖)

index.html

/opt/fiora/client/templates/index.html

/opt/fiora/public/index.html

侧边

fiora目录下搜索Sidebar目录/或者直接找到以下地址

根目录/opt/fiora/packages/web/src/modules/Sidebar

修改完成之后重新运行第四步的指令即可!!!

迁移

MongoDB数据库和 public下的文件迁移了就行。

问题&解决

搭建时,出现以下问题怎么办?

$ npx lerna bootstrap && yarn link
lerna notice cli v4.0.0
lerna info versioning independent
lerna info Bootstrapping 10 packages
lerna info Installing external dependencies
lerna ERR! yarn install --mutex network:42424 --non-interactive exited 1 in '@fiora/i18n'
lerna ERR! yarn install --mutex network:42424 --non-interactive stdout:
yarn install v1.22.21
[1/4] Resolving packages...
[2/4] Fetching packages...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
lerna ERR! yarn install --mutex network:42424 --non-interactive stderr:
warning Waiting for the other yarn instance to finish (8404)
error Error: https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz: ETIMEDOUT
at Timeout._onTimeout (/www/server/nodejs/v14.17.6/lib/node_modules/yarn/lib/cli.js:141534:19)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7)
lerna ERR! yarn install --mutex network:42424 --non-interactive exited 1 in '@fiora/i18n'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

答:错误消息显示了一个ETIMEDOUT错误,这表明在尝试从Yarn注册表中下载os-locale包时发生了超时。

为了解决此问题,您可以尝试以下步骤:

  1. 检查网络连接: 确保您的网络连接稳定,没有任何问题。您可以尝试访问其他网站或服务来验证这一点。
  2. 重试安装: 再次运行命令(npx lerna bootstrap && yarn link)。有时网络超时是暂时的,重新尝试可能会成功。
  3. 清除 Yarn 缓存: 如果问题仍然存在,您可以尝试通过运行以下命令清除 Yarn 缓存:
yarn cache clean

4.使用不同的注册表: 如果问题持续存在,可以尝试切换到不同的包注册表。Yarn允许您使用–registry标志指定注册表。例如:

yarn --registry=https://registry.npmjs.org/ install

5.手动添加有问题的依赖项: 如果以上解决方案都无效,您可以手动将os-locale包安装到@fiora/i18n包目录中,然后重试安装过程。

如果在尝试这些解决方案后问题仍然存在,您可能需要进一步排除故障,检查您的网络设置、防火墙配置,或者联系网络管理员确保没有对访问Yarn注册表的限制。

执行命令时报错 “Couldn’t find a package.json file in xxx”

答:先 cd 到 fiora 根目录下, 再执行相应命令

为什么修改配置不生效?

答:

  1. 先确认配置修改是否正确
  • 如果是直接修改配置文件, 请确认修改的部分语法和格式正确
  • 如果是通过 .env 文件修改配置, 请确认格式正确
  1. 修改配置后
  • 如果修改的是服务端配置, 需要重启服务端
  • 如果修改的是客户端配置, 需要重新构建客户端

怎么重新构建客户端

答:yarn build:web

THE END
© 版权声明
分享是一种美德,转载请保留原链接