說明: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
#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
2、安裝 Mongodb
#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系統,目前Debian 10還沒Mongodb軟件包,不過試了下還是可以用下面的方法勉強安裝的
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
#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
並設置開機自啟:
#CentOS 6系統
service mongod start
chkconfig mongod on
#CentOS 7、Debian、Ubuntu系統
systemctl start mongod
systemctl enable mongod
3、安裝 fiora
#拉取源碼並存放於/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
。
#這裡註冊或登錄的時候返回的信息,後面的5d329dd354b9則為自己的userId
<-- getLinkmansLastMessages mYNheu93jds7 5d329dd354b9
如果ip:9200
打不開的,可以檢查下防火牆,CentOS
系統可以使用以下命令:
#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+
等。
#先修改你的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
其它系統,比如CentOS
、Debian 7
等系統,可以直接使用以下方法啟動:
#管理員userId和運行端口自行修改
export Administrator=5d329dd354b9 Port=9200
nohup npm start &
此時就可以訪問ip:9200
,運行端口以你設置的為準,這時候你登錄的時候,會發現左側多了個管理員圖標。
4、域名反代
如果你想使用域名的話,這裡依舊使用Caddy
反代,操作如下:
安裝Caddy
:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/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.test.com {
gzip
tls [email protected]
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
:
/etc/init.d/caddy start
就可以打開域名進行訪問了。
如果你想修改默認的頻道名稱的話,可以編輯config/server.js
文件,修改最下面的代碼:
defaultGroupName: 'fiora',
然後重啟應用即可。需要使用到七牛雲CDN
的,可以參考作者給的教程自行設置→傳送門
寶塔安裝#
1、安裝寶塔
#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
(使用域名訪問才需要安裝,反之不用)。
注意:Debian
安裝MongoDb
之前還需要使用命令apt install sudo
,不然可能存在MongoDb
啟動不了的情況;如果你已經安裝了MongoDb
,那就先使用apt install sudo
,再使用/etc/init.d/mongodb start
啟動即可。
2、安裝 fiora
該步驟參考上面的手動步驟3
,區別在於新建systemd
配置文件的時候,Environment
參數還需要加一樣,不然啟動可能失敗。
只需要把新建systemd
配置文件步驟換成下面這個,其它一模一樣。
#先給node做個軟連接,不然後面會啟動失敗
ln -sf $(which node) /usr/bin/node
#修改運行端口,可以默認
Port=9200
#以下命令一起複製進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
3、域名反代
先點擊左側網站,添加站點,然後再點擊添加好了的域名名稱,這時候就進入了站點配置,點擊配置文件,在中間添加以下代碼:
location / {
proxy_pass http://127.0.0.1:9200;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_http_version 1.1;
proxy_redirect off;
}
其它的就自己慢慢摸索吧,博主也沒過多使用,有問題可以直接去Github Issues
反饋。
版權聲明:本文為轉載文章,版權歸 Rat's Blog 所有,转载请注明出处!