大家好,我是moonrailgun,今天为大家介绍的是我个人开发的开源插件式聊天软件: Tailchat
Tailchat 是一款易拓展、方便使用,并且完全免费开源的聊天平台。在部分思想上借鉴了 discord 并在此致敬!
曾经痴迷于 TRPG, 并花了 4 年的业余时间做了人生第一款聊天软件 TRPG Engine。但是受限于题材方面的问题,使用的人虽然一直有,但是并没有太多。
而且因为开发之初受到经验的限制,虽然当初经过了很多次重构,但是仍然背负上了很多的技术债务。而且因为当初没有做好分布式架构的设计,因此在面对实际的单机业务性能瓶颈时也没有非常好的解决方案,导致在高峰期只能让用户处于相对慢的系统响应中。
因此我将在 TRPG Engine 的开发中遇到的问题收集起来,并重新整理了我的业务需求,开发出了新的继承者 Tailchat。
因为最开始首先于小众的业务, Tailchat 的设计之初就做好了易于拓展的准备。定位是除了核心的聊天场景以外,其他的业务需要都是由插件提供的。甚至是聊天的富文本渲染方式、消息的通知也是由插件提供的。作为使用者 /开发者,能够方便得为 Tailchat 拓展新的能力,或者将已有的能力集成到 Tailchat 中
Tailchat 名字来源于其 logo ,是两只猫尾巴纠缠在一起的形象,表示猫与猫之间最直接的沟通方式。
登录页除了支持正常的 登录、注册,为降低使用门槛还允许先进行 游客访问,无需注册直接使用。同时还支持 忘记密码 功能。向通过用户发送邮件来帮助用户重置密码
NOTICE: 忘记密码功能需要管理员配置 SMTP 服务
此处以访客为例,创建一个名为 猫之使徒
的访客:
进入主页面后如下显示:
可以通过点击最上面的认领账号来补充用户信息以方便下次登录
切换到 添加好友
标签页,可以看到系统为您生成的 4 位唯一标识:
在本例中的唯一标识是猫之使徒#1216
,您可以通过将这段字符串发送给好友来添加好友。
Tailchat 设计之初就提供了强大的插件系统,通过插件系统能极大拓展Tailchat自身的能力。
NOTICE: 插件本身设计是运行在 可信执行环境(TEE) 中, 请不要随意通过手动安装的方式安装不明来源的第三方插件
用户可以在左下方的"···"中打开个人设置。可以自定义头像,修改名称,修改密码等操作。
通过剪裁工具可以很方便的选出自己想要的部分
在系统设置中可以修改界面语言和界面主题。
主题除了 Tailchat 自带的暗色主题
和亮色主题
以及根据当前系统设置自动切换的自动
以外均为插件提供
目前 Tailchat 支持的语言仅为
简体中文
和英语
。欢迎有能力的开发者帮助 Tailchat 进行国际化翻译的工作
点击左上角导航栏的绿色加号即可创建群组
预设了两个布局模板,直接选择默认群组
随意取个名字,点击创建。系统则会创建一个群组并自动跳转到该群组
界面布局如下:
输入框支持 @
群组成员:
点击左上角的标题栏可以点开群组详情页
点击查看详情可以进入到群组的详情页
在此处可以:
创建面板可以直接创建一个面板,内置的面板类型有:
网页面板可以直接输入一个网址,可以将自己喜好的网址直接集成到 Tailchat 的群组侧边栏
比如我们插入一个访问 Bilibili 的网页面板,则效果如下:
NOTICE: 因为浏览器的安全策略问题,如果当前 Tailchat 使用了 https 协议,那么只能支持嵌入 https 协议的网页
NOTICE: 因为浏览器的安全策略问题,嵌入的网址需要允许被使用 iframe 嵌入
开源地址:
原文地址:
1
89ao 2022-03-28 11:02:11 +08:00 via iPhone
点赞楼主。
建议描述一下本项目解决什么问题, 以帮助大家判断在什么场景下选择使用~ |
2
madlifer 2022-03-28 11:54:11 +08:00
我感觉这个产品的定位没有说清楚,TRPG Engine 我大概能够理解到是用于 TRPG 游戏的专门的聊天产品,虽然我也不是很懂 TRPG ,但至少在你看来有场景支撑。
但这个 Tailchat 定位是聊天场景?那就跟 discord 很相似了,而且功能也很相似,同样 discord 支持各种插件,所以我跟楼上都没太明白这个产品的应用场景。 如果还是应用于 TRPG ,那么我觉得可以把一部分功能固化下来,让产品更垂直,虽然靠插件的方式也可以实现 TRPG ,但对于你想要获取到的精准用户来说体验反而不好了,认同感也会下降。 |
4
rizon 2022-03-28 12:10:05 +08:00
想问个问题啊,
演示版本的服务端是运行在哪的?直接用 github 的 action 就可以吗? 这个东西一直想看看的还没怎么研究。 如果用的是 github action 当服务器的话,存储持久化问题怎么解决的? |
5
rizon 2022-03-28 12:12:43 +08:00
麻烦 再想问另一个问题啊, 服务端使用 minio 这个是做什么用处的?我没看代码,就是好奇架构
谢谢 |
6
wordx 2022-03-30 11:48:42 +08:00 via Android
有计划开发桌面版吗
|
7
patrickyoung 2022-03-31 09:46:45 +08:00
不懂就别滥用名词,TEE 不是你这么定义的
|
8
moonrailgun OP @madlifer tailchat 的定位是基于实时通讯场景为核心的业务整合。通过插件机制可以将不同的业务整合在一起。
在国内类似的商业产品有飞书,在设计思想与目标上是一致的,不过飞书是 toB 产品,tailchat 侧重点会更加偏向 toC |
9
moonrailgun OP @rizon 目前是运行在自己的服务器上的。如果用 github action 的话。。github 的 action 本身只是一个 ci ,并不能对外提供服务。。。
|
10
moonrailgun OP @rizon 服务端使用 minio 可以方便进行分布式部署,minio 天生就是为分布式存储场景而设计的,而且 api 与 s3 完全兼容
|
11
moonrailgun OP @wordx 有的,桌面版会基于 webview 为核心做一些原生支持。
|
12
moonrailgun OP @patrickyoung 抱歉。我只是想表达插件设计本身为了满足比较高要求的需求,在权限的隔离上目前没有做的非常好。因此不推荐随便使用不明来源的插件(类似手机不建议安装非商店应用)。可能 TEE 说明不是非常准确,请问正确的说法是什么呢?我会在我能修改的地方进行修改的
|
13
moonrailgun OP @89ao 感谢提醒,我会补充到文档上的
对于个人用户,可以用于搭建自己的私欲空间(如亲友分享信息与沟通,up 主或者博客主搭建自己的粉丝圈,可以通过自己设计自己的群组来展示作品) 对于企业用户,可以用于搭建私有化的企业通讯环境。基于国内企业与生俱来的对 saas 行业的不信任,私有化部署是对企业有很强的安全感的一种解决方案,并且通过 tailchat 设计之初的插件机制能够将企业内不同应用的能力整合在一起。 |