V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
TristanYang
V2EX  ›  分享创造

一个可自部署的轻量级聊天系统 [更新]

  TristanYang ·
zerosoul · 201 天前 · 5596 次点击
这是一个创建于 201 天前的主题,其中的信息可能已经有所发展或是发生改变。

之前分享过的一个项目 这段时间根据大家的反馈,做了较多更新迭代,所以再次分享下:

VoceChat 是什么

是一款支持独立部署的个人云社交媒体聊天服务。15MB 的大小可部署在任何的服务器上,部署简单,很少需要维护。前端可以内嵌到自己的网站下,数据完全由用户自己掌握,传输过程加密。VoceChat 从 Slack, Discord, RocketChat, Solid, Matrix 等产品和规范中博采众长,适用于团队内部交流,个人聊天服务,网站客服,网站内嵌社区等场景。

我们认为 Web 3.0 去中心化的第一步是基于个人云的去平台化,通过个性化的计算与个性化的存储,让个人和组织拥有自己的平台,所以 VoceChat 的定位是能轻易部署在私有云上的社交协作程序。

如果你想搞一套自己的聊天系统,可以试试这款可自部署的轻量级聊天系统:VoceChat

VoceChat 具备的功能特性:

  • 🛠️ 开源 + 自部署:意味着代码 + 数据完全自主,甚至可以做二次开发
  • 📱 全平台:一旦部署成功,既可以通过 WebAPP 使用,也可以通过手机 APP 使用
  • 👨‍👨‍👦‍👦 即时聊天 + 频道:既可以同某个人即时聊天,也可以建立一个主题频道群聊
  • 😃 多种消息格式:文本,图片,文件,emoji ,以及富文本( markdown )
  • ⭐ 丰富的可配置项:在登录,注册,通知,成员管理,频道管理,第三方授权等各方面,都做了详尽的可配置化,比如在注册环节,可以设置是否开放注册,以及注册方式是邀请注册还是自注册,满满的掌控感
  • 🤖 强悍的扩展功能:我们有 widget 组件,可以很方便地把 VoceChat 聊天功能扩展到任意网站,让你的网站即刻拥有 IM 功能;如果你有需要,甚至可以把整个聊天应用嵌到自己网页内
  • 💪🏻 还有更多特性等你来发掘

更多参考

最后

  • 起初,VoceChat 是面向的海外,所以使用界面以英文为主,后续会添加多语言支持
  • 目前产品处于内测阶段,欢迎有兴趣的朋友试用,如果您在部署过程中有任何问题,或者有任何意见和建议,可以 v 我 yanggc888,也欢迎贡献成功实例,一经采纳,将有不低于 50 的现金红包奖励~
第 1 条附言  ·  201 天前

这次有个主要更新:网站挂件 [widget] 。可以很方便的将已部署的vocechat扩展到任意网站,让自己网站即可拥有即时聊天功能,我自己的站点就放了一个widget

https://yangerxiao.com

demo

第 2 条附言  ·  194 天前

最近更新:

  • WebAPP新增多语言支持,目前有中英两种语言,欢迎贡献其它语言:https://github.com/Privoce/vocechat-web/tree/main/public/locales
  • 新增部署参数:network.frontend_url,该参数为必填参数
  • 去掉了 /api/swagger 前端路径缓存,现在可以能够正确到达访问部署实例后的API文档,例:https://vocechat.yangerxiao.com/api/swagger
  • 修复了shell脚本安装域名解析报错问题
  • WebAPP:禁用textarea的语法检测
  • APP:修复了邀请链接注册过程中的服务器识别和验证链接有效性的问题
  • 感谢大家使用反馈,修复了很多小bug,就不一一列举了
TristanYang
    1
TristanYang  
OP
   201 天前
😂 vx 写错了 yanggc_2013
ragnaroks
    2
ragnaroks  
   201 天前
酷拉斯特,没看文档,是否有匿名模式?就是加入只用写个昵称就行,聊天数据不做保留(或只保留最后 10 分钟)。匿名模式用来临时组群沟通很常用。
TristanYang
    3
TristanYang  
OP
   201 天前
@ragnaroks good idea! 有 guest 模式 但是目前只能浏览信息 不能发消息 会考虑加入这个匿名模式~
silentx
    4
silentx  
   201 天前
