前言:
最近发现了一款非常好玩的二次元Web在线聊天系统,自己尝试搭建了一下,整体来说难度不大,而且很有意思,所以就想着写一篇教程。
感兴趣的可以尝试一下,搭建完可以拉朋友进来玩。
项目地址
Github地址:https://github.com/yinxin630/fiora
简介
Fiora
是一款偏二次元的Web
多人在线聊天应用,使用Node.js
、Mongodb
、Socket.io
和React
编写,使用体验很好,挺新颖。
功能
- 好友,群组,私聊,群聊
- 文本,图片,代码,url等多种类型消息
- 贴吧表情,滑稽表情,搜索表情包
- 桌面通知,声音提醒,
语音播报
- 自定义桌面背景,主题颜色,文本颜色
- 查看在线用户,
@
功能
- 小黑屋禁言
宝塔搭建
512M
内存vps
可能还需要先加一点虚拟内存,不然构建过程会失败,可以使用swap
一键脚本
运行命令:
1
| wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh
|
然后根据选项进行操作,记得添加swap
的时候填写纯数字,默认单位为M
。
安装宝塔
1 2 3 4 5 6
| #CentOS系统 wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh #Ubuntu系统 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh #Debian系统 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
|
安装完成后,进入面板,点击左侧软件商店,然后安装PM2管理器
、MongoDB
、Nginx
(使用域名访问才需要安装,否则不用)。
安装Fiora
1 2 3 4 5 6 7 8 9 10 11 12
| #拉取源码并存放于/opt文件夹 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 #转移产物 npm run move-dist #启动 npm start
|
运行后打开ip:9200
,注册一个账号,然后可以看SSH客户端
运行日志,获取自己的userId
。得到如下图的输出:
1 2
| #这里注册或登录的时候返回的信息,后面的**5ed5106b96864aa333a39e49**则为自己的**userId** <-- **getLinkmansLastMessages rx6jrIRF9lhHP7h4AAAA 5ed5106b96864aa333a39e49**
|
如果ip:9200
打不开的,可以检查下防火墙,CentOS
系统可以使用以下命令:
1 2 3 4 5 6 7 8
| #CentOS 6 iptables -I INPUT -p tcp --dport 9200 -j ACCEPT service iptables save service iptables restart
#CentOS 7 firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload
|
像阿里云等,还需要额外在安全组开放端口。
接下来再将自己的账号设置成管理员,先使用Ctrl+C
断开运行。
新建Systemd
配置文件,只适用于CentOS 7
、Debian 8+
、Ubuntu 16+
等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #先修改你的userId和运行端口后复制到SSH运行 Administrator=5ed5106b96864aa333a39e49 Port=9200 #新建fiora用户并授权 useradd -M fiora && usermod -L fiora chown -R fiora:fiora /opt/fiora #先给node做个软连接,不然后面会启动失败 ln -sf $(which node) /usr/bin/node #以下命令一起复制进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=NODE_ENV=production Administrator=$Administrator Port=$Port User=fiora Restart=on-failure RestartSec=42s
[Install] WantedBy=multi-user.target EOF
|
开始启动并设置开机自启:
1 2
| systemctl start fiora systemctl enable fiora
|
其它系统,比如CentOS
、Debian 7
等系统,可以直接使用以下方法启动:
1 2 3
| #管理员userId和运行端口自行修改 export Administrator=5ed5106b96864aa333a39e49 Port=9200 nohup npm start &
|
此时就可以访问ip:9200
,运行端口以你设置的为准,这时候你登陆的时候,会发现左侧多了个管理员图标。
域名反代
先点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,添加反向代理,格式如图:
侧边栏可以在网站根目录/opt
/fiora
/public
/js
/app.a0d840f0.js
修改
手动安装
所需环境:Nodejs >= 8.9.0
、Mongodb
。
安装Nodejs
1 2 3 4 5 6 7
| #Debian/Ubuntu系统 curl -sL https://deb.nodesource.com/setup_10.x | bash - apt install -y git nodejs
#CentOS系统 curl -sL https://rpm.nodesource.com/setup_10.x | bash - yum install nodejs git -y
|
安装Mongodb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #CentOS 6系统,将下面命令一起复制进SSH客户端运行 cat <<EOF > /etc/yum.repos.d/mongodb.repo [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/6/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
#CentOS 7系统,将下面命令一起复制进SSH客户端运行 cat <<EOF > /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
#Debian 8系统 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list apt update -y apt install -y mongodb-org
#Debian 9系统 curl https://www.mongodb.org/static/pgp/server-4.0.asc | apt-key add - echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list apt-get update -y apt-get install -y mongodb-org
#Debian 10系统 curl https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add - echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list apt update -y apt install -y mongodb-org
#Ubuntu 16.04系统 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 echo "deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list apt update -y apt install -y mongodb-org
#Ubuntu 18.04、18.10、19.04系统 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 echo "deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list apt update -y apt install -y mongodb-org
|
如果导入公匙时出现gnupg, gnupg2 and gnupg1 do not seem to be installed
错误,使用apt install -y gnupg2
,然后重新导入即可。
启动Mongodb
并设置开机自启:
1 2 3 4 5 6 7
| #CentOS 6系统 service mongod start chkconfig mongod on
#CentOS 7、Debian、Ubuntu系统 systemctl start mongod systemctl enable mongod
|
安装Fiora
安装步骤和宝塔安装相同,这边就不再重复了。
域名反代
如果你想使用域名的话,这里使用Caddy
反代,操作如下:
安装Caddy
:
1 2 3
| wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/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
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #以下全部内容是一个整体,请修改域名后一起复制到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
|
tls
参数会自动帮你签发ssl
证书,如果你要使用自己的ssl
,改为tls /root/xx.crt /root/xx.key
即可。后面为ssl
证书路径。
启动Caddy
:
就可以打开域名进行访问了。
题外话
博主感觉这个程序做的还是挺好的,可以搭建一个给朋友玩玩。