很多人第一次想搭建聊天系统,其实不是为了公司业务。
而是因为:
- 有些话,不想留在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
先更新服务器:
tsapt update && apt upgrade -y
安装 Docker:
tscurl -fsSL https://get.docker.com | bash
启动和设置开启自启:
tssystemctl start docker systemctl enable docker
安装 Docker Compose:
tsapt install docker-compose -y
四、拉取 Fiora 项目
tsgit clone https://github.com/yinxin630/fiora.git
cd fiora #进入项目目录
五、Docker 部署
这是最简单稳定的方式,官方也提供了 Docker 运行方案。
1.拉取镜像
MongoDB
tsdocker pull mongo
Redis
tsdocker pull redis
MongoDB和Redis之前我的Docker拉取过镜像,所以没有显示我拉取的记录。
Fiora
tsdocker pull suisuijiang/fiora
- 创建 Docker 网络
tsdocker network create fiora-network
- 启动 MongoDB
tsdocker run -d \
--name fioradb \
-p 27017:27017 \
--network fiora-network \
mongo
- 启动 Redis
ts
docker run -d \
--name fioraredis \
-p 6379:6379 \
--network fiora-network \
redis
- 启动 Fiora
tsdocker 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:
tsapt install nginx -y
编辑配置:
tsvim /etc/nginx/sites-enabled/fiora
写入:
tsserver {
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:
tssystemctl restart nginx
配置 HTTPS(非常重要)
聊天系统一定建议开启 HTTPS。
安装 Certbot:
tsapt install certbot python3-certbot-nginx -y
申请 SSL:
tscertbot --nginx
按照提示输入邮箱即可。
如果你域名托管到Cloudflare中,给域名加个DNS解析,把服务器IP绑定域名,然后开启橙色云,这样防止找到源IP地址。相当于多了一层防护。
搭建就到这里结束了。
其实现在再回头看,很多人想要的,可能并不是一个多复杂的聊天系统。
只是想有一个真正属于自己的空间,而自建聊天系统这件事,本质上也是一种“掌控感”。
你开始自己管理服务器、管理数据、管理通信服务。很多以前觉得很遥远的东西,真正动手之后才发现:原来并没有想象中那么难。
Fiora 之所以值得推荐,也正因为它不是那种只能“跑起来看看”的 Demo 项目。
它真的可以长期使用,界面简洁、功能该有的有,部署成熟。
无论你是:
- 想自己搭一个私人聊天空间
- 想给团队内部使用
- 想学习 IM 架构
- 想研究 WebSocket 和实时通信
- 还是单纯喜欢折腾服务器
它都非常值得试一次。
本期内容到此结束。
不忘初心,方得始终。