本文最后更新于 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.yml
和 admin.yml
里的任何配置都不推荐修改,默认即可,否则可能会产生部分配置不生效的问题。
多配置文件启动容器:
docker compose -f docker-compose.yml -f admin.yml up -d
注意先后顺序,因为 admin.yml
依赖 docker-compose.yml
所以要放在后面
访问后台时只需要 URL 地址后面追加 /admin/
即可访问。
效果
web端
移动端
配置
关于所有的环境变量,参考:
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通信格式, 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 | 文件/图片上传的大小限制,默认为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 密码。
。