看上去不错 邮箱也不用验证
TristanYang
    5
TristanYang  
OP
   201 天前
@silentx emmmm 注册邮箱不用验证,是方便,但也有一定的安全问题,双刃剑。不过我们支持邀请连接注册,考虑安全问题,可以采用这种方式。
codespots
    6
codespots  
   201 天前
看上去不错,star 一下
codespots
    7
codespots  
   201 天前
我看了楼主发的旧帖,看到微信群头像一个熟悉的头像,回到这个帖子确认下,原来是羊二啊,已经有微信了,哈哈哈哈,大佬大佬
Heroininu
    8
Heroininu  
   201 天前
开启 SMTP 后,默认验证邀请人的邮箱了,但是发送的邮件里的链接是错误的
TristanYang
    9
TristanYang  
OP
   201 天前
@Heroininu 感谢反馈 您是已经部署成功了?方便的话,可以 V 具体聊聊~
helloworld1024
    10
helloworld1024  
   201 天前
UI 挺好看的。
wooke
    11
wooke  
   201 天前
部署了,弄来耍耍,希望支持中文界面
calming
    12
calming  
   201 天前
哈哈 之前有过想法做类似的东西没想到你们已经实现了 点赞
hello267015
    13
hello267015  
   201 天前
数据存储用的啥
TristanYang
    14
TristanYang  
OP
   201 天前
@wooke 太棒了,可以加 V 领红包哈~
TristanYang
    15
TristanYang  
OP
   201 天前
@calming 有兴趣也可以加入完善它,vocechat 才刚起步,可以走的更远一些
TristanYang
    16
TristanYang  
OP
   201 天前   ❤️ 1
@hello267015 目前是 sqlite 后端用 rust 写的
isolcat
    17
isolcat  
   201 天前
很简约大气的界面,star 了
bugsnail
    18
bugsnail  
   201 天前
赞,刚刚有个项目可以试试
fox233
    19
fox233  
   201 天前
国内服务器可以部署吗
hello267015
    20
hello267015  
   201 天前
@TristanYang 试用了一下,体验很棒啊 , docker 可以把数据文件映射出来吗,准备部署到我的 nas
vsitebon
    21
vsitebon  
   201 天前
可以用来开发别的软件的插件吗?
TristanYang
    22
TristanYang  
OP
   201 天前
@fox233 可以的 只是有部分功能众所周知的原因是受限的 比如 notification 部分... 当然 如果服务器具备 cross the wall 功能,那没事了。
TristanYang
    23
TristanYang  
OP
   201 天前
@vsitebon 什么场景,可以加 v 具体聊聊~
TristanYang
    24
TristanYang  
OP
   201 天前
@hello267015 可以的 既然支持 docker 部署 可以映射
suyuyu
    25
suyuyu  
   201 天前
