垃圾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
然后打开你的网站,就可以在线激情聊天了。。