71

很多人第一次想搭建聊天系统,其实不是为了公司业务。
而是因为:

  • 有些话,不想留在WX里说。
  • 有些文件,不想总被平台审核。
  • 有些聊天记录,不想哪天突然就没了。
  • 有些小团队,也不想天天被各种社交软件打扰。

尤其是做技术之后,你会越来越明显地感觉到:
我们每天都在用聊天软件,但从来没有真正“拥有”过自己的聊天系统。

  • 数据在别人的服务器里。
  • 规则是别人定的。
  • 账号说限制就限制。
  • 群说封就封。

甚至有时候,只是想安静地和几个朋友、团队成员,拥有一个完全属于自己的聊天空间。
于是很多人开始折腾:

  • 自建 IM
  • 私有聊天系统
  • 局域网聊天室
  • Docker 部署聊天服务
  • 内网聊天平台

但真正开始后才发现:

自己从 0 写一个聊天系统,难度比想象中高太多。

消息实时同步、WebSocket、Redis、MongoDB、文件上传、用户状态……

一个功能接一个功能,最后最先崩溃的不是服务器,而是人。

所以与其重复造轮子,不如直接用成熟的开源方案。
而 Fiora ,就是目前最符合我当前需求的一个开源聊天项目。
它部署简单,UI设计舒适,能长期用的开源聊天系统之一。
今天这篇文章,我就带你从 0 开始,把 Fiora 部署到自己的服务器上。
官方项目地址:https://github.com/yinxin630/fiora

b001bfd8-6fb5-4ef8-ac24-0e1d9e205b92.png
记得为作者点个 Star ,感谢作者开源这么好的项目。

一、Fiora 是什么?

Fiora 是一个基于:

Node.JS React
Socket.IO MongoDB
Redis

开发的开源聊天系统。

它支持:

实时聊天 群组聊天 好友系统
文件发送 图片消息 主题切换
多端支持

并且已经有:Web端、Android/IOS、VSCode插件。
属于一个完整度非常高的 IM 项目。

二、服务器环境准备

这里我使用的是:

环境 版本
Ubuntu 22.04
Node.js 14 LTS
Docker 最新版
MongoDB 最新版
Redis 最新版

官方推荐使用 Linux 或 Docker 部署。

三、安装 Docker

先更新服务器:

ts
apt update && apt upgrade -y

安装 Docker:

ts
curl -fsSL https://get.docker.com | bash

启动和设置开启自启:

ts
systemctl start docker systemctl enable docker

安装 Docker Compose:

ts
apt install docker-compose -y

四、拉取 Fiora 项目

ts
git clone https://github.com/yinxin630/fiora.git cd fiora #进入项目目录

五、Docker 部署

这是最简单稳定的方式,官方也提供了 Docker 运行方案。

1.拉取镜像

MongoDB

ts
docker pull mongo

Redis

ts
docker pull redis

MongoDB和Redis之前我的Docker拉取过镜像,所以没有显示我拉取的记录。

Fiora

ts
docker pull suisuijiang/fiora
  1. 创建 Docker 网络
ts
docker network create fiora-network
  1. 启动 MongoDB
ts
docker run -d \ --name fioradb \ -p 27017:27017 \ --network fiora-network \ mongo
  1. 启动 Redis
ts
docker run -d \ --name fioraredis \ -p 6379:6379 \ --network fiora-network \ redis
  1. 启动 Fiora
ts
docker run -d \ --name fiora \ -p 9200:9200 \ --network fiora-network \ -e Database=mongodb://fioradb:27017/fiora \ -e RedisHost=fioraredis \ suisuijiang/fiora

官方部署方式也是这样配置的。

六、访问聊天系统

浏览器打开:
http://你的服务器IP:9200

看到登录页面,就说明部署成功了。
如果你有域名,比如:chat.xxx.com

建议使用 Nginx 反向代理。

安装 Nginx:

ts
apt install nginx -y

编辑配置:

ts
vim /etc/nginx/sites-enabled/fiora

写入:

ts
server { listen 80; server_name chat.xxx.com; location / { proxy_pass http://127.0.0.1:9200; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } }

重启 Nginx:

ts
systemctl restart nginx

配置 HTTPS(非常重要)

聊天系统一定建议开启 HTTPS。
安装 Certbot:

ts
apt install certbot python3-certbot-nginx -y

申请 SSL:

ts
certbot --nginx

按照提示输入邮箱即可。

如果你域名托管到Cloudflare中,给域名加个DNS解析,把服务器IP绑定域名,然后开启橙色云,这样防止找到源IP地址。相当于多了一层防护。

搭建就到这里结束了。

其实现在再回头看,很多人想要的,可能并不是一个多复杂的聊天系统。

只是想有一个真正属于自己的空间,而自建聊天系统这件事,本质上也是一种“掌控感”。

你开始自己管理服务器、管理数据、管理通信服务。很多以前觉得很遥远的东西,真正动手之后才发现:原来并没有想象中那么难。

Fiora 之所以值得推荐,也正因为它不是那种只能“跑起来看看”的 Demo 项目。

它真的可以长期使用,界面简洁、功能该有的有,部署成熟。

无论你是:

  • 想自己搭一个私人聊天空间
  • 想给团队内部使用
  • 想学习 IM 架构
  • 想研究 WebSocket 和实时通信
  • 还是单纯喜欢折腾服务器

它都非常值得试一次。

本期内容到此结束。

不忘初心,方得始终。

回复讨论
3

登录后可参与回复讨论。

文明发言,理性讨论
小爱同学社区AI Bot·17小时前
云奚·15小时前
Lin·15小时前