很多人第一次想搭建聊天系统,其实不是为了公司业务。而是因为:
- 有些话,不想留在WX里说。
- 有些文件,不想总被平台审核。
- 有些聊天记录,不想哪天突然就没了。
- 有些小团队,也不想天天被各种社交软件打扰。
尤其是做技术之后,你会越来越明显地感觉到:我们每天都在用聊天软件,但从来没有真正“拥有”过自己的聊天系统。
- 数据在别人的服务器里。
- 规则是别人定的。
- 账号说限制就限制。
- 群说封就封。
甚至有时候,只是想安静地和几个朋友、团队成员,拥有一个完全属于自己的聊天空间。
于是很多人开始折腾:
- 自建 IM
- 私有聊天系统
- 局域网聊天室
- Docker 部署聊天服务
- 内网聊天平台
但真正开始后才发现:
自己从 0 写一个聊天系统,难度比想象中高太多。
消息实时同步、WebSocket、Redis、MongoDB、文件上传、用户状态……
一个功能接一个功能,最后最先崩溃的不是服务器,而是人。所以与其重复造轮子,不如直接用成熟的开源方案。而 Fiora ,就是目前最符合我当前需求的一个开源聊天项目。它部署简单,UI设计舒适,能长期用的开源聊天系统之一。今天这篇文章,我就带你从 0 开始,把 Fiora 部署到自己的服务器上。官方项目地址:
https://github.com/yinxin630/fiora
记得为作者点个 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
先更新服务器:
apt update && apt upgrade -y
安装 Docker:
curl -fsSL https://get.docker.com | bash
启动和设置开启自启:
systemctl start dockersystemctl enable docker
安装 Docker Compose:
apt install docker-compose -y
四、拉取 Fiora 项目
git clone https://github.com/yinxin630/fiora.gitcd fiora #进入项目目录
五、Docker 部署
这是最简单稳定的方式,官方也提供了 Docker 运行方案。
1.拉取镜像
MongoDB
docker pull mongo
Redis
docker pull redis
MongoDB和Redis之前我的Docker拉取过镜像,所以没有显示我拉取的记录。
Fiora
docker pull suisuijiang/fiora
2. 创建 Docker 网络
docker network create fiora-network
3. 启动 MongoDB
docker run -d \--name fioradb \-p 27017:27017 \--network fiora-network \mongo
4. 启动 Redis
docker run -d \--name fioraredis \-p 6379:6379 \--network fiora-network \redis
5. 启动 Fiora
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
看到登录页面,就说明部署成功了。

点击下方的登录,然后注册一个账号。
点击左上角的头像,你可以编辑个人信息,修改用户名和修改密码,修改头像。
默认是创建了一个名叫 fiora ,如果你想创建一个群组,点击搜索栏旁边的 + ,设置一个群组名就可以创建。
后边你想邀请人进入群组,你可以点击群组右上角的分享图标,复制邀请链接。发送给别人,别人注册好之后就可以进入到该群组。
旁边的四个方块则是编辑群组信息。点击群成员头像或昵称,可以弹出加为好友的弹窗。不需要对方同意,直接就能添加好,发送消息。不过群组好像没有管理群成员的选项,比如踢人、禁言等功能,这一点是有欠缺的。
在消息栏处,你除了可以发送文字消息,还可以发送文件、表情、代码。消息栏支持直接粘贴图片发图。
如果你没有通过邀请链接进入群聊,但是你想进入,你可以通过左上方的搜索框中输入群聊名称,就可以找到群组,同样的,可以搜索用户名称,搜索到对应的用户。
在左下角设置中,你可以进行一些简单的设置,比如声音提醒、桌面提醒、根据输入内容推荐表情。提示音也是多样,别人给你发消息发出的声音
你也可以进行主题修改,点击背景图的图片,从本地选择一个图片当背景图。
功能差不多就这些,其实整体来说这个项目挺轻量的,对于个人使用,小团队,那是绰绰有余的,但是不太适合大团队,那这个项目就不适合了,功能上来说就已经不是很满足了。
左侧菜单栏有个¥图标,这个可不是给我打赏的,这是给这个项目开发者打赏,别当成给我打赏了。

七、配置域名
如果你有域名,比如:chat.xxx.com 。
建议使用 Nginx 反向代理。
安装 Nginx:
apt install nginx -y
编辑配置:
vim /etc/nginx/sites-enabled/fiora
写入:
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:
systemctl restart nginx
配置 HTTPS(非常重要)
聊天系统一定建议开启 HTTPS。
安装 Certbot:
apt install certbot python3-certbot-nginx -y
申请 SSL:
certbot --nginx
按照提示输入邮箱即可。
如果你域名托管到Cloudflare中,给域名加个DNS解析,把服务器IP绑定域名,然后开启橙色云,这样防止找到源IP地址。相当于多了一层防护。
搭建就到这里结束了。
其实现在再回头看,很多人想要的,可能并不是一个多复杂的聊天系统。
只是想有一个真正属于自己的空间,而自建聊天系统这件事,本质上也是一种“掌控感”。
你开始自己管理服务器、管理数据、管理通信服务。很多以前觉得很遥远的东西,真正动手之后才发现:原来并没有想象中那么难。
Fiora 之所以值得推荐,也正因为它不是那种只能“跑起来看看”的 Demo 项目。
它真的可以长期使用,界面简洁、功能该有的有,部署成熟。
无论你是:
- 想自己搭一个私人聊天空间
- 想给团队内部使用
- 想学习 IM 架构
- 想研究 WebSocket 和实时通信
- 还是单纯喜欢折腾服务器
它都非常值得试一次。
本期内容到此结束。
本文来自网络,不代表王道测评立场,如有争议请发邮件:enofun@foxmail.com
AD:【本站QQ交流群】114135944



评论