项目介绍
fiora 是一款有趣的聊天应用. 基于 node.js, mongodb, react 和 socket.io 等技术开发
该项目起始于 2015-11-04
在线地址: https://fiora.suisuijiang.com/
安卓/iOS app: https://github.com/yinxin630/fiora-app
特性功能
注册账号并登录, 可以长久保存你的数据
加入现有群组或者创建自己的群组, 来和大家交流
和任意人私聊, 并添加其为好友
多种消息类型, 包括文本 / 表情 / 图片 / 代码 / 文件 / 命令, 还可以搜索表情包
当收到新消息时推送通知, 可以自定义通知铃声, 还可以把消息读出来
选择你喜欢的主题, 并且可以设置为任何你喜欢的壁纸以及主题颜色
设置管理员来管理用户
安装指南
Docker Compose部署
version: '3.2'
services:
mongodb:
image: mongo
restart: always
redis:
image: redis
restart: always
fiora:
build: .
restart: always
ports:
- "9200:9200"
environment:
- Database=mongodb://mongodb/fiora
- RedisHost=redis
食用
浏览器中输入 http://NAS的IP:9200
进阶食用
服务器配置 config/server.ts 客户端配置 config/client.ts
相比于直接修改配置文件, 推荐用环境变量来修改配置
在 fiora 根目录创建 .env 文件, 在里面填写 key=value 键值对(每行一个), 即可修改相应配置. 比如修改端口号 Port=8888
服务端配置
修改服务端配置需要重启应用
Key | 类型 | 默认值 | 描述 |
|---|
Host | string | your ip | 服务端 host |
Port | number | 9200 | 服务端端口号 |
Database | string | mongodb://localhost:27017/fiora | mongoDB 数据库地址 |
RedisHost | string | localhost | redis 地址主机名 |
RedisPort | number | 6379 | redis 端口 |
JwtSecret | string | jwtSecret (推荐修改它来保证安全性) | jwt token 加密 secret |
MaxGroupCount | number | 3 | 用户最大可以创建的群组个数 |
AllowOrigin | string | null | 允许的客户端 origin 列表, null 时允许所有 origin 连接, 多个值逗号分割 |
tokenExpiresTime | number | 2592000000 (30 天) | 登陆 token 过期时间 |
Administrator | string | '' | 管理员用户 id 列表, 多个值逗号分割 |
DisableRegister | boolean | false | 禁止注册账号 |
DisableCreateGroup | boolean | false | 禁止创建群组 |
ALIYUN_OSS | boolean | false | 启用阿里云 OSS |
ACCESS_KEY_ID | string | '' | 阿里云 OSS access key id. 参考: https://help.aliyun.com/document_detail/48699.html |
ACCESS_KEY_SECRET | string | '' | 阿里云 OSS access key secret. 参考和 ACCESS_KEY_ID 相同 |
ROLE_ARN | string | '' | 阿里云 OSS RoleARN. 参考: https://help.aliyun.com/document_detail/28649.html |
REGION | string | '' | 阿里云 OSS 地域. 例如: oss-cn-zhangjiakou |
BUCKET | string | '' | 阿里云 OSS bucket 名称 |
ENDPOINT | string | '' | 阿里云 OSS 域名. 例如: cdn.suisuijiang.com |
客户端配置
修改客户端配置需要重新构建客户端
Key | 类型 | 默认值 | 描述 |
|---|
Server | string | / | 客户端要连接的服务端地址 |
MaxImageSize | number | 3145728 (3MB) | 客户端可以上传的最大图片大小 |
MaxBackgroundImageSize | number | 5242880 (5MB) | 客户端可以上传的最大背景图大小 |
MaxAvatarSize | number | 1572864 (1.5MB) | 客户端可以上传的最大头像图片大小 |
MaxFileSize | number | 10485760 (10MB) | 客户端可以上传的最大文件大小 |
DefaultTheme | string | cool | 默认主题 |
Sound | string | default | 默认通知音 |
TagColorMode | string | fixedColor | 默认标签颜色模式 |
FrontendMonitorAppId | string | fixedColor | 岳鹰监控 appId https://yueying.effirst.com/index |
DisableDeleteMessage | boolean | false | 禁止用户撤回消息 |
总结
Fiora 是一款 开源且功能完整的实时聊天应用,基于 Node.js、React、Socket.io 和 MongoDB + Redis 技术栈开发,支持 Web、Android 和 iOS 多端展示与交互。它具备注册登录、好友添加、私聊/群聊、丰富消息类型(文本、表情、图片、代码片段、文件等)、推送通知、主题自定义和管理员权限等常见即时通讯功能,适合作为自托管聊天平台或者学习实时通信应用的参考项目。