在Ubuntu22.04上离线部署Tailchat(一)

一:Tailchat介绍

Tailchat 是一款插件化易拓展的开源 IM 应用。可拓展架构赋予 Tailchat 无限可能性。前端微内核架构 + 后端微服务架构 使得 Tailchat 能够驾驭任何定制化/私有化的场景,是面向企业与私域用户打造,高度自由的群组管理与定制化的面板展示可以让私域主能够更好的展示自己的作品,管理用户,打造自己的品牌与圈子。

Tailchat特性

完整的即时通讯基础能力
插件化架构的赋予的自由拓展能力
微服务架构赋予的水平拓展能力

Tailchat亮点

基于mini-star的前端微内核架构与基于moleculer的后端微服务架构可以适应各种用户用量,便于拓展
完整的聊天系统,支持提及、面板跳转、富文本、markdown、url链接等各种语法
消息reaction机制,让你通过表情表达自己
文件分享与图片发送
支持语音通话与视频通话
完善的身份组管理,权限控制颗粒化
用户管理与用户禁言
邮箱认证与密码找回
多种面板: 网页嵌入, 自定义html, 话题面板
简易消息推送与github通知订阅
后台管理平台
开放平台
机器人
OAuth
插件带来的更多奇妙化学反应
自定义主题
在线听音乐
消息加密
url获取元数据
隔空投送
任务管理
在线绘图
字体放大
工具箱
...

对于个人用户
如果希望和朋友一起玩
创建一个群组
通过多个频道分割不同的话题
使用网页面板来分享喜欢的网页
如果希望聚集自己的粉丝圈
使用机器人来订阅自己的信息并转发到聊天面板
让自己的粉丝集中在一起,不需要创建无数个qq群/微信群
多个频道让多个话题能够一起产生
如果对于自己的隐私非常看中
自己部署让一切都能掌控在手中

对于企业用户
面板化设计满足企业自定义化设计需求
插件化架构可以方便基于核心进行二次开发
自部署的实现可以让企业价值得到保护,让企业安心
开源代码方便审查

二:Tailchat的离线部署

(一)、安装nodejs

1、准备环境

#环境准备
sudo apt-get install python3 g++ make python3-pip

2、安装nodejs

apt update
apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && apt-get install -y nodejs
#显示安装版本
nodejs --version

3、升级nodejs

#使用"n"的node版本管理工具升级到最新版本
#安装n
sudo npm install n -g

# 安装稳定版
sudo n stable

# 查看已下载的版本
sudo n ls

(二)、Tailchat离线部署

Tailchat的相关依赖很多如下:
git
nodejs v16.18.0 或以上
pnpm v8.3.1 或以上
mongodb
redis
minio

这里我们先进行Tailchat的安装,接下来我们再介绍(二)mongodb的安装、(三)minio的安装、(四),redis的安装。安装相对复杂,不想麻烦的小伙伴可以选择使用docker安装。这里为什么讲离线安装呢,就是我们要了解软件的实际结构,和了解他的内部安全机制。为后续的部署,研发做准备。话不多说,下面开始:

1、克隆tailchat代码仓

mkdir msgbyte && cd msgbyte
git clone https://github.com/msgbyte/tailchat.git

2、编译项目

cd tailchat
pnpm install

该命令会花费一些时间,将Tailchat所有的依赖都安装一遍。当安装完毕后内部的插件会自动执行编译命令。

3、构建项目

NODE_ENV=production pnpm build

该命令会并行执行编译前端后端管理端的命令。并将前端产物移动到服务端的 server/dist/public 目录

4、运行项目

在server目录下以.env.example目录为例创建一个环境变量文件

cp server/.env.example server/dist/.env
vim .env

将必要的环境变量修改为自己的,如 MONGO_URL, REDIS_URL, MINIO_URL

5、然后启动Tailchat服务

SERVICEDIR=services,plugins pnpm start:service

6、后台地址后面追加/admin/即可访问

