Fiora二次元Web在线聊天室源码搭建教程|详细

news2025/1/11 4:27:41

安卓客户端体验:fiora点击下载

网页版体验:fiora网页版

 

 

 

 

使用的系统是Linux Centos7.6
注意: 512M内存vps可能还需要先加一点虚拟内存,不然构建过程会失败。

开始安装
命令行安装方法
一、安装Nodejs

curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs git -y

二、安装Mongodb

#将下面命令一起复制进SSH客户端运行
cat < /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
yum -y install mongodb-org

注意: 如果导入公匙时出现gnupg, gnupg2 and gnupg1 do not seem to be installed错误,使用apt install -y gnupg2,然后重新导入即可。

1、启动Mongodb并设置开机自启:

systemctl start mongod
systemctl enable mongod

三、安装redis并设置后台运行
1、下载redis安装包
新开一个终端输入:

wget http://download.redis.io/releases/redis-4.0.6.tar.gz

2、解压压缩包

tar -zxvf redis-4.0.6.tar.gz

3、yum安装gcc依赖

yum install gcc

输入y即可

4、跳转到redis解压目录下

cd redis-4.0.6

5、编译安装

make MALLOC=libc

将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录

cd src && make install

到redis-4.0.6/src目录下测试有没有安装成功

./redis-server

末尾为Ready to accept connections就说明安装成功了。

6、以后台进程方式运行redis
到redis-4.0.6目录下修改redis.conf文件。

cd ..
vim redis.conf

daemonize no

修改为

daemonize yes

最后指定redis.conf文件启动即可。

./redis-server /usr/local/redis-4.0.6/redis.conf

四、安装fiora
注意:任何操作都要在fiora目录下进行

#拉取源码并存放于/opt文件夹
git clone https://github.com/yinxin630/fiora.git -b master /opt/fiora
cd /opt/fiora
#安装依赖,这里不能用npm,需要用yarn来安装
npm i -g yarn
yarn
#构建 如果报错error fiora@1.0.0: The engine "node" is incompatible with this module. Expected version ">= 14". Got "10.24.1"
yarn config set ignore-engines true
#解决办法
npm run build:web #前版本npm run build:client
#转移产物
echo "JwtSecret=" > .env2. #前版本npm run move-dist
#启动
npm start

运行后打开ip:9200,注册一个账号,然后可以看SSH客户端运行日志,获取自己的userId。

#这里注册或登录的时候返回的信息,后面的5d329dd354b9则为自己的userId
<-- getLinkmansLastMessages mYNheu93jds7 5d329dd354b9

如果ip:9200打不开的,可以检查下防火墙,可以使用以下命令:

firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload

注意: 像阿里云等,还需要额外在安全组开放端口。
接下来再将自己的账号设置成管理员,先使用Ctrl+C断开运行。
新建Systemd配置文件:

#先修改你的userId和运行端口后复制到SSH运行
Administrator=5d329dd354b9
Port=9200
#新建fiora用户并授权
useradd -M fiora && usermod -L fiora
chown -R fiora:fiora /opt/fiora
#新建systemd配置文件,将以下代码一起复制到SSH运行
cat > /etc/systemd/system/fiora.service <<EOF
[Unit]
Description=fiora
After=network.target
Wants=network.target

[Service]
Type=simple
PIDFile=/var/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/opt/fiora
Environment=Administrator=$Administrator Port=$Port
User=fiora
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
EOF

开始启动并设置开机自启:

systemctl start fiora
systemctl enable fiora

管理员userId和运行端口自行修改。

export Administrator=5d329dd354b9 Port=9200
nohup npm start &

此时就可以访问ip:9200,运行端口以你设置的为准,这时候你登陆的时候,会发现左侧多了个管理员图标。

五、域名反代

如果你想使用域名的话,这里使用Caddy反代。
安装Caddy:

wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy:

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "www.moerats.com {
gzip
proxy / 127.0.0.1:9200 {
websocket
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
gzip
tls admin@moerats.com
proxy / 127.0.0.1:9200 {
websocket
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
}" > /usr/local/caddy/Caddyfile

启动Caddy:

/etc/init.d/caddy start

就可以打开域名进行访问了。
注意事项: 一个ip一天只能注册一个账号,还有上传不了图片请自行查看日志。
查看日志命令:

pm2 logs fiora

到此安装就完成了,修改文件,fiora页面修改路径

  • 以下logo:
  • /opt/fiora/public/favicon-96.png
  • /opt/fiora/public/favicon-192.png
  • /opt/fiora/public/favicon-512.png
  • 以下主页修改路径
  • /opt/fiora/client/templates/index.html
  • 以下侧边栏修改路径
  • /opt/fiora/client/modules/Sidebar/

页面修改问题

修改fiora内容,往往需要重构才能生效。

其它的就自己慢慢摸索吧,博主也没过多使用,有问题可以直接去Github Issues反馈。

宝塔安装教程

进入软件商店,安装如下依赖

Nginx
PM2管理器
MongoDB
Redis

然后进入刚才安装的PM2管理器插件设置,在Node版本选项卡中选中(如有更新的版本,建议选择最新的正式版使用)

回到腾讯云控制台,进入终端,输入下面命令获取到root权限并切换到网站目录

sudo su
cd /www/wwwroot/

拉取文件

git clone https://github.com/yinxin630/fiora.git -b master

安装yarn依赖并进入fiora目录

npm install -g yarn
cd fiora/

安装依赖并构建客户端代码

yarn install
yarn build:web

配置 JwtSecret

echo "JwtSecret=2ace77bfb3684df6" > .env2

启动服务端,配置进程守护

yarn start
pm2 start yarn --name fiora -- start

此时就可以在浏览器输入http://[ip地址]:9200打开fiora聊天室了。如果无法打开,请检查宝塔面板的系统防火墙,并一键放通腾讯云后台防火墙:

还可以设置反向代理,直接通过你的域名访问聊天室!

配置管理员

获取用户userid 比如admin

yarn script getUserId admin

设置管理员,这里可能无效,不过可以看下边其他方法

export Administrator=获取的userid 

Port=9200

添加管理员权限,上边那个没效果的采取这个

在fiora根目录,新建 .env文件,里边内容输入如下,一行一个

Administrator=你的userid Port=9200

docker 运行

首先安装 docker https://docs.docker.com/install/

直接从 DockerHub 镜像运行

# 拉取 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

本地构建镜像运行

克隆项目到本地 git clone https://github.com/yinxin630/fiora.git -b master
构建镜像 docker-compose build --no-cache --force-rm
运行 docker-compose up

实现大文件上传教程

第一步:修改服务端

cd fiora/packages/server/src

修改app.ts里的第37行和38行:

pingTimeout: 10000, 
pingInterval: 5000,

将这两个的数值改成你自己需要的数值,单位为毫秒,大概意思就是增加socket.io的连接超时,时间越长,你上传大文件时就不会因为超时断开连接。

cd fiora/packages/server/node_modules/engine.io/lib

修改server.js里的28行和29行:

        pingTimeout: 20000,
        pingInterval: 25000,

将这两个的数值改成你自己需要的数值,单位为毫秒,同上。

修改server.js里的31行:
maxHttpBufferSize: 1e6,

其中1e6是b字节的数值,这里是限制你上传文件的大小,你可以根据自己的需要更改。

(貌似这里只能用b字节?那就需要你自己去换算)

第二步:修改客户端配置文件

vi fiora/packages/config/client.ts

    maxFileSize: process.env.MaxFileSize
        ? parseInt(process.env.MaxFileSize, 10)
        : MB * 10,

其中: MB * 10, 把10改成你需要的数值,单位MB,这里是在客户端限制你上传文件的大小。

第三步:修改Nginx上传文件限制和连接超时

这里用的宝塔,大家可以自己在nginx.conf修改。

第四步:

重构: yarn build:web
启动: yarn start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能Python-python_land

Python Land: 探索Python世界的终极指南 Python是一种具有广泛用途的高级编程语言&#xff0c;具有简单易学的特点&#xff0c;因此而备受青睐。Python Land是一个编程社区&#xff0c;该社区专注于提供Python编程有关的资源&#xff0c;以帮助有兴趣的人通过学习Python语言提…

HTTP中 Connection: keep-Alive与TCP中中keepalive有什么区别?

有小伙伴不明白keep-Alive和keepalive有什么区别&#xff1f;今天写这篇文章详细讲清楚&#xff01; HTTP是请求响应模型也就是客户端发起了请求&#xff0c;服务端才会返回响应&#xff0c;一来一回。 由于 HTTP 是基于 TCP 传输协议实现的&#xff0c;客户端与服务端要进行 H…

【中阳期货】国际期货与股票的区别

摘要:“股票之后就是期货”这句话生动地揭示了股票交易与期货交易的内在联系。期货交易的重要功能首先是有利于增强商品价格的预期性,为商业活动的顺利进行创造良好的条件。期货借助市场功能可以找到商品真正的市场价格,有利于制造厂商和生产者确定产品成本产品生产费用,以便顺…

ubuntu下使用python进行简单的UDP通信

目录 一、参考链接二、主要工作1.查看本机ip2.下载Ubuntu下网络调试助手 NetAssist3.编写一个python脚本测试UDP通信4.测试简单的UDP通信 一、参考链接 Ubuntu下网络调试助手 NetAssist 使用python实现UDP通信 python代码实现简单的udp通信 二、主要工作 1.查看本机ip #下载…

如何压缩过大的H2数据库文件

平台自带的H2数据库在使用过程中会随着数据量的增加而增长&#xff0c;但是并不会在删除数据后自动缩小。所以O2OA提供了数据库压缩命令用于缩小数据库占用的空间。 一、先决条件 1、O2Server服务器正常运行&#xff0c;系统安装部署请参考文档《如何在服务器上安装部署O2OA》…

微软收购暴雪战未结束;迪士尼流失 4 百万用户;苹果 iPhone 销量增长;国际旅行回暖机票订单火爆;美国年通胀率再次下降 | 经济学人第 20 周

文章目录 苹果 iPhone 销量增长&#xff0c;但总体收入下降微软收购暴雪战未结束迪士尼流失 4 百万用户美国年通胀率再次下降国际旅行回暖&#xff0c;机票订单火爆瑞银认命首席执行官&#xff0c;完成对瑞士信贷的最终收购最后 苹果 iPhone 销量增长&#xff0c;但总体收入下降…

【Linux环境基础开发工具】编辑器-vim

写在前面 vim是一个编辑器&#xff0c;是在Linux下编程的常用工具&#xff0c;如果要学习在Linux下的编程&#xff0c; 那学会使用vim是一个必修课&#xff0c;今天我就来讲解如何使用vim编辑器。 目录 写在前面 什么是vim vim的常用命令 &#xff08;1&#xff09;gg&a…

C++之堆排

堆排的原理和结构&#xff1a; 堆排序是一种常见的排序算法&#xff0c;基于堆这种数据结构实现。堆是一种特殊的树形数据结构&#xff0c;它满足以下两个条件&#xff1a; 堆是一棵完全二叉树。 堆的任意节点的值&#xff0c;都必须大于等于&#xff08;或小于等于&#xff0…

平板第三方电容笔怎么样?apple pencil一代平替笔推荐

我是一位数码产品的爱好者&#xff0c;所以我对电容笔也有一定的了解。我认为&#xff0c;苹果的原装电容笔和一般的电容笔的区别&#xff0c;在于它们所能产生的压感效果不同。由于苹果的电容笔具有独特的“重力压感”&#xff0c;因此&#xff0c;这款画笔能让我们快速地在画…

搜索二维矩阵 II——力扣240

文章目录 题目描述法一&#xff09;二分查找法二&#xff09;抽象二叉搜索树BST法三&#xff09;直接查找 题目描述 法一&#xff09;二分查找 与搜索二维矩阵——力扣74不同&#xff0c;本题没有保证「每行的第一个整数大于前一行的最后一个整数」&#xff0c;因此无法采取「两…

CentOS安装过程笔记

以前弄过一个ls的版本是直接虚拟机带起的。是系统都是别人给设置好调好的win系统的。后来发现问题&#xff0c;自己也不会搞&#xff0c;所以那个平台就一直扔在那里也没用过。 这次自己搞就想从0试一下吧。一直以为服务器必须Linux才行&#xff0c;所以就想安个CentOS&#x…

TLS 加速技术:Intel QuickAssist Technology(QAT)解决方案

作者&#xff1a;vivo 互联网服务器团队- Ye Feng 本文介绍了 Intel QAT 技术方案&#xff0c;通过Multi-Buffer技术和QAT硬件加速卡的两种方式实现对TLS的加速 一、背景 当前 TLS 已经成为了互联网安全的主要传输协议&#xff0c;TLS带来更高的安全性的同时&#xff0c;也带…

【C++】用红黑树迭代器封装map和set

封装有点难 - . - 文章目录 前言一、红黑树原先代码的修改二、红黑树迭代器的实现总结 前言 因为我们要将红黑树封装让map和set使用&#xff0c;所以我们要在原来的基础上将红黑树代码进行修改&#xff0c;最主要的是修改模板参数&#xff0c;下面我们直接进入正题&#xff1a…

C++ 布隆过滤器哈希切割

前言 现实生活中&#xff0c;存在很多key_value的模型&#xff0c;我们可以使用哈希或者红黑树存储这些数据。但是二者只是内存的存储方式&#xff0c;无法处理海量数据。 海量数据的处理我们可以使用位图处理。但是位图的局限性是&#xff0c;其只能映射整型&#xff0c;对于…

【k8s】Jenkins实现springcloud应用CI、CD实践 【三】【待写】

一、运行Jenkins流水线流程思路&#xff1a; 场景&#xff1a;java微服务应用&#xff0c; 单体仓库&#xff0c;多个微服务模块&#xff0c;&#xff08;并行构建、自动化构建、根据模块变更仅更新特定模块&#xff09; java、nodejsCI阶段 并行方式; 根据模块变…

港联证券|标普500指数年内涨逾9%,美股牛市已至?

今年以来&#xff0c;美国标普500指数累计上涨超过9%&#xff0c;这引发了一场关于美股牛市是否已经到来的辩论。 持悲观态度的摩根士丹利股票策略师威尔逊&#xff08;Michael Wilson&#xff09;警告称&#xff0c;最近的反弹不过是一种假象。而美国银行的萨勃拉曼尼亚&#…

四、数据仓库详细介绍(规范)

大家好&#xff0c;这是数据仓库系列的第三个话题&#xff0c;排序在架构之后、建模之前。为什么会提的这么靠前呢&#xff1f; 因为规范约束的是数仓建设的全流程&#xff0c;以及后续的迭代和运维。事实上&#xff0c;数仓规范文档&#xff0c;应该随着架构设计文档&#xf…

chatgpt赋能Python-python_lambdify

Python Lambdify: 一个方便的数学表达式转换工具 Python是一种广泛使用的编程语言&#xff0c;适用于各种领域&#xff0c;如数据科学、机器学习和科学计算等。在这些领域中&#xff0c;数学表达式起到了至关重要的作用&#xff0c;而Python Lambdify&#xff08;简称为“lamb…

计算机操作系统(慕课版)第四章课后题答案

一、简答题 1.什么是临界资源&#xff1f;什么是临界区&#xff1f; 临界资源&#xff1a;以互斥形式访问的资源&#xff1b;临界区&#xff1a;访问临界资源的代码。 2.同步机制应遵循的准则有哪些&#xff1f; 空闲让进&#xff1b;忙则等待&#xff1b;有限等待&#xff1b…

Windows本地快速搭建SFTP服务共享文件【外网访问】

文章目录 1. 搭建SFTP服务器1.1 下载 freesshd服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内网连接测试成功 3 使用cpolar内网穿透3.1 创建SFTP隧道3.2 查看在线隧道列表 4. 使用SFTP客户端&#xff0…