用雨云服务器快速搭建Tailchat

用雨云服务器快速搭建Tailchat(强烈建议改名Discord)

一 Tailchat

客套话

开放源码, 开放生态
不仅仅是另一个 Discord
不仅仅是另一个 Rocket Chat
不仅仅是另一个 Slack
Tailchat,下一代noIM
其实这个东西很想Discord

概述

Tailchat 是一款插件化易拓展的开源 IM 应用。可拓展架构赋予 Tailchat 无限可能性。

前端微内核架构 + 后端微服务架构 使得 Tailchat 能够驾驭任何定制化/私有化的场景

面向企业与私域用户打造,高度自由的群组管理与定制化的面板展示可以让私域主能够更好的展示自己的作品,管理用户,打造自己的品牌与圈子。

特性

完整的即时通讯基础能力

插件化架构的赋予的自由拓展能力

微服务架构赋予的水平拓展能力

功能

  1. 支持文本、链接、提及、图像、文件等多种消息类型,并支持对消息添加反应。
  2. 可加入多个群组,通过群组中的多个面板讨论不同话题、信息和通知。
  3. 收件箱可接收提及、插件通知等信息,也可自行推送信息。
  4. 具备快速跳转命令面板,可通过ctrl+k快速打开,也可在导航栏点击搜索按钮打开。
  5. 支持私信对话,可在私信中使用@提及功能。
  6. 群组成员列表允许右键快速修改身份组。
  7. 增加好友列表搜索功能,可基于好友昵称快速过滤好友。
  8. 音视频功能优化,增加app摄像头麦克风权限获取,移动端可正常使用音视频服务。
  9. 增加内嵌会话视图,优化手机端通话体验。
  10. 具备基本信息编辑权限,可修复群组字段显示不正确的bug。
  11. 为话题删除操作增加二次提示,修复话题已读可能无法正常工作的bug。
  12. 修复群组下拉菜单可能向上展开的错误,修复禁用插件不会禁用路由的bug。
  13. cli smtp测试命令添加关闭逻辑,并在测试邮件中添加时间。
  14. 在livekit插件中可隐藏成员列表功能,添加虚拟用户以避免未使用的用户信息请求。
  15. livekit插件增加成员面板,可查看参会者列表及麦克风情况。
  16. livekit插件增加多人会话发起音视频会话功能,可从私信会话中直接发起音视频呼叫。
  17. livekit插件增加多人会话自动邀请功能,对方从私信会话中发送消息,会自动发起邀请。
  18. 增加notification弹窗夜间模式支持。
  19. 增加环境变量MINIO_SSL用于手动控制minio ssl,适用于使用外部s3存储。
  20. 设置页面增加重新加载按钮,用于在非网页模式下方便重新加载Tailchat。
  21. 网页面板增加背景色选项,用于处理部分网页透明背景导致的样式问题。
  22. 具备AI助手,可帮助提高用词、简化表达,甚至总结历史消息。
  23. 拥有完整的插件系统,可通过插件将应用程序和项目集成到聊天应用中,如发起视频会议、听音乐、使用在线工具等。
  24. 通过插件可进一步改善聊天体验,如主题面板、端到端加密、富文本、消息通知、在线绘图、接收第三方应用推送等。
  25. 支持机器人和第三方登录,可通过简单的url请求或添加openapi应用,甚至创建后端插件来集成第三方应用。
  26. 权限管理采用RBAC策略,基于身份组的组合拥有不同的权限。
  27. 支持自定义主题、自定义面板、自定义操作、消息内容转换等。
  28. 支持多平台,包括网页端、手机端、桌面端。

二 配置服务器

这里推荐使用雨云!完美兼容!100%成功

1.注册账号

使用浏览器打开https://www.rainyun.com/DHEnry_,点击右上角注册账号,按提示注册账号,新人5折,长期7折。

小声OS:雨云甚至还有免费服务器!

2.选购服务器

关于服务器配置方面

  • 如果你没有ICP备案,请选择海外地区
  • 安装Tailchat需要2GB的至少可用运行内存

您可以参考上述的要求,选购一台合适您的服务器

操作系统务必选择Ubuntu

如果你选择预装宝塔面板,你可以跳过浏览第3步

3.安装宝塔面板

宝塔面板是一款很好用的服务器运维工具

使用Xtermjs模式的VNC远程连接至服务器

需要键入服务器的服务器用户名(默认为root)和密码

 