https://tailchat.example.com/admin/ 
#或者 
http://<server ip>:11000/admin/

备注:

此进启动会报错,主要是我们还没有配置mongoDB,minio,redis。接下来的三章我们会介绍:

在Ubuntu22.04上离线部署Tailchat(二)mongodb的安装、

在Ubuntu22.04上离线部署Tailchat(三)minio的安装、

在Ubuntu22.04上离线部署Tailchat(四)redis的安装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/297506.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

csdn中的资源文件如何删除?

csdn中的资源文件如何删除&#xff1f; 然后写文章的时候 点击资源绑定&#xff0c;解锁资源&#xff0c;就可以再次上传。

玫瑰之国保加利亚与葡萄酒的碰撞

玫瑰之国保加利亚与葡萄酒的碰撞 一、玫瑰与葡萄美酒 提起保加利亚&#xff0c;大家第一个想到的可能就是玫瑰花&#xff0c;没错&#xff0c;保加利亚就是被誉为“上帝后花园”的玫瑰之国&#xff0c;每年从这里出产的玫瑰与玫瑰精油&#xff0c;可以说受到了全球消费者的喜爱…

idea将本地编译好的代码上传到hub镜像仓库

第一步&#xff1a;编译打包本地的文件 package 第二步&#xff1a;执行docker bulid打包命令 docker build -t sunyuhua/algo-ability:1.0.0 .sunyuhuasunyuhua-HKF-WXX:~/workspace/shbgit/algo-ability$ docker build -t sunyuhua/algo-ability:1.0.0 . [] Building 141.…

I.MX6ULL开发笔记(三)——挂载NFS网络文件系统

0x01 网络文件系统 当我们在编译一个文件时&#xff0c;正常是在一个pc上编译好一个文件&#xff0c;之后丢到开发板上去运行。如果有了NFS网络文件系统&#xff0c;那么我们就可以在PC以及开发板上共享文件了。 网络文件系统&#xff0c;常被称为NFS&#xff08;Network Fil…

操作系统期末复习知识点

目录 一.概论 1.操作系统的介绍 2.特性 3.主要功能 4.作用 二.进程的描述与控制 1.进程的定义 2.特性 3.进程的创建步骤 4.基本状态转化 5.PCB的作用 6.进程与线程的比较 三.进程同步 1.同步的概念&#xff08;挺重要的&#xff09; 2.临界区 3.管程和进程的区…

python中抓取小米应用商城xpath实例

页面源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>手机游戏应用商店_软件商店app下载-小米应用商店</title> <…

网络通信(10)-C#TCP客户端实例

本文使用Socket在C#语言环境下完成TCP客户端的实例。 实例完成的功能: 客户端与服务器连接,实现实时刷新状态。 客户端接收服务器的数据。 客户端发送给服务器的数据。 客户端实时判定状态,断开连接后自动重连。 客户端与服务器端发送心跳包。 在VS中创建C# Winform项…

web期末个人引导页透明版

