Tailchat —— 插件化的开源聊天平台

2022-03-28 10:42:15 +08:00
 moonrailgun

前言 First of all

大家好,我是moonrailgun,今天为大家介绍的是我个人开发的开源插件式聊天软件: Tailchat

Tailchat 是一款易拓展、方便使用,并且完全免费开源的聊天平台。在部分思想上借鉴了 discord 并在此致敬!

动机 Motivation

曾经痴迷于 TRPG, 并花了 4 年的业余时间做了人生第一款聊天软件 TRPG Engine。但是受限于题材方面的问题,使用的人虽然一直有,但是并没有太多。

而且因为开发之初受到经验的限制,虽然当初经过了很多次重构,但是仍然背负上了很多的技术债务。而且因为当初没有做好分布式架构的设计,因此在面对实际的单机业务性能瓶颈时也没有非常好的解决方案,导致在高峰期只能让用户处于相对慢的系统响应中。

因此我将在 TRPG Engine 的开发中遇到的问题收集起来,并重新整理了我的业务需求,开发出了新的继承者 Tailchat

因为最开始首先于小众的业务, Tailchat 的设计之初就做好了易于拓展的准备。定位是除了核心的聊天场景以外,其他的业务需要都是由插件提供的。甚至是聊天的富文本渲染方式、消息的通知也是由插件提供的。作为使用者 /开发者,能够方便得为 Tailchat 拓展新的能力,或者将已有的能力集成到 Tailchat

Tailchat 名字来源于其 logo ,是两只猫尾巴纠缠在一起的形象,表示猫与猫之间最直接的沟通方式。

功能 Feature

登录页

登录页除了支持正常的 登录注册,为降低使用门槛还允许先进行 游客访问,无需注册直接使用。同时还支持 忘记密码 功能。向通过用户发送邮件来帮助用户重置密码

NOTICE: 忘记密码功能需要管理员配置 SMTP 服务

此处以访客为例,创建一个名为 猫之使徒 的访客:

进入主页面后如下显示:

可以通过点击最上面的认领账号来补充用户信息以方便下次登录

添加好友

切换到 添加好友 标签页,可以看到系统为您生成的 4 位唯一标识:

在本例中的唯一标识是猫之使徒#1216,您可以通过将这段字符串发送给好友来添加好友。

插件中心

Tailchat 设计之初就提供了强大的插件系统,通过插件系统能极大拓展Tailchat自身的能力。

NOTICE: 插件本身设计是运行在 可信执行环境(TEE) 中, 请不要随意通过手动安装的方式安装不明来源的第三方插件

个人设置

用户可以在左下方的"···"中打开个人设置。可以自定义头像,修改名称,修改密码等操作。

通过剪裁工具可以很方便的选出自己想要的部分

系统设置

在系统设置中可以修改界面语言和界面主题。

主题除了 Tailchat 自带的暗色主题亮色主题以及根据当前系统设置自动切换的自动以外均为插件提供

目前 Tailchat 支持的语言仅为 简体中文英语。欢迎有能力的开发者帮助 Tailchat 进行国际化翻译的工作

群组聊天

点击左上角导航栏的绿色加号即可创建群组

预设了两个布局模板,直接选择默认群组

随意取个名字,点击创建。系统则会创建一个群组并自动跳转到该群组

界面布局如下:

输入框支持 @ 群组成员:

群组设置

点击左上角的标题栏可以点开群组详情页

点击查看详情可以进入到群组的详情页

在此处可以:

面板管理

创建面板可以直接创建一个面板,内置的面板类型有:

网页面板可以直接输入一个网址,可以将自己喜好的网址直接集成到 Tailchat 的群组侧边栏

比如我们插入一个访问 Bilibili 的网页面板,则效果如下:

NOTICE: 因为浏览器的安全策略问题,如果当前 Tailchat 使用了 https 协议,那么只能支持嵌入 https 协议的网页

NOTICE: 因为浏览器的安全策略问题,嵌入的网址需要允许被使用 iframe 嵌入

相关连接

开源地址:

原文地址:

3565 次点击
所在节点    分享创造
13 条回复
89ao
2022-03-28 11:02:11 +08:00
点赞楼主。
建议描述一下本项目解决什么问题,
以帮助大家判断在什么场景下选择使用~
madlifer
2022-03-28 11:54:11 +08:00
我感觉这个产品的定位没有说清楚,TRPG Engine 我大概能够理解到是用于 TRPG 游戏的专门的聊天产品,虽然我也不是很懂 TRPG ,但至少在你看来有场景支撑。

但这个 Tailchat 定位是聊天场景?那就跟 discord 很相似了,而且功能也很相似,同样 discord 支持各种插件,所以我跟楼上都没太明白这个产品的应用场景。

如果还是应用于 TRPG ,那么我觉得可以把一部分功能固化下来,让产品更垂直,虽然靠插件的方式也可以实现 TRPG ,但对于你想要获取到的精准用户来说体验反而不好了,认同感也会下降。
jasy
2022-03-28 11:55:57 +08:00
@89ao 本项目没解决什么问题,只是个人研究🧐
rizon
2022-03-28 12:10:05 +08:00
想问个问题啊,
演示版本的服务端是运行在哪的?直接用 github 的 action 就可以吗? 这个东西一直想看看的还没怎么研究。
如果用的是 github action 当服务器的话,存储持久化问题怎么解决的?
rizon
2022-03-28 12:12:43 +08:00
麻烦 再想问另一个问题啊, 服务端使用 minio 这个是做什么用处的?我没看代码,就是好奇架构
谢谢
wordx
2022-03-30 11:48:42 +08:00
有计划开发桌面版吗
patrickyoung
2022-03-31 09:46:45 +08:00
不懂就别滥用名词,TEE 不是你这么定义的
moonrailgun
2022-04-04 13:12:13 +08:00
@madlifer tailchat 的定位是基于实时通讯场景为核心的业务整合。通过插件机制可以将不同的业务整合在一起。

在国内类似的商业产品有飞书,在设计思想与目标上是一致的,不过飞书是 toB 产品,tailchat 侧重点会更加偏向 toC
moonrailgun
2022-04-04 13:13:25 +08:00
@rizon 目前是运行在自己的服务器上的。如果用 github action 的话。。github 的 action 本身只是一个 ci ,并不能对外提供服务。。。
moonrailgun
2022-04-04 13:14:45 +08:00
@rizon 服务端使用 minio 可以方便进行分布式部署,minio 天生就是为分布式存储场景而设计的,而且 api 与 s3 完全兼容
moonrailgun
2022-04-04 13:16:10 +08:00
@wordx 有的,桌面版会基于 webview 为核心做一些原生支持。
moonrailgun
2022-04-04 13:18:56 +08:00
@patrickyoung 抱歉。我只是想表达插件设计本身为了满足比较高要求的需求,在权限的隔离上目前没有做的非常好。因此不推荐随便使用不明来源的插件(类似手机不建议安装非商店应用)。可能 TEE 说明不是非常准确,请问正确的说法是什么呢?我会在我能修改的地方进行修改的
moonrailgun
2022-04-04 13:28:46 +08:00
@89ao 感谢提醒,我会补充到文档上的

对于个人用户,可以用于搭建自己的私欲空间(如亲友分享信息与沟通,up 主或者博客主搭建自己的粉丝圈,可以通过自己设计自己的群组来展示作品)
对于企业用户,可以用于搭建私有化的企业通讯环境。基于国内企业与生俱来的对 saas 行业的不信任,私有化部署是对企业有很强的安全感的一种解决方案,并且通过 tailchat 设计之初的插件机制能够将企业内不同应用的能力整合在一起。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX