开源聊天系统fiora与Vocechat部署

一. Vocechat部署

官网:Docker 安装 | VoceChat

github仓库:https://github.com/privoce

ios 安卓 app下载:VoceChat Website

缺点:使用firebase通知推送 对国内不友好 基本无法使用

管理员需在 Firebase Cloud Console 中配置 FCM

⚠️ 请注意:如果使用自定义的推送配置,则移动端(iOS 及 Android)的推送服务将会不可用,这与 iOS 和 Android 的应用签名相关。因此只有网页端可以收到推送消息。目前在最新的网页端中提供了一套默认配置,详情可以访问设置 -> Firebase。远期规划会提供移动端 SDK,到时可以由用户用自己的项目签名。

⚠️ 如果您的 VoceChat 后端部署在中国大陆,则推送可能因网络管制而不可用,因为目前的推送服务依赖 Google Firebase。我们计划逐步将推送替换成直接支持 APNs 及其他国内安卓手机厂商支持的平台。

介绍

Vocechat是一套支持独立部署的个人云社交媒体聊天服务,具有轻量级、开源和可自托管等特点。它博采众长,从Slack、Discord、RocketChat、Solid、Matrix等产品和规范中汲取优点,适用于团队内部交流、个人聊天服务搭建、网站客服以及网站内嵌社区等场景。

Vocechat能轻易部署在私有云上,用户可以轻松将其部署到自己的服务器上,用户数据完全由用户自己掌握,传输过程加密,保证了数据的安全性。此外,Vocechat的体积仅为15MB,几乎可以塞进任何服务器里,同时拥有正常聊天所需要的所有必备功能,如回复、转发、点赞、钉选消息等。其界面简洁,能够快速上手,支持在线上传文件、图片、视频,并且支持在线播放视频。

在团队内部交流方面,Vocechat可以作为一个高效的沟通工具,支持成员间的实时聊天、文件共享和协作。对于个人聊天服务搭建,Vocechat提供了丰富的自定义选项,用户可以根据自己的需求进行个性化设置。同时,它也可以作为网站客服工具,提供与访客的实时交流功能,提升客户服务质量。此外,Vocechat还可以以插件的形式插入到网页中,提供网页聊天等各种丰富的功能。

项目组成

名称技术项目License说明
服务端:Rustvocechat-server(暂未开源)待定聊天服务端,支持主流平台: Linux x86_64, Windows 32/64, Arm32, Arch64
客户端:Fluttervocechat-clientApache-2.0聊天客户端,支持 Android, iOS 平台的客户端
Web:Reactvocechat-webGPL-3.0聊天功能的浏览器版本,整合了管理
Web-SDK:Reactvocechat-web-sdk(暂未开源)GPL-3.0可以整合到其他 Web 产品中,使其赋能聊天功能

功能介绍

  • 支持中英文
  • 支持Android、iOS端
  • 支持Docker安装,部署极其简单
  • 备份简单
  • 支持对接自有账号系统
  • 支持第三方登录(比如GitHub、MetaMask、Google等)
  • 支持访问控制 & 访客模式
  • API文档详细
  • 支持自建频道

功能列表 & 计划

  • 群聊、私聊 / 2021-Q4
  • 引用, at / 2021-Q4
  • 图片、大文件传输 / 2021-Q4
  • 置顶 / 2022-Q1
  • 转发 / 2022-Q1
  • 收藏 / 2022-Q1
  • 阅后即焚(高级功能) / 2022-Q1
  • 语音(高级功能)/ 2022-Q4
  • 视频(高级功能)/ 2022-Q4

docker-compose部署

镜像可选

1
2
privoce/vocechat-server:latest
registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:vocechat-server

部署

1
2
3
4
5
6
7
8
9
10
version: '3'
services:
vocechat:
image: registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:vocechat-server
restart: always
ports:
- '8000:3000'
container_name: vocechat-server
volumes:
- './data:/home/vocechat-server/data'

机器人使用

API地址:http://10.0.0.10:8000/api/swagger

效果

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/4/image_5fb9785cb7a0243bc3a8210f6267e92a.png

二. fiora部署

github仓库:https://github.com/yinxin630/fiora

中文教程:https://yinxin630.github.io/fiora/zh-Hans/docs/faq

修改客户端配置需要重新构建客户端

Key类型默认值描述
Serverstring/客户端要连接的服务端地址
MaxImageSizenumber3145728 (3MB)客户端可以上传的最大图片大小
MaxBackgroundImageSizenumber5242880 (5MB)客户端可以上传的最大背景图大小
MaxAvatarSizenumber1572864 (1.5MB)客户端可以上传的最大头像图片大小
MaxFileSizenumber10485760 (10MB)客户端可以上传的最大文件大小
DefaultThemestringcool默认主题
Soundstringdefault默认通知音
TagColorModestringfixedColor默认标签颜色模式
FrontendMonitorAppIdstringfixedColor岳鹰监控 appIdhttps://yueying.effirst.com/index
DisableDeleteMessagebooleanfalse禁止用户撤回消息

服务端变量配置#

修改服务端配置需要重启应用

Key类型默认值描述
Hoststringyour ip服务端 host
Portnumber9200服务端端口号
Databasestringmongodb://localhost:27017/fioramongoDB 数据库地址
RedisHoststringlocalhostredis 地址主机名
RedisPortnumber6379redis 端口
JwtSecretstringjwtSecret (推荐修改它来保证安全性)jwt token 加密 secret
MaxGroupCountnumber3用户最大可以创建的群组个数
AllowOriginstringnull允许的客户端 origin 列表, null 时允许所有 origin 连接, 多个值逗号分割
tokenExpiresTimenumber2592000000 (30 天)登陆 token 过期时间
Administratorstring‘’管理员用户 id 列表, 多个值逗号分割
DisableRegisterbooleanfalse禁止注册账号
DisableCreateGroupbooleanfalse禁止创建群组
ALIYUN_OSSbooleanfalse启用阿里云 OSS
ACCESS_KEY_IDstring‘’阿里云 OSS access key id. 参考:https://help.aliyun.com/document_detail/48699.html
ACCESS_KEY_SECRETstring‘’阿里云 OSS access key secret. 参考和 ACCESS_KEY_ID 相同
ROLE_ARNstring‘’阿里云 OSS RoleARN. 参考:https://help.aliyun.com/document_detail/28649.html
REGIONstring‘’阿里云 OSS 地域. 例如:oss-cn-zhangjiakou
BUCKETstring‘’阿里云 OSS bucket 名称
ENDPOINTstring‘’阿里云 OSS 域名. 例如:cdn

镜像可选

1
2
3
4
5
6
7
8
# 官方镜像
redis
mongo
suisuijiang/fiora
# zznn阿里云镜像
registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:redis4
registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:mongo5.0.18
registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:fiora

docker-compose部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
version: '3'
services:
fiora_redis:
image: registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:redis4
container_name: fiora_redis
ports:
- "6379:6379"
networks:
- fiora-network

fiora_db:
image: registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:mongo5.0.18
container_name: fiora_db
ports:
- "27017:27017"
networks:
- fiora-network

fiora:
image: registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:fiora
container_name: fiora
ports:
- "9200:9200"
environment:
- Database=mongodb://fiora_db:27017/fiora
- RedisHost=fiora_redis
- DisableRegister=true # 设置不允许注册用户
networks:
- fiora-network

networks:
fiora-network:
driver: bridge

目录说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|-- [.githubb]                // github actions
|-- [.vscode] // vscode 工作区配置
|-- [bin] // 服务端脚本
|-- [build] // webpack 配置
|-- [client] // web 客户端
|-- [config] // 应用配置
|-- [dist] // 构建客户端输出目录
|-- [docs] // 文档
|-- [public] // 服务端静态资源
|-- [server] // 服务端
|-- [test] // 单元测试
|-- [types] // typescript 类型
|-- [utils] // 工具方法
|-- .babelrc // babel 配置
|-- .eslintignore // eslint 忽略
|-- .eslintrc // eslint 配置
|-- .gitignore // git 忽略
|-- .nodemonrc // nodemon 配置
|-- .prettierrc // prettier 配置
|-- Dockerfile // docker 文件
|-- LICENSE // fiora 许可
|-- docker-compose.yaml // docker compose 配置
|-- jest.*.sj // jest 配置
|-- package.json // npm
|-- tsconfig.json // typescript 配置
|-- yarn.lock // yarn
...

此安装就完成了,修改文件,fiora页面修改路径

  • 以下logo:
    /opt/fiora/public/favicon-96.png
    /opt/fiora/public/favicon-192.png
    /opt/fiora/public/favicon-512.png
    以下主页修改路径
    /opt/fiora/client/templates/index.html
    以下侧边栏修改路径
    /opt/fiora/client/modules/Sidebar/

使用

不允许注册时打开(需要注册时取消注释即可):

  • DisableRegister=true # 设置不允许注册用户

其他配置参考:https://blog.csdn.net/weixin_63660670/article/details/130824723