前言
为了满足我早年学计算机的愿望之一 —— 聊天室,特地再来进行一次对 Fiora 的构建,特别是我曾经构建 Fiora 过多次,只有一次成功,是因为使用了 docker 进行安装,使用的是镜像文件,所以不能算真正意义上的构建成功,这次要写的构建指南是指的基于源代码进行构建。
Fiora
一个由 碎碎酱 开发的聊天室系统,由于种种原因,Fiora 已经不再更新,且很少有维护,所以在如今的 2023 年想要再次跑起来 Fiora,是一个非常难的问题,并且 Fiora docs 叙述得并不够详细,对新人构建来说十分容易踩坑。抛开很少维护和难以构建来说,其实 Fiora 本身是一个十分出色的聊天室系统。
避坑指南
如果你已经大致掌握了 Fiora 的构建机制,但是有一些问题无法克服的话,在这里为你指点一下。
-
Node.js 版本问题,请使用 v14 LTS 版本
问题详述(点击查看)
如果你在
yarn build:web
时,也就是构建客户端时遇到了类似于图片上的问题这大概是由于你的 Node.js 版本过高导致的,毕竟这是一个始于 2015 年的项目,在如今使用高版本的 Node.js 是不礼貌的。在图中的倒数第 6 行命令可以看到 列出了现在你所使用的 Node.js 版本,如果你实在没找到可以执行命令
1 2 3 4
# 查询 Node.js 版本 node -v # 或者 node --version
来查询使用的 Node.js 的版本
通常都是最新版本,而应该使用 Node.js v14 版本。切换完成后再运行上述命令来检查是否生效,如果没有生效,可以尝试重启服务器,并且在完成切换后,需要重新安装 yarn、安装依赖、构建客户端
-
构建客户端时间过长,请升级服务器,推荐 2 核心 2G RAM
-
获取 UserID,使用 Fiora 内置命令是无法获取道 UserID 的,请检查控制台
-
构建 Fiora 配套 App 问题,需要使用新的构建方式,而不是使用 Fiora docs 内所写的方式。但还请注意,由于 Fiora 在一段时间前对代码进行了重构,或许 App 将无法再与服务端通讯
开始构建
伺服器配置指南
虽然 Fiora 对配置的要求不高,但它并不是没有门槛,因为牵扯到对源代码进行构建,所以需要一定的配置。
- 配置要求:1 核心 2GB 或更高(推荐 2 核心 2GB)
- 网络要求:可以对外联网
- 硬盘大小:2G 以上
- 环境要求:Node.js (版本 v14)、MongoDB、Redis
- 服务器系统:Ubuntu22(采用该系统进行讲述构建指南)
关于 Node.js、MongoDB、Redis 就不叙述如何安装了,如果需要省事,可以安装我们的老朋友 BT.CN,并且选择安装 PM2 管理器,这样的话就不需要额外再安装 pm2、npm 了。
构建指南
Web 端构建
首先我们需要克隆项目至本地,在这之前请确保你的服务器具有 git 功能,一般情况下都是有的,输入以下命令
|
|
值得注意的是,如果你的服务器地处国内,可能会克隆失败,你可以选择去 GitHub 里下载下来,再上传至服务器。在克隆完成后,需要进入 Fiora 目录
|
|
执行该段代码的时候注意,务必加上你现在所在的目录,假设我克隆 Fiora 的目录是 /www/project
,那么我需要输入的指令就应该是
|
|
接下来,我们务必确认使用的 Node.js 版本是否是 v14,请输入以下命令进行检查。
|
|
因为这关乎到你所安装的 yarn 以及后续的构建的成功与否,如果不是 v14,请务必切换为 v14
在这之后,我们需要确认是否有 yarn, 通常是没有的,如果你认为你已经安装了可以输入以下命令进行确认。
|
|
如果你确定你没有 yarn, 则需要输入以下命令进行安装。
|
|
稍等一段时间后,yarn 就会完成安装,对于 yarn 一般是没有什么要求的,如果你确定有问题,可以尝试切换到 1.22.19
版本,这个版本经过测试是可以正常构建的。
23/12/23 补充 解决了一系列的问题,支持了 fiora 内置的命令行工具
安装项目所需依赖
|
|
然后将 Fiora 项目链接起来
|
|
然后就是正式构建 Fiora 了,正式构建 Fiora 其实很简单,只需要把上面工作完成,就可以输入命令
|
|
对 Fiora 进行构建了,在等待一段时间后,我们就完成了构建。
接下来,进行配置 JwtSecret,这个步骤虽然不知道为什么需要,但没有的话,是无法运行的,向命令行中输入以下命令
|
|
要将 <string>
替换为一个秘密文本
最后,就可以启动 Fiora 了
|
|
在完成启动以后,使用浏览器打开 http://[ip地址]:[端口]
(比如 http://127.0.0.1:9200
),就可以访问网站了,默认的端口是 9200.
添加管理员
此章节使用了 Fiora 内置的脚本,如果无法执行,请检查是否将 Fiora 项目链接起来。
|
|
通常来讲,如果使用上述的构建步骤,不需要检查,即可添加管理员。
更多 Fiora 内置脚本参见→脚本 | Fiora Docs
在成功启动 Fiora 后,会进入 Fiora 的运行日志。让我们进入成功启动的地址,注册一个用户,并且记住用户名。我们键盘同时按 CTRL 键和 C 键,退出运行日志。
|
|
[username]
部分就是所注册的用户的用户名,通过此方法获得用户的 UserID
658637b993f5dbef4c3e1f0a
就是我们所需的 UserID,我们要将这段 ID 添加到 /packages/config/server.ts
的 第34行
中
|
|
配置完成后,重新启动 Fiora 即可。
无法解决的问题
App 构建
在查阅大量资料,发现 Fiora App | fiora docs 所提供的构建方式完全不可能在 2023 年的今天成功构建,绝对会大量报错!而且在我成功构建完成 App 后发现,由于一段时间前 Fiora 的代码进行了重构,导致 App 在 2023 年的今天,已经无法再和自己的服务端通讯了!!!!!!!!!即使是碎碎酱自己的 App 也不行了,我在这里写 App 的构建的原因是,如果有热心的大神看到,可以帮忙解决一下这个问题!!
在完成 Web 构建时,会在 /fiora/packages
目录里有一个 app 目录,进入里面,这是我们构建 App 所围绕的目录
|
|
在命令行中输入以下命令以安装最新的 EAS CLI
|
|
然后去 Expo 注册一个账号,并记住账号密码,因为我们对 App 的构建是云构建,而不是本地构建。接下来登录账号
|
|
输入刚刚注册的账号和密码,即可完成验证。然后在命令行中输入以下命令,选择你要打包的类型,使用↑、↓、ENTER(回车键)进行选择,我这里只选择 Android。
|
|
接下来输入以下命令,进行第一次构建
|
|
在等待 10 分钟左右以后,会在登录后的 Expo 的首页看到以下内容
点进去就可以下载到你的 .aab 格式的安装包了,没错是 .aab 而不是 .apk,所以我们需要第二次构建,在第二次构建前,我们需要去到 /fiora/packages/app
目录内,编辑一个 eas.json
的文件,将它的内容替换为
|
|
然后我们再进行打包构建,但是这次我们使用的命令是以下内容,与上面所写的有所不同。
|
|
再经过 10 分钟的等待,就完成了对 App 的构建,并且可以下载 .apk 格式的安装包了,它甚至帮你自动签了名。
但就如我说的,这个 App 无法与服务端通讯,需要大神的协助!!
端口问题
部分服务商有比较严格的防火墙策略,所以必须开放我们所需的端口,Fiora 所需的端口包括但不限于
- 19002 构建 App 需要
- 6379 构建 App 需要
- 9200 Fiora Web 端口,可自定义
- 27017 数据库端口
其它问题
- 配置文件:配置 | Fiora Docs
- 自定义域名:反向代理 | Fiora Docs
修改内容
假设你想对你的 Fiora 进行一定的修改,那么你务必查看这部分的内容。还是老话,由于一段时间前 Fiora 的代码进行了重构,导致 Fiora | Docs 在 2023 年的今天,已经不再那么适用了,它所给的目录结构也不再具有价值。所以如果你想修改 Fiora 的源代码,就务必查看我所写的部分目录构成。
|
|
结束
这些是我这次搭构建 Fiora 所经历的一切,希望可以为后来人构建 Fiora 避开一些坑,或者教新手如何 构建 Fiora 聊天室,本文或许还有部分不详尽的地方,希望可以多多担待,有问题麻烦指出来,我会进行改进,并且如果有大神有办法解决 App 无法与服务端通讯的问题,请发送至我的邮箱 magneto@88.com 感激不尽!
参考
Fiora Docs:https://yinxin630.github.io/fiora/zh-Hans/
Create your first build:https://docs.expo.dev/build/setup/
Expo CLI:https://docs.expo.dev/more/expo-cli/#installation
Build APKs for Android Emulators and devices:https://docs.expo.dev/build-reference/apk/