进入宝塔面板官网Linux面板安装脚本处,复制一条最新版本的指令,至服务器VNC控制台,不能使用Ctrl+V粘贴,必须右键空白处,点击粘贴

等待安装成功,安装时间大概为1-5分钟

4.配置宝塔面板及服务器环境

进入宝塔面板,划到最下,同意协议

绑定手机号,没有的可以注册一个

建议安装默认的LAMP环境,建议勾选安装FTP软件

单击左侧Docker,安装Docker,安装方法选择自定义安装,安装源推荐选择阿里云的

等待左上角服务器IP右边的数字为0

三 安装Tailchat

首先,恭喜你,你已经打败了全国99%的人

在此,你有三种部署Tailchat的方法,他们分别是:

  • cli
  • 公共镜像安装
  • 源码编译

因为篇幅原因,这里只讲解公共镜像安装的方法,因为简单、快速、成功率高

1.从公共镜像库拉取tailchat镜像

使用Xtermjs模式的VNC远程连接至服务器

需要键入服务器的服务器用户名(默认为root)和密码

 

在控制台中输入

 
docker pull moonrailgun/tailchat

这一步是在服务器中,使用docker拉取官方镜像库moonrailgun的项目tailchat

2.改名

继续在控制台中输入

 
docker tag moonrailgun/tailchat tailchat 

这一步是在服务器中,使用docker将本地镜像moonrailgun/tailchat命名为tailchat,否则会运行源码编译的流程。

3.配置环境

继续在控制台中输入

 
mkdir tailchat && cd tailchat
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker-compose.yml
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker-compose.env
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker/admin.yml 

这一步是新建/root/tailchat并进入到/root/tailchat文件夹,然后分别拉取docker-compose.ymldocker-compose.envadmin.yml,他们分别是Docker-Compose识别文件Docker-Compose容器build参数文件admin后台文件

