我心目中的聊天室
- 颜值爆表
- 搭建简单
- 功能完善
Fiora
fiora聊天室是基于node.js和react由碎碎酱独自开发的开源网页聊天室,使用socket.io模块WebSocket协议通讯,支持Service Worker和PWA.功能丰富,并且简单易上手,很适合作为学习node.js的参考项目,node.js初学者的福音(此条5毛,碎碎酱你看到快给我钱钱。)
项目地址:
文档: https://yinxin630.github.io/fiora/
演示站点: https://fiora.suisuijiang.com/
搭建教程(首选用宝塔,简单方便快捷)
- 自我安装好宝塔。
- 在 软件商店 安装好
PM2管理器
、MongoDB
、Redis
,三个应用。 - 如有外部安全防火墙 请预先开放
9200
端口,宝塔放行9200
端口。 - ssh连接服务器
先测试下环境是否正常 没有的退出重新连接SSHnode -v
npm -v
拉取源码并存放于/opt文件夹 如果没有git请 yum -y install git
git clone https://github.com/yinxin630/fiora.git -b master /opt/fiora
进入文件夹cd /opt/fiora
安装依赖,这里不能用npm,需要用yarn来安装npm i -g yarn
yarn
构建和转移产物npm run build:client && npm run move-dist
启动npm start
如果按教程安装不能访问一定要检查服务器防火墙的端口是否放行
注册用户
打开 http://你服务器ip:9200 注册第一个用户: admin
接下来配置管理员和开机自启 ,先使用Ctrl+C断开运行。
先给node做个软连接,不然后面会启动失败ln -sf $(which node) /usr/bin/node
获取用户userid 比如admin
yarn script getUserId admin
设置管理员 替换下面红色的内容成上面取到的Userid
export Administrator=内容 Port=9200
以下命令一起复制进SSH客户端运行
[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=NODE_ENV=production Administrator=$Administrator Port=$Port
User=root
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
设置开机启动systemctl start fiora
在开机时启用服务systemctl enable fiora
至此重启,可使管理员权限生效。下面是其它参考内容,如diy fiora,往往需要重启才能生效。
在开机时禁用服务(此命令不用,仅记录。)systemctl disable fiora
重构(此命令不用,仅记录。)
npm script build:client
更新(此命令不用,仅记录)
拉代码 git pull
重新构建 yarn build:client
添加域名反代
如需要加证书,申请/更换ssl时需关闭域名反代。
- 宝塔面板里面,先点击左侧网站,添加站点,然后再点击添加好了的域名
- 网址 - 域名 - 设置- 反向代理 - 增加反向代理
- 目标URL http://127.0.0.1:9200
打开你的域名,就可以看到Fiora在运行了。
其它的设置事项,请参考官方说明。
一些修正的地方
1.套cdn不能注册新用户
进入 opt\fiora\server\routes\user.ts
注释第85 86行。
// const hasRegisteredWithin24Hours = await Redis.has(getNewRegisteredUserIpKey(ctx.socket.ip));
//assert(!hasRegisteredWithin24Hours, '系统错误');
2.缓存问题 如修改后 ip:9200 访问正常 域名访问还是旧文件
暂停域名反代
关闭 反向代理的 开启缓存
删除反向代理-->配置文件里 expires 12h
;
清空/www/server/nginx/proxy_cache_dir/
夹里文件
清空 /www/server/nginx/proxy_temp_dir/
夹里文件
如有cdn 也需要清除cdn缓存
开启域名反代
强制刷新/清空浏览器缓存/换个浏览器 重新访问
关于魔改问题
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
侧边
/opt/fiora/client/modules/Sidebar/
谢谢,用到了~~~~
yarn永远得神