这主页,小学生主页既视感 (
rusteer
    26
rusteer  
   201 天前
rust 写的?
TristanYang
    27
TristanYang  
OP
   201 天前
@suyuyu 哪个主页?是聊天主页还是官网 https://voce.chat ?审美是个挺主观的事情,如果大多数人都说有问题,我们改😂
TristanYang
    28
TristanYang  
OP
   201 天前   ❤️ 1
@cnhew 嗯 后端暂时没准备好开源 以后会放出来 ~
liuxiniszuhi3
    29
liuxiniszuhi3  
   201 天前
不错不错,但这个和 web3 有什么关系?
tvirus
    30
tvirus  
   201 天前
界面很清爽👍
tvirus
    31
tvirus  
   201 天前
的确自己部署没有推送
TristanYang
    32
TristanYang  
OP
   201 天前
@liuxiniszuhi3 web3 并不一定和区块链扯上关系。重复下这句话:我们认为 Web 3.0 去中心化的第一步是基于个人云的去平台化,通过个性化的计算与个性化的存储,让个人和组织拥有自己的平台,所以 VoceChat 的定位是能轻易部署在私有云上的社交协作程序。
hello267015
    33
hello267015  
   201 天前
请教大佬,聊天信息是怎么从服务端拉取的, 为什么浏览器 devtool 里看不到请求记录???
TristanYang
    34
TristanYang  
OP
   201 天前   ❤️ 1
@hello267015 走的是 SSE 推送 你看下 /api/user/events 这个接口,会有流信息
tvirus
    35
tvirus  
   201 天前
在海外服务器上自建了一个,消息也没有推送。
TristanYang
    36
TristanYang  
OP
   201 天前
@tvirus 消息推送走的是 firebase 需要配置下 文档在此: https://doc.voce.chat/setting/setting-firebase-notification
c1273082756
    37
c1273082756  
   201 天前
经测试, iOS 下自部署没有消息通知
TristanYang
    38
TristanYang  
OP
   201 天前
@c1273082756 消息通知需要配置一下( https://doc.voce.chat/setting/setting-firebase-notification ),众所周知的原因,在国内比较恼火😂
laoooo
    39
laoooo  
   201 天前
看了眼 docker 里面的文件,图片文件只是把扩展名删了?加了个.jpg 就能看见原图
Ionian
    40
Ionian  
   201 天前
挺好的,只是在国内做这种产品挺危险的
leon0918
    41
leon0918  
   201 天前
先赞一个,有过同样的想法,之前蘑菇街也做过一个开源的 teamtalk ,但是这类软件在国内不会有监管风险吗
troilus
    42
troilus  
   201 天前
赞,端到端加密怎么样
troilus
    43
troilus  
   201 天前
curl -sSf https://s.vocechat.com/install.sh | sh
curl: (35) Encountered end of file
TristanYang
    44
TristanYang  
OP
   201 天前
@troilus 抱歉 是文档写错了域名 已修正:curl -sSf https://s.voce.chat/install.sh | sh
TristanYang
    45
TristanYang  
OP
   201 天前
@laoooo emmmm 文件名做了混淆处理 有什么问题吗?图片是不好加密,也没必要加密
sinORcos
    46
sinORcos  
   201 天前 via iPhone
有端到端加密吗?
ixixi
    47
ixixi  
   200 天前
请问以后是否针对这俩场景提供方案 ? 1.oa crm 系统的通知和即时通讯 2.局域网即时通讯
troilus
    48
troilus  
   200 天前
@TristanYang curl: (6) Could not resolve host: sh.voce.chat; 未知的名称或服务 这条是不是也要更新
TristanYang
    49
TristanYang  
OP
   200 天前
@troilus 额 应该是 CDN 问题,有缓存,昨天我统一更新了,今天我溯源更新下,应该可以了。
TristanYang
    50
TristanYang  
OP
   200 天前
@ixixi 第一个场景没太明白,第二个实质就是部署 vocechat 吧,只不过不能对外访问,当然,有些功能也会受限,比如通知。可以加 v 详细聊聊~
Andrue
    51
Andrue  
   200 天前
功能上可以参考 matrix 从描述上来看 matrix 基本上和你们的这个完全一致,当然 matrix 的联邦网络和 E2E 加密还是特色
Andrue
    52
Andrue  
   200 天前
哦刚看到桥接列表里有 martix 了,看上去你们肯定也研究过了,不用我指指点点 XD
getput555
    53
getput555  
   200 天前
我的项目名称和大神的 90%相似,vochat 。先声明,可不是抄的,三年前就测试上线了,一直没有作商业化。我做的是一款基于语言社交娱乐的 app ,重点放在手机息屏后用语音控制手机社交和娱乐,打算用于特殊场景,比如:开车不能玩手机时,只需说,进工作群,那么,群里其他人说的语音消息会自动同步放出来,自己说的语音,会变成语音消息发到群里,没人聊天时,也可以变身智能语音,说听什么电台,就会自动切换到该实时节目,且所有听这个节目的用户会自动成为一个语音群互动,期间无需拿出手机用手和眼睛去操作。菜鸟做了好玩,让大神笑话了。
mogging
    54
mogging  
   200 天前 via Android
docker 加 nginx 很容易就部署到 vps 了,安卓 APP 打开邀请链接注册有问题,卡最后一步了,网页打开注册链接没问题。
han640223
    55
han640223  
   200 天前
@mogging 卡最后一步打开邀请链接注册有问题,是什么问题?粘贴邀请链接到手机 app ,没反应?还是跳转不到手机 app ?
mogging
    56
mogging  
   200 天前 via Android
可以输入用户名密码,但最后提交按钮没反应,我猜测是不是我的 vps 配置太低。vocechat.wangjia.xyz
mogging
    57
mogging  
   200 天前 via Android
@han640223 很好的软件,极简,个人建议注意一下开源协议的使用,防止别人拿去卖课,这种事情越来越多了。另外今晚会抓包之后再看看点击注册提交没反应是什么原因。
mogging
    58
mogging  
   200 天前 via Android
@han640223 很好的软件,极简,个人建议注意一下开源协议的使用,防止别人拿去卖课,这种事情越来越多了。另外今晚会抓包之后再看看点击提交没反应是什么原因。
TristanYang
    59
TristanYang  
OP
   199 天前
@getput555 90%相似的只是名称吧?😂
Laussan
    60
Laussan  
   199 天前
后端不开源是出于什么考虑?
TristanYang
    61
TristanYang  
OP
   199 天前
@Laussan 会开源,只是目前还没准备好~ 可以持续关注
TristanYang
    62
TristanYang  
OP
   199 天前
@mogging 是 web 端登录点击没反应?可以加我 v 具体看看
getput555
    63
getput555  
   199 天前
@TristanYang 是的,当时想是语音社交,就取名 voicechat ,再简化点,就是 vochat 了。后台是用的开源,前端用 android 写的,重点解决手机黑屏休眠后,后台保活和对控制响应的问题,架构也是用的第三方,一个人,写不了复杂的代码。
ArianX
    64
ArianX  
   199 天前
独立部署两个私有的服务,两个私有服务之间的用户,是否有办法互相发起聊天呢
TristanYang
    65
TristanYang  
OP
   199 天前
@ArianX 好问题,我们也考虑过不同 server 之间数据(用户&消息)互通,但是容易把事情搞复杂,先走好第一步,服务好单 server 的场景,你有好的想法,可以加我 v 详聊~ yanggc_2013
quericy
    66
quericy  
   198 天前
附件数据存储在服务端么,支持接对象存储么
TristanYang
    67
TristanYang  
OP
   198 天前   ❤️ 1
@quericy 目前是放在服务器上 后续会做第三方存储,比如 aws s3
hansu
    68
hansu  
   196 天前
@mogging APP:修复了邀请链接注册过程中的服务器识别和验证链接有效性的问题 app 更新后就好了
CarlGauss
    69
CarlGauss  
   196 天前
@TristanYang 跨服务器能连通才能提现去中心,而且用户的账号系统,直接用公私钥的体系,这样用户的账号就不属于任何一个平台,真正属于自己;在哪个服务器聊天只是临时挂靠。要在目前这么多的聊天系统中突出重围,这个特性我认为是最核心的特性了。
在博客的领域,有 Mastodon 做过尝试,但是并不好用,服务器端也要做一个核心的特性升级,那就是有一个中心服务器记录每个账号最新的服务器地址,这样去找每个账号的时候,才找得到,类似现在的域名服务器。这样,各个小的聊天系统,才能构建成为一个庞大松散的网络。后续更进一步的时候,可以大家也自建这种域名服务器。
不过上面都不是最大的问题,最大的问题是商业模式,要恰饭的,做成这样比较用爱发电,然后还要面对国家的审查和吃免费牢饭的风险。。。。。
TristanYang
    70
TristanYang  
OP
   196 天前
@CarlGauss 受教了 想起了以前拿 U 盘做操作系统,随插随用,数据也跟着 U 盘走,和你说的第一个观点挺像;第二个观点核心是设计一个数据互通的协议,https://matrix.org/ 好像已经在做了,但是落地普及,还有很长路要走。VoceChat 不会走用爱发电之路,但选择什么路,要走多远,还在探索,欢迎加 v 一起探索~ yanggc_2013
CarlGauss
    71
CarlGauss  
   195 天前
@TristanYang 现在还有一个问题是,到处都是锤子,但是没有钉子,或者说,没有具备商业价值的钉子。Discord 做的那么优秀都好像没掀起太大的风浪。
说起来,V 站有 discord 的频道吗?
luodaoyi
    72
luodaoyi  
   5 天前
能否支持下备注啥的
TristanYang
    73
TristanYang  
OP
   4 天前
@luodaoyi 是指用户备注吗?具体什么场景,是想要个用户名别称,还是有个地儿写用户介绍 /备注
关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2547 人在线   最高记录 5634   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 54ms · UTC 00:28 · PVG 08:28 · LAX 17:28 · JFK 20:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.