随后,你需要使用vim 文件名的方式编辑·docker-compose.env·,这是环境变量,具体说明如下:

 
变量名 默认值 描述
PORT 11000 网关服务端口号
SECRET tailchat 加密秘钥,用于JWT(JSON Web Token)相关加密操作
STATIC_HOST “{BACKEND}” 对外可访问的静态服务主机,用于文件服务访问;默认为动态根据前端请求推断的服务端地址,若需存储在第三方OSS需修改
STATIC_URL “{BACKEND}/static/” 对外可访问的静态服务完整地址前缀,用于文件服务访问;默认为动态根据前端请求推断的服务端地址,若需存储在第三方OSS需修改;设置本变量后,STATIC_HOST 值无效
API_URL http://127.0.0.1:11000 对外可访问的URL地址,用于开放平台的issuer签发,或作为文件服务的fallback(备用)地址
MONGO_URL 数据库(MongoDB)服务地址(无默认值,需手动配置)
REDIS_URL Redis服务地址(无默认值,需手动配置)
MINIO_URL 文件服务(MinIO)地址(无默认值,需手动配置)
MINIO_USER 文件服务(MinIO)用户名(无默认值,需手动配置)
MINIO_PASS 文件服务(MinIO)密码(无默认值,需手动配置)
MINIO_BUCKET_NAME tailchat 文件服务(MinIO)存储桶名
MINIO_PATH_STYLE “Path” 文件服务(MinIO)的S3通信格式;“Path” 为路径模式(Path Style),“VirtualHosted” 为虚拟主机模式(Virtual hosted style)
MINIO_SSL false 是否使用加密连接文件存储服务;值为 “1” 或 “true” 时启用SSL协议
SMTP_SENDER 邮件服务发件人(示例格式:“Tailchat” example@163.com,无默认值,需手动配置)
SMTP_URI 邮件服务连接地址(示例格式:smtp://username:password@smtp.example.com/?pool=true,无默认值,需手动配置)
FILE_LIMIT 1048576 文件/图片上传的大小限制,单位为字节,默认值对应1MB
EMAIL_VERIFY 是否开启邮箱校验;值为 “1” 或 “true” 时,注册流程中增加邮箱校验步骤
REQUEST_TIMEOUT 10000 请求超时时间(单位:毫秒);请求超过该时间未完成会抛出 RequestTimeout 错误;传 0 可禁用请求超时限制
TIANJI_SCRIPT_URL 天际(Tianji)监控脚本URL;如需监控Tailchat用户使用情况,可在天际网站代码模式中获取(示例:https://tianji.example.com/tracker.js,无默认值,需手动配置)
TIANJI_WEBSITE_ID 天际(Tianji)网站ID(无默认值,需手动配置,与TIANJI_SCRIPT_URL配合使用)
DISABLE_MESSAGEPACK 是否禁用 OpenAPI 的 Socket.IO 使用 MessagePack 作为解析器;值为 “1” 或 “true” 时禁用该功能
DISABLE_LOGGER 是否禁用日志输出;值为 “1” 或 “true” 时,运行中关闭日志输出
DISABLE_TRACING 是否禁用 Tracing 功能(开启可节约大量日志);值为 “1” 或 “true” 时,运行中关闭日志
DISABLE_USER_REGISTER 是否关闭用户注册功能;值为 “1” 或 “true” 时,关闭用户注册入口
DISABLE_GUEST_LOGIN 是否关闭游客登录功能;值为 “1” 或 “true” 时,关闭游客登录入口
DISABLE_CREATE_GROUP 是否关闭用户创建群组功能;值为 “1” 或 “true” 时,关闭群组创建入口
DISABLE_PLUGIN_STORE 是否隐藏插件中心功能;值为 “1” 或 “true” 时,隐藏用户端插件中心入口
DISABLE_ADD_FRIEND 是否隐藏添加好友功能;值为 “1” 或 “true” 时,隐藏添加好友入口
DISABLE_TELEMETRY 是否关闭遥测报告功能(遥测数据完全匿名);值为 “1” 或 “true” 时,关闭遥测功能

你应该只会需要修改默认提供的参数、是否关闭游客登录功能;值为 “1” 或 “true” 时,关闭游客登录入口是否关闭用户注册功能;值为 “1” 或 “true” 时,关闭用户注册入口,因为他们至关重要!

修改完后先在键盘按ESC,再按:,再输入wq!

4.启动项目

您只需要在控制台键入:

 
docker-compose -f docker-compose.yml -f admin.yml up -d 

作用不多讲解

5.放行端口

进入宝塔面板,左侧安全,点击添加,端口11000,添加

四 进入访问

 

具体功能大家自行琢磨

 

五 FAQ

我修改配置之后,怎么没有生效?

你需要重新启动项目,即:

 
docker-compose -f docker-compose.yml -f admin.yml up -d 

执行这条命令前你需要先确保你在/root/tailchat下,如果不在,请先键入:

 
cd /root/tailchat

项目配置文件放在哪里了?可以移动吗?

root/tailchat

不推荐移动

我怎么停止Tailchat?

你可以在宝塔的Docker管理的容器管理里面搞

怎么实现注册自动添加群组?

修改docker-compose.env,添加行AUTOJOIN_GROUP_ID=群组id,群组id就是先进入群组,然后URL的第一个STRING值

后台在哪里?

URL追加/admin然后输入docker-compose.env配置的信息就可以进了

怎么实现注册需要SMTP?

文章之前有介绍

这个支持markdown吗?

支持,但不完全支持,这是语法:

 
关键字 描述 用法示例 预览效果
b 文本加粗 [b]foo[/b] foo
i 文本倾斜 [i]foo[/i] foo
u 文本下划线 [u]foo[/u] foo
s 文本删除线 [s]foo[/s] foo
url 超链接 [url]https://tailchat.msgbyte.com[/url] / [url=https://tailchat.msgbyte.com]官网[/url] https://tailchat.msgbyte.com / 官网
img 图片 [img]https://tailchat.msgbyte.com/img/logo.svg[/img] 显示对应 URL 指向的图片(示例图为 Tailchat 官方 Logo)
at 提及用户 [at=<userid>]moonrailgun[/at](需替换 <userid> 为实际用户 ID) 生成指向指定用户的提及标签,点击可跳转至用户主页或触发通知
emoji 表情符号 [emoji]smile[/emoji](支持的表情关键词需参考系统内置 emoji 列表) 显示对应关键词的表情符号(如示例中会显示“微笑”表情)
markdown / md Markdown 语法支持 [markdown]## Heading[/markdown] / [md]**加粗文本**[/md] 按 Markdown 语法渲染内容(示例中会显示二级标题“Heading”或加粗文本)

这个项目开源吗?

开源!

请前往https://github.com/msgbyte/tailchat

哪里有文档?

https://tailchat.msgbyte.com/zh-Hans/docs/intro

注意,常见问题在本文档已经列出了

关于雨云

雨云送免费游戏云,请前往https://www.rainyun.com/DHEnry_

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容