效果图 代码 css代码 * {box-sizing: border-box; }body {color: #2b2c48;font-family: "Jost", sans-serif;background-image: url(../img/bg.jpg);background-repeat: no-repeat;background-size: cover;background-position: center;background-attachment: fix…

计算机环境安全

操作系统安全----比如windows,linux 安全标识--实体唯一性 windows---主体&#xff1a;账户&#xff0c;计算机&#xff0c;服务 安全标识符SID-Security Identifier 普通用户SID是1000&#xff0c;管理用SID是500 linux---主体&#xff1a;用户&#xff0c;用户组&#xf…

Linux基础——进程地址空间

1. 地址空间的验证 之前我们在学习语言时&#xff0c;曾知道有下面这张图 对于这个图我们可以用下面的代码验证 运行后我们可以发现 其对应关系如下 我们使用fork函数&#xff0c;来分别对父子进程中的g_val进行修改&#xff0c;即 运行后我们可以发现 在子进程修改了g_val后…

凸优化 3:最优化方法

凸优化 3&#xff1a;最优化方法 最优化方法适用场景对比费马引理一阶优化算法梯度下降最速下降 二阶优化算法牛顿法Hessian矩阵Hessian矩阵的逆Hessian矩阵和梯度的区别牛顿法和梯度下降法的区别 拟牛顿法DFP、BFGS/L-BFGS 数值优化算法坐标下降法SMO算法 基于导数的函数优化解…

计算机视觉技术-区域卷积神经网络(R-CNN)

区域卷积神经网络&#xff08;region-based CNN或regions with CNN features&#xff0c;R-CNN&#xff09; (Girshick et al., 2014)也是将深度模型应用于目标检测的开创性工作之一。 本节将介绍R-CNN及其一系列改进方法&#xff1a;快速的R-CNN&#xff08;Fast R-CNN&#x…

安全与认证Week3 Tutorial+历年题补充

目录 1) 什么是重放攻击? 2)什么是Kerberos系统?它提供什么安全服务? 3)服务器验证客户端身份的一种简单方法是要求提供密码。在Kerberos中不使用这种身份验证&#xff0c;为什么?Kerberos如何对服务器和客户机进行身份验证? 4) Kerberos的四个要求是什么?Kerberos系…

软件测试|docker ps命令 管理和监视容器的利器

简介 Docker是一种流行的容器化平台&#xff0c;用于构建、分发和运行应用程序。Docker提供了许多命令行工具&#xff0c;其中之一是docker ps命令。本文将深入介绍docker ps命令&#xff0c;解释其用途、参数和功能&#xff0c;以及如何使用该命令来管理和监视运行中的Docker…

netcore html to pdf

一、新建项目&#xff1a;QuestPDFDemo <PackageReference Include"NReco.PdfGenerator" Version"1.2.1" /> 二、上代码 using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging;using QuestPDFDemo.Models; using System; using Sys…

力扣刷题记录(25)LeetCode:583、72、647

583. 两个字符串的删除操作 题目说可以删除任意一个字符串中的字符&#xff0c;实际上就是在求两个字符串的公共子序列。求得公共子序列后与字符串长度做个减法即可得需要的步数。 class Solution { public://求最长子数组int minDistance(string word1, string word2) {vecto…

C++ 数组详解,很全,很详细

数组 (C) 数组是相同类型的对象序列&#xff0c;它们占据一块连续的内存区。 传统的 C 样式数组是许多 bug 的根源&#xff0c;但至今仍很常用&#xff0c;尤其是在较旧的代码库中。 在新式 C 中&#xff0c;我们强烈建议使用 std::vector 或 std::array&#xff0c;而不是本部…

PPT插件-大珩助手-文字整理功能介绍

删空白行 删除文本中的所有空白行 清理编号 删除文本中的段落编号 清理格式 删除文本中的换行、空格符号 清理艺术 删除文本的艺术字效果 清理边距 删除文本框与文字之间的间隙 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件&#xff0c;它是一款功能强大且实…

1.5 Unity中的数据存储 PlayerPrefs、XML、JSON

Unity中的三种数据存储&#xff1a;数据存储也称为数据持久化 一、PlayerPrefs PlayerPrefs是Unity引擎自身提供的一个用于本地持久化保存与读取的类&#xff0c;以键值对的形式将数据保存在文件中&#xff0c;然后程序可以根据关键字提取数值。 PlayerPrefs类支持3种数据类…

网络信息安全十大隐患,如何做好防范,实践方法

随着互联网的普及和信息技术的飞速发展&#xff0c;网络安全问题日益凸显。网络攻击、网络诈骗、网络病毒等问题时刻威胁着人们的隐私和财产安全。针对这些隐患&#xff0c;广大网友该如何防范呢&#xff1f; 一&#xff1a;黑客攻击 黑客攻击是网络信息安全面临的最大威胁之一…