一、前言

最近LuckyBlog上线了在线聊天室,不少朋友都说这玩意贼溜,甚至表示自己也想整一个

LuckyTalk

事不宜迟,马上就跟咱上车,用Docker部署一个吧

二、快速上手

有基础的大佬直接上手

源码:https://github.com/yinxin630/fiora

作者主页:https://suisuijiang.com

如何运行:https://github.com/yinxin630/fiora/blob/master/doc/INSTALL.ZH.md

架构 / 设计思路:https://github.com/yinxin630/blog/issues/3

三、听我碎碎念

3.1 了解下需要做的事情

链接在此

下面是作者给出的做法,简而言之,部署 mongodB、redis和fiora

# 拉取 mongo
docker pull mongo

# 拉取 redis
docker pull redis

# 拉取 fiora
docker pull suisuijiang/fiora

# 创建虚拟网络
docker network create fiora-network

# 启动 mongodB
docker run --name fioradb -p 27017:27017 --network fiora-network mongo

# 启动 redis
docker run --name fioraredis -p 6379:6379 --network fiora-network redis

# 启动 fiora
docker run --name fiora -p 9200:9200 --network fiora-network -e Database=mongodb://fioradb:27017/fiora -e RedisHost=fioraredis suisuijiang/fiora

3.2 Docker部署MongoDB

既然是Docker,就一定要做数据持久化,这样才能防止Docker爆炸丢数据,也能方便以后的迁移

我们使用Unraid部署,如图

MongoDB部署

我们把数据库的数据存放在了物理机上面,这样就安全多了

另外,我们没有采用虚拟网络,一方面是局域网部署,ip地址太多,二是为了维护方便

3.3 Docker部署redis

这里就普普通通了,我映射了config出去,别的没动

redis部署

我们依然没有使用虚拟网络而是直接分配了ip地址

3.4 Docker部署fiora

也没有什么需要特别注意的地方,项目位于/usr/app/fiora,但是不能映射出来,会直接启动不了……

记得在Extra Parameters里面加参数(根据自己的实际情况换下地址)

-e Database=mongodb://177.229.25.17:27017/fiora -e RedisHost=177.229.25.18

3.5 后期配置

都启动完了,如果配置正确了的话就能在http://[ip]:9200看到了

下面的配置动的全是fiora的Docker

3.5.1 配置VerySync

有了VerySync(微力同步),我们可以避免使用繁杂的docker cp命令,快速的传递各种文件

fiora的Docker使用的是Debian系统,我们可以使用一键部署脚本或是本地二进制文件直接运行

VerySync——linux一键部署脚本

本地二进制文件直接运行方法

这里下载某个版本的VerySync,Linux,amd64的tar包

docker cp到/root下,然后使用tar -xvf 【文件名】解压到同名文件夹

cd到该文件夹,使用以下命令启动

cd verysync
./verysync -gui-address ip:port
#示例
cd verysync
./verysync -gui-address 177.229.25.19:8886

然后就能浏览器直接打开http://ip:port,对文件直接进行管理

这样我们就可以直接把文件拖出来编辑或者拖回去覆盖

3.5.2 换源,安装vim

有时候,可能在本地编辑更加方便,所以最好在本地也整一个

换源,安装vim应该不用教xiaoku,不会装vim的大概也不会Docker

3.5.3 配置服务器和客户端配置

配置文件位于/usr/app/fiora/config

有server.ts和client.ts,VerySync并不能编辑这样的文件,你需要用vim编辑

各项参数参考这里

我配置的时候,管理员只要配置了id,Docker就直接爆炸,起不来,说是解析server.ts出错,可能是我格式写的不对,如果有用Docker部署的,可以交流下看有没有也遇到这个问题

另外,查询id出错的,翻下/usr/app/fiora目录,看是不是没有bin文件夹huaji?你需要去Github上下载并上传(补全)bin文件夹才能进行这个操作

滑稽_还有这种操作

部署正式完成,我们还需要做一点修改

需要修改的文件都在/usr/app/fiora/public里面,需要改改index.html,还有里面的图标之类的

最后,为了把它放在公网上面,同时使PWA(类似于小程序,安装扩展之后可以从桌面快捷方式打开)可用,你需要上https(不上https不显示安装PWA的提示),通过nginx反代即可完成

3.6 来点魔改?

这么好的聊天室怎么能少了ATRI呢?我们来加上看板娘,编辑public下的index.html,废话少说,咱直接上代码

<!--加在body底部,/body前,位置请根据自己的情况微调,下面的js请自行下载放置服务器中-->
<!--看板娘js
live2d-ver3.0
那必须是高性能的亚托莉哒~
-->
<script src="https://cdn.jsdelivr.net/gh/luckykeeper/keshe1_css-js@1.0/live2dcubismcore.js"></script>
<script src="https://cdn.jsdelivr.net/gh/luckykeeper/keshe1_css-js@1.0/bundle.js"></script>
<canvas id="live2d" width="400" height="400" class="live2d" style="position: fixed; opacity: 1; left: -110px; bottom: -135px; z-index: 99999; pointer-events: none;"></canvas>
<script type="text/javascript">
var resourcesPath = 'url'; // 指定资源文件(模型)保存的路径,使用github的release版本,路径如下https://cdn.jsdelivr.net/gh/用户/库@版本号/资源路径
var backImageName = ''; // 指定背景图片 ,默认为空
var modelDir = ['ATRI']; // 指定需要加载的模型
initDefine(resourcesPath, backImageName, modelDir); // 初始化模型</script>
<!--End Of l2d Ver3.0 Code-->

l2d效果

话说,这个大小为啥看的有股魔导巧壳的味道doge