本文最后更新于 2024-09-07,文章内容距离上一次更新已经过去了很久啦,可能已经过时了,请谨慎参考喵。

前情提要

巴拉巴拉巴拉(明天写)

部署

首先拉取镜像:(必须项,否则 docker-compose 无法启动)

# 从公共镜像库拉取 tailchat镜像
docker pull moonrailgun/tailchat
# 将下载的镜像改名为tailchat(和源码编译保持一致,如果不改的话会走源码编译流程)
docker tag moonrailgun/tailchat tailchat

获取配置文件和环境变量文件:

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

修改 docker-compose.env 文件的配置,以下字段推荐修改:

  • API_URL 对外可访问的 url 地址,用于文件服务访问, 可以是域名也可以是 ip,如果出现发送图片不能正常显示就是这个变量没有设置;

  • SECRET 服务端加密秘钥,用于生成 Token.,默认为 tailchat

  • ADMIN_USER 后台管理面板账户,默认为 tailchat

  • ADMIN_PASS 后台管理面板密码;

  • DISABLE_GUEST_LOGIN 禁止游客登录;(需要新增该配置项,并且设置值 =1

注意,docker-compose.ymladmin.yml 里的任何配置都不推荐修改,默认即可,否则可能会产生部分配置不生效的问题。

多配置文件启动容器:

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

注意先后顺序,因为 admin.yml 依赖 docker-compose.yml 所以要放在后面

访问后台时只需要 URL 地址后面追加 /admin/ 即可访问。

效果

web端

20240904215429.png

20240904215543.png

20240904215717.png

移动端

20240904220957.jpg

配置

关于所有的环境变量,参考:

https://tailchat.msgbyte.com/zh-Hans/docs/deployment/environment

如下表:

变量名

默认值

描述

PORT

11000

网关服务端口号

SECRET

tailchat

加密秘钥, 用于JWT

STATIC_HOST

"{BACKEND}"

对外可访问的静态服务主机,用于文件服务访问, 默认为动态根据前端请求推断出的服务端地址,如果期望存储在第三方OSS中需要进行修改

STATIC_URL

"{BACKEND}/static/"

对外可访问的静态服务完整地址前缀,用于文件服务访问, 默认为动态根据前端请求推断出的服务端地址,如果期望存储在第三方OSS中需要进行修改, 如果设置了本变量则上面的 STATIC_HOST 值无效

API_URL

http://127.0.0.1:11000

对外可访问的url地址,用于开放平台的issuer签发或者作为文件服务的fallback

MONGO_URL

-

数据库服务地址

REDIS_URL

-

Redis服务地址

MINIO_URL

-

文件服务地址(minio)

MINIO_USER

-

文件服务用户名

MINIO_PASS

-

文件服务密码

MINIO_BUCKET_NAME

tailchat

文件服务存储桶名

MINIO_PATH_STYLE

"Path"

是否使用路径形式的s3通信格式, PathPath Style, VirtualHostedVirtual 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

文件/图片上传的大小限制,默认为1m,请输入数字,(单位: 字节)

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

DISABLE_MESSAGEPACK

-

是否禁用 openapi 的 sockio 使用 messagepack 作为 解析器, 如果为 "1" 或者 "true" 则禁用该功能

DISABLE_LOGGER

-

是否禁用日志输出, 如果为 "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" 则关闭该功能

那么就先到这里啦~

如果是阿里云的邮箱发信服务,那么 SMTP_URI 的格式应该是这样的:

smtps://tailchat@laugh0608.ltd:xxxxxx@smtpdm.aliyun.com:465/?pool=true

其中 xxxxxx 为 SMTP 密码。