站点图标 姿势小王子

使用fiora搭建激情在线群聊,姿势在线群聊上线

垃圾pr促销20$套餐,一直想拿来搞点什么事情,又不能安装windows,又不能挖矿。。。拿来做代理或者离线网盘或者tracker服务器好像也有点浪费了,不如再加一个在线激情群聊,还算没有太多的浪费。

自己搭了一个:https://chat.zsxwz.com/

github:https://github.com/yinxin630/fiora

搭建查看官方文档即可:https://yinxin630.github.io/fiora/zh-Hans/docs/getting-start/

比较简单的是使用docker或者某塔面板搭建,自己就手动搭建了,用ubuntu比较多,就以这个linux为例吧。

1、建站环境安装,需要安装nodejs,redis,MongoDB和nginx

一般能用就行了,也不一定需要自己编译一套。

#都可以使用apt一键安装
apt install nginx redis nodejs npm mongodb git -y

node需要14以上版本,一些linux系统自带的软件源一般安装的是长期更新版,版本可能比较低,可以使用n来搭建新版:https://bbs.zsxwz.com/thread-3991.htm

2、构件运行:

cd ~

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

cd fiora

npm install -g yarn

yarn install

#构建
yarn build:client && yarn move-dist

# 启动
yarn start

后台运行的方法很多,比如用pm2,screen,tmux等等,已screen为例:

apt install screen

cd ~/fiora
screen -dmS fiora yarn start # 后台运行
screen -ls # 查看是否有在后台
screen -S fiora -X quit 退出
screen -r fiora # 恢复运行窗口

开机自启,可以使用rc.local,或者systemd,比如,注意一下fiora目录的路径WorkingDirectory:

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=/root/fiora
User=root
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
EOF

管理:

systemctl enable fiora.service # 开机自启

systemctl enable fiora.service #取消开机自启

systemctl start fiora.service #启动

systemctl stop fiora.service #停止

systemctl status fiora.service # 查看状态

这时候打开:http://你的ip:9200,即可访问。

4、设置管理员和配置:

打开网站之后,设置一个用户名,密码,然后就可以登录了。

设置管理员,

#获取用户id,用户名称可以随意修改,但是id只有一个。
yarn script getUserId 用户名

在fiora更目录创建.env配置文件:

#为了安全,自己可以设置一个加密
JwtSecret='*****'

#设置上面获取到的管理员用户id
Administrator=12555dfdfdf

其他比如,限制上传文件大小,默认主题标签等等,参考文档即可:https://yinxin630.github.io/fiora/zh-Hans/docs/config

修改过配置之后,重启程序即可。

5、一些管理脚本:

yarn script deleteMessages

删除所有历史消息记录, 如果消息图片和文件是存储在服务器上, 也可以一并删除

yarn script deleteTodayRegisteredUsers

删除当天(以服务器时间为准,所以最好先同步一下时间)新注册的所有用户

apt install ntpdate

# 同步时间
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate us.pool.ntp.org

yarn script deleteUser [userId]

删除指定用户, 同时删除其历史消息, 退出其已加入的群组并删除其所有好友关系

yarn script doctor

检查服务端配置和状态, 可以用来定位服务端启动失败的原因

yarn script fixUsersAvatar

修复用户错误头像路径, 请根据你的实际情况修改脚本判断逻辑

yarn script getUserId [username]

获取指定用户名的 userId

yarn script register [username] [password]

注册新用户, 当禁止注册时可以由管理员通过其注册新用户

yarn script updateDefaultGroupName [newName]

更新默认群组名

6、手动修改主题,网站logo,侧边栏等等:

侧边栏文件目录,需要什么改什么就行:./fiora/client/modules/Sidebar/

logo:

/opt/fiora/public/favicon-96.png

/opt/fiora/public/favicon-192.png

/opt/fiora/public/favicon-512.png

index.html文件:

/opt/fiora/client/templates/index.html

主要是修改public和client里面的文件,修改public的文件重启程序即可生效,但是部分修改无效,就需要修改client文件夹里的文件,修改之后需要重新构建,以后如果有什么新版git之后,也是重新构建,之后重启程序即可。

在fiora根目录执行:

cd ~/fiora

yarn build:client && yarn move-dist

7、nginx反代和https证书申请,先将域名解析到你服务器的ip:

申请证书可以使用certbot,可以参考之前写的ipv6申请证书的方法,或者acme脚本,使用脚本之前先停用nginx:

systemctl stop nginx

apt install socat

bash

curl  https://get.acme.sh | sh

bash /root/.acme.sh/acme.sh --issue -d 你的域名 --standalone -k ec-256

nginx反代,程序端口,默认为9200,你有可以在.env里设置自己想用的端口:

在/etc/nginx/conf.d目录,新建一个网站nginx配置文件,fiora.conf

server {
    listen 80;
    listen [::]:80;
    server_name chat.zsxwz.com; //修改成你自己的域名
    return 301 https://chat.zsxwz.com$request_uri; //修改成你自己的域名
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name chat.zsxwz.com;
    root /root/wwwroot/html;
    index index.html;

    ssl_certificate       /root/.acme.sh/chat.zsxwz.com_ecc/fullchain.cer;   //修改成你自己的证书路径
    ssl_certificate_key   /root/.acme.sh/chat.zsxwz.com_ecc/chat.zsxwz.com.key; //修改成你自己的证书路径
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header Public-Key-Pins 'pin-sha256="amMeV6gb9QNx0Zf7FtJ19Wa/t2B7KpCF/1n2Js3UuSU="; pin-sha256="6YBE8kK4d5J1qu1wEjyoKqzEIvyRY5HyM/NB2wKdcZo="; max-age=2592000; includeSubDomains';

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 1.1.1.1 valid=60s;
    resolver_timeout 60s;

    location / {
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header   Host             $http_host;
      proxy_set_header   Upgrade          $http_upgrade;
      proxy_set_header   X-NginX-Proxy    true;
      proxy_set_header   Connection "upgrade";
      proxy_http_version 1.1;
      proxy_pass         http://localhost:9200; //修改成你自己的端口
   }
}

然后就可以运行了:

# 先测试一下配置文件有没有错误:
nginx -t

#运行
systemctl start nginx

然后打开你的网站,就可以在线激情聊天了。。

退出移动版