跳到主要内容

手动部署

警告

本章内容需要你对 nodejs, git, linux 有一定程度的了解。当出现如依赖问题、环境问题、系统问题等问题时需要具备自行解决和排查问题的能力。

如果你对此并不了解,不建议你使用本章内容进行部署。建议使用统一镜像进行部署。

依赖

  • git
  • nodejs v16.18.0 或以上
  • pnpm v8.3.1 或以上
  • mongodb
  • redis
  • minio

下载源码

mkdir msgbyte && cd msgbyte

git clone https://github.com/msgbyte/tailchat.git

切换到稳定代码

因为克隆下来的代码是最新代码,可能存在短时间内不稳定的情况,因此如果想要切换到各个版本的稳定代码的话可以使用git的tag功能

如切换到v1.7.6则可以使用命令:

git checkout v1.7.6

编译项目

Tailchat 是一个前后端分离的项目。因此我们要分别处理前端代码和后端代码

安装依赖

我们假设你已经安装了 nodejs v16.18.0+ 或者以上的版本。以及安装了 pnpm v8.3.1 或以上版本

cd tailchat
pnpm install

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

构建项目

NODE_ENV=production pnpm build

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

当项目构建完毕后我们的产物就可以正常运行了

警告

请尽可能在 macos / linux 环境进行构建,window 对 shell 命令支持并不一定完全

运行项目

为了确保项目能够水平扩容,Tailchat 的核心代码虽然写在同一个项目中,但是实际启动起来的时候可以被划分为多个细分的微服务。通过传入不同的环境变量的组合来实现有选择的启用不同的服务。

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

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

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

然后启动服务

SERVICEDIR=services,plugins pnpm start:service

SERVICEDIR 表示加载微服务的目录