- 1:功能
- 2:手动安装
- 3:宝塔安装
说明:Fiora是一款偏二次元的Web多人在线聊天应用,使用Node.js、Mongodb、Socket.io和React编写,使用起来还行,挺简洁的,这里水个搭建教程,有兴趣的可以玩玩。
功能
- 好友,群组,私聊,群聊
- 文本,图片,代码,
url等多种类型消息 - 贴吧表情,滑稽表情,搜索表情包
- 桌面通知,声音提醒,语音播报
- 自定义桌面背景,主题颜色,文本颜色
- 查看在线用户,
@功能 - 小黑屋禁言
手动安装
Github地址:https://github.com/yinxin630/fiora
所需环境:Nodejs >= 8.9.0、Mongodb。
说明:512M内存vps可能还需要先加一点虚拟内存,不然构建过程会失败,可以使用Swap一键脚本→传送门。
1、安装Nodejs
<span style="font-family: Consolas, Monaco, monospace;">#Debian/Ubuntu系统</span>
<span class="hljs-attribute">curl</span> -sL https://deb.nodesource.com/setup_10.x | bash -
apt install -y git nodejs
<span class="hljs-comment">#CentOS系统</span>
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
<p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; white-space: normal;"><span style="font-family: Consolas, Monaco, monospace;">yum install nodejs git -y</span></p>
2、安装Mongodb
<span class="hljs-comment">#CentOS 6系统,将下面命令一起复制进SSH客户端运行</span>
cat <<EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org<span class="hljs-number">-4.0</span>]
name=MongoDB Repository
baseurl=https:<span class="hljs-comment">//repo.mongodb.org/yum/redhat/6/mongodb-org/4.0/x86_64/</span>
gpgcheck=<span class="hljs-number">1</span>
enabled=<span class="hljs-number">1</span>
gpgkey=https:<span class="hljs-comment">//www.mongodb.org/static/pgp/server-4.0.asc</span>
EOF
yum -y install mongodb-org
<span class="hljs-comment">#CentOS 7系统,将下面命令一起复制进SSH客户端运行</span>
cat <<EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org<span class="hljs-number">-4.0</span>]
name=MongoDB Repository
baseurl=https:<span class="hljs-comment">//repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/</span>
gpgcheck=<span class="hljs-number">1</span>
enabled=<span class="hljs-number">1</span>
gpgkey=https:<span class="hljs-comment">//www.mongodb.org/static/pgp/server-4.0.asc</span>
EOF
yum -y install mongodb-org
<span class="hljs-comment">#Debian 8系统</span>
apt-key adv --keyserver hkp:<span class="hljs-comment">//keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4</span>
<span class="hljs-keyword">echo</span> <span class="hljs-string">"deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/4.0 main"</span> | tee /etc/apt/sources.<span class="hljs-keyword">list</span>.d/mongodb-org<span class="hljs-number">-4.0</span>.<span class="hljs-keyword">list</span>
apt update -y
apt install -y mongodb-org
<span class="hljs-comment">#Debian 9系统</span>
curl https:<span class="hljs-comment">//www.mongodb.org/static/pgp/server-4.0.asc | apt-key add -</span>
<span class="hljs-keyword">echo</span> <span class="hljs-string">"deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main"</span> | tee /etc/apt/sources.<span class="hljs-keyword">list</span>.d/mongodb-org<span class="hljs-number">-4.0</span>.<span class="hljs-keyword">list</span>
apt-get update -y
apt-get install -y mongodb-org
<span class="hljs-comment">#Debian 10系统</span>
curl https:<span class="hljs-comment">//www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -</span>
<span class="hljs-keyword">echo</span> <span class="hljs-string">"deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main"</span> | tee /etc/apt/sources.<span class="hljs-keyword">list</span>.d/mongodb-org<span class="hljs-number">-4.2</span>.<span class="hljs-keyword">list</span>
apt update -y
apt install -y mongodb-org
<span class="hljs-comment">#Ubuntu 16.04系统</span>
apt-key adv --keyserver hkp:<span class="hljs-comment">//keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4</span>
<span class="hljs-keyword">echo</span> <span class="hljs-string">"deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse"</span> | tee /etc/apt/sources.<span class="hljs-keyword">list</span>.d/mongodb-org<span class="hljs-number">-4.0</span>.<span class="hljs-keyword">list</span>
apt update -y
apt install -y mongodb-org
<span class="hljs-comment">#Ubuntu 18.04、18.10、19.04系统</span>
apt-key adv --keyserver hkp:<span class="hljs-comment">//keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4</span>
<span class="hljs-keyword">echo</span> <span class="hljs-string">"deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse"</span> | tee /etc/apt/sources.<span class="hljs-keyword">list</span>.d/mongodb-org<span class="hljs-number">-4.0</span>.<span class="hljs-keyword">list</span>
apt update -y
apt install -y mongodb-org
如果导入公匙时出现gnupg, gnupg2 and gnupg1 do not seem to be installed错误,使用apt install -y gnupg2,然后重新导入即可。
启动Mongodb并设置开机自启:
<span class="hljs-comment">#CentOS 6系统</span>
<span class="hljs-attribute">service</span> mongod start
chkconfig mongod <span class="hljs-literal">on</span>
<span class="hljs-comment">#CentOS 7、Debian、Ubuntu系统</span>
systemctl start mongod
systemctl enable mongod
3、安装fiora
<span class="hljs-meta">#</span><span class="bash">拉取源码并存放于/opt文件夹</span>
git clone https://github.com/yinxin630/fiora.git -b master /opt/fiora
cd /opt/fiora
<span class="hljs-meta">#</span><span class="bash">安装依赖,这里不能用npm,需要用yarn来安装</span>
npm i -g yarn
yarn
<span class="hljs-meta">#</span><span class="bash">构建</span>
npm run build
<span class="hljs-meta">#</span><span class="bash">转移产物</span>
npm run move-dist
<span class="hljs-meta">#</span><span class="bash">启动</span>
npm start
如果在yarn运行后出现报错再次运行 npm install -g yarn 即可
运行后打开ip:9200,注册一个账号,然后可以看SSH客户端运行日志,获取自己的userId。
<span class="hljs-meta">#</span><span class="bash">这里注册或登录的时候返回的信息,后面的5d329dd354b9则为自己的userId</span>
<-- getLinkmansLastMessages mYNheu93jds7 5d329dd354b9
如果ip:9200打不开的,可以检查下防火墙,CentOS系统可以使用以下命令:
<span class="hljs-comment">#CentOS 6</span>
<span class="hljs-attribute">iptables</span> -I INPUT -p tcp --dport <span class="hljs-number">9200</span> -j ACCEPT
service iptables save
service iptables restart
<span class="hljs-comment">#CentOS 7</span>
firewall-cmd --zone=public --add-port=<span class="hljs-number">9200</span>/tcp --<span class="hljs-literal">permanent</span>
firewall-cmd --reload
像阿里云等,还需要额外在安全组开放端口。若安装了宝塔记得在宝塔内开放端口。
接下来再将自己的账号设置成管理员,先使用Ctrl+C断开运行。
新建Systemd配置文件,只适用于CentOS 7、Debian 8+、Ubuntu 16+等
<span class="hljs-meta">#先修改你的userId和运行端口后复制到SSH运行</span>
Administrator=<span class="hljs-number">5</span>d329dd354b9
Port=<span class="hljs-number">9200</span>
<span class="hljs-meta">#新建fiora用户并授权</span>
useradd -M fiora && usermod -L fiora
chown -R fiora:fiora /opt/fiora
<span class="hljs-meta">#新建systemd配置文件,将以下代码一起复制到SSH运行</span>
cat > /etc/systemd/system/fiora.service <<EOF
[<span class="hljs-meta">Unit</span>]
Description=fiora
After=network.target
Wants=network.target
[<span class="hljs-meta">Service</span>]
Type=simple
PIDFile=/<span class="hljs-keyword">var</span>/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/opt/fiora
Environment=Administrator=$Administrator Port=$Port
User=fiora
Restart=<span class="hljs-keyword">on</span>-failure
RestartSec=<span class="hljs-number">42</span>s
[<span class="hljs-meta">Install</span>]
WantedBy=multi-user.target
EOF
开始启动并设置开机自启
systemctl <span class="hljs-keyword">start</span> fiora
systemctl <span class="hljs-keyword">enable</span> fiora
其它系统,比如CentOS、Debian 7等系统,可以直接使用以下方法启动:
<span class="hljs-comment">#管理员userId和运行端口自行修改</span>
<span class="hljs-attribute">export</span> Administrator=5d329dd354b9 Port=<span class="hljs-number">9200</span>
nohup npm start &
此时就可以访问ip:9200,运行端口以你设置的为准,这时候你登陆的时候,会发现左侧多了个管理员图标。
4、域名反代
如果你想使用域名的话,这里依旧使用Caddy反代,操作如下:
安装Caddy:
<span class="hljs-attribute">wget</span> -N --<span class="hljs-literal">no</span>-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
<span class="hljs-comment">#备用地址</span>
wget -N --<span class="hljs-literal">no</span>-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
配置Caddy:
<span class="hljs-comment">#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!</span>
<span class="hljs-comment">#http访问,该配置不会自动签发SSL</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"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}
}
}"</span> > /usr/<span class="hljs-built_in">local</span>/caddy/Caddyfile
<span class="hljs-comment">#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string">"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}
}
}"</span> > /usr/<span class="hljs-built_in">local</span>/caddy/Caddyfile
tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。
启动Caddy:
/etc/init.d/caddy <span class="hljs-keyword">start</span>
就可以打开域名进行访问了。
如果你想修改默认的频道名称的话,可以编辑config/server.js文件,修改最下面的代码:
defaultGroupName: <span class="hljs-string">'fiora'</span>,
然后重启应用即可。需要使用到七牛云CDN的,可以参考作者给的教程自行设置→传送门
宝塔安装
1、安装宝塔
<span class="hljs-comment">#CentOS系统</span>
<span class="hljs-attribute">wget</span> -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
<span class="hljs-comment">#Ubuntu系统</span>
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
<span class="hljs-comment">#Debian系统</span>
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
安装完成后,进入面板,点击左侧软件商店,然后安装PM2管理器、MongoDB、Nginx(使用域名访问才需要安装,反之不用)。
注意:Debian安装MongoDb之前还需要使用命令apt install sudo,不然可能存在MongoDb启动不了的情况;如果你已经安装了MongoDb,那就先使用apt install sudo,再使用/etc/init.d/mongodb start启动即可。
2、安装fiora
该步骤参考上面的手动步骤3,区别在于新建systemd配置文件的时候,Environment参数还需要加一样,不然启动可能失败。别忘了在宝塔开启端口,不然访问不了。
只需要把新建systemd配置文件步骤换成下面这个,其它一模一样
<span class="hljs-meta">#先给node做个软连接,不然后面会启动失败</span>
ln -sf $(which node) /usr/bin/node
<span class="hljs-meta">#修改运行端口,可以默认</span>
Port=<span class="hljs-number">9200</span>
<span class="hljs-meta">#以下命令一起复制进SSH客户端运行</span>
cat > /etc/systemd/system/fiora.service <<EOF
[<span class="hljs-meta">Unit</span>]
Description=fiora
After=network.target
Wants=network.target
[<span class="hljs-meta">Service</span>]
Type=simple
PIDFile=/<span class="hljs-keyword">var</span>/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/opt/fiora
Environment=NODE_ENV=production Administrator=$Administrator Port=$Port
User=fiora
Restart=<span class="hljs-keyword">on</span>-failure
RestartSec=<span class="hljs-number">42</span>s
[<span class="hljs-meta">Install</span>]
WantedBy=multi-user.target
EOF
3、域名反代
先点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击配置文件,在中间添加以下代码:
<span class="hljs-attribute">location</span> / {
<span class="hljs-attribute">proxy_pass</span> http://127.0.0.1:9200;
<span class="hljs-attribute">proxy_set_header</span> Host <span class="hljs-variable">$host</span>;
<span class="hljs-attribute">proxy_set_header</span> X-Real-IP <span class="hljs-variable">$remote_addr</span>;
<span class="hljs-attribute">proxy_set_header</span> X-Forwarded-For <span class="hljs-variable">$proxy_add_x_forwarded_for</span>;
<span class="hljs-attribute">proxy_set_header</span> Upgrade <span class="hljs-variable">$http_upgrade</span>;
<span class="hljs-attribute">proxy_set_header</span> Connection <span class="hljs-string">"upgrade"</span>;
<span class="hljs-attribute">proxy_set_header</span> X-Forward-Proto http;
<span class="hljs-attribute">proxy_set_header</span> X-Nginx-Proxy <span class="hljs-literal">true</span>;
<span class="hljs-attribute">proxy_http_version</span> <span class="hljs-number">1</span>.<span class="hljs-number">1</span>;
<span class="hljs-attribute">proxy_redirect</span> <span class="hljs-literal">off</span>;
}