Tiledesk 配置参数详解

Tiledesk 全部微服务的环境变量配置清单:server、chatbot、chat21 系列、backend-llm、基础设施(MongoDB/RabbitMQ/Redis/Qdrant)以及 JWT 密钥一致性规则。

TiledeskTiledesk聊天机器人在线客服2026/10/27

Tiledesk 配置参数详解

一、配置体系总览

Tiledesk 的配置全部通过 环境变量 注入,不使用传统配置文件(YAML/JSON)。每个微服务独立读取自己的环境变量集合。

1.1 配置层级

┌──────────────────────────────────────────────────┐
│ 全局共享变量(所有服务通用)                       │
│ - MONGODB_URI / JWT_SECRET_KEY / LOG_LEVEL 等    │
├──────────────────────────────────────────────────┤
│ 服务专有变量(每个服务独立读取)                   │
│ - tiledesk-server / chatbot / chat21-server ... │
├──────────────────────────────────────────────────┤
│ 前端编译时变量(Angular environment.prod.ts)      │
│ - serverUrl / wsUrl / chatUrl                    │
└──────────────────────────────────────────────────┘

1.2 变量格式约定

  • 布尔值:true / false(小写字符串)
  • 端口号:纯数字字符串,如 "3000"
  • URI:完整连接串,如 mongodb://user:pass@host:27017/dbname
  • 密钥:任意字符串,生产环境必须替换默认值

1.3 默认值清单(官方 Compose 部署)

下表列出 Tiledesk Community Edition 部署时的默认凭据和密钥,生产部署必须全部替换:

变量默认值严重程度
JWT_SECRET_KEYtokenKey🔴 密钥
CHAT21_JWT_SECRETtokenKey🔴 密钥
APPS_ACCESS_TOKEN_SECRETnodeauthsecret🔴 密钥
CHAT21_ADMIN_TOKEN硬编码 JWT 串🔴 密钥
默认管理员密码superadmin🔴 账户
GPTKEYCHANGEIT🟡 需替换为真实 key

二、全局共享变量

2.1 日志

变量默认值说明
LOG_LEVELinfo日志级别:debug / info / warn / error。所有后端服务通用

2.2 MongoDB

所有涉及数据库的服务(server、chatbot、chat21-server、chat21-http、backend-llm)都需要 MongoDB 连接串。

变量服务默认值说明
MONGODB_URItiledesk-servermongodb://mongo/tiledesktiledesk 数据库
MONGODB_URIchat21-server / chat21-httpmongodb://mongo/chat21chat21 数据库
MONGODB_URItiledesk-chatbotmongodb://mongo/tiledesk同 server
MONGODB_URLbackend-llm-train / qamongodb://mongo/tiledeskLLM 后端专用(变量名多了个 L)

⚠️ 两个数据库分离:tiledesk 存项目/坐席/会话/机器人配置,chat21 存实时消息/会话。源码安装时可共用一个 MongoDB 实例,通过数据库名区分。

2.3 Redis 缓存

变量服务默认值说明
CACHE_ENABLEDtiledesk-server / chatbottrue是否启用 Redis 缓存
CACHE_ENGINEtiledesk-serverredis缓存引擎类型
CACHE_REDIS_HOSTtiledesk-server / chatbotredisRedis 主机地址
CACHE_REDIS_PORTtiledesk-server / chatbot6379Redis 端口
REDIS_URLbackend-llm-train / qaredis://redis:6379LLM 后端的 Redis 连接串(格式不同)

2.4 RabbitMQ 消息队列

所有服务通过 AMQP/RabbitMQ 交换消息。关键连接串是 JWT 格式的 AMQP URL,包含预生成的凭据。

变量服务说明
AMQP_MANAGER_URLtiledesk-server / chatbot / backend-llm主 AMQP 连接串,格式 amqp://ignored:<JWT>@rabbitmq:5672
RABBITMQ_URIchat21-server / chat21-httpchat21 系列专用 AMQP 连接串

💡 AMQP URL 说明:Tiledesk 的 AMQP 连接串使用了 RabbitMQ JWT 认证插件,URL 格式为 amqp://ignored:<JWT_TOKEN>@host:5672。ignored 是占位用户名,真正的凭据在 JWT payload 里。源码安装时可以用标准 amqp://user:password@host:5672 格式(关闭 RabbitMQ JWT 插件),但必须确保所有服务的用户名密码一致。

RabbitMQ 基础凭据(broker 自身):

变量说明
RABBITMQ_ERLANG_COOKIEErlang cookie,集群节点间鉴权。单节点部署填任意长随机串
RABBITMQ_DEFAULT_USER初始管理员用户名
RABBITMQ_DEFAULT_PASS初始管理员密码

2.5 JWT 与鉴权

变量服务默认值说明
JWT_SECRET_KEYtiledesk-server / backend-llmtokenKey主 JWT 签名密钥
JWT_KEYchat21-server / chat21-httptokenKeychat21 系列 JWT 签名密钥(必须与 CHAT21_JWT_SECRET 一致)
CHAT21_JWT_SECRETtiledesk-servertokenKeyserver 签发 chat21 兼容 JWT 用
APPS_ACCESS_TOKEN_SECRETtiledesk-servernodeauthsecretApps 模块访问令牌密钥
CHAT21_APPIDtiledesk-server / chat21-servertilechatchat21 应用 ID,所有 chat21 组件必须一致

⚠️ 密钥一致性规则:JWT_SECRET_KEY、CHAT21_JWT_SECRET、JWT_KEY 三个变量在生产环境中必须全部设置为同一个值,否则 server 和 chat21 系列的 JWT 无法互相验证。

2.6 外部访问地址

统一配置 Widget、Dashboard、WebSocket 端点对外暴露的地址。

变量默认值说明
EXTERNAL_BASE_URLhttp://localhost:8081外部根地址,前端组件据此生成 API/WSS 全路径
EXTERNAL_MQTT_BASE_URLws://localhost:8081MQTT over WebSocket 地址,Widget 实时推送用

影响范围:dashboard、webwidget、ionic、cds 等前端组件启动时会读取这些值,硬编码嵌入到编译产物中。

三、tiledesk-server 主后端配置

server 是 Tiledesk 的核心 API 服务,端口 3000。除了上文的全局变量外,专有配置如下:

3.1 Chat21 集成

变量默认值说明
CHAT21_ENABLEDtrue是否启用 Chat21 实时聊天引擎
CHAT21_ENGINEmqtt实时协议:mqtt(推荐)或 websocket
CHAT21_URLhttp://chat21httpserver:8004Chat21 HTTP API 地址
CHAT21_ADMIN_TOKEN硬编码 JWTserver 调用 chat21-server 的管理员令牌
ALLOW_REOPEN_CHATtrue是否允许访客重新打开已关闭会话

3.2 AI / LLM 配置

变量默认值说明
GPTKEYCHANGEITOpenAI API Key。Community 版可保持 CHANGEIT,但 AI Bot 不可用
OPENAI_ENDPOINThttps://api.openai.com/v1OpenAI API 端点(可改 Ollama/vLLM 等)
AI_MODELSgpt-5:4;gpt-4o:4;...模型列表,格式 模型名:每百万 token 成本(用于计费参考)
TILEBOT_ENDPOINThttp://chatbot:3000AI Bot 引擎地址
AI_ENDPOINT—后端-LLM 服务地址(可选,用于直接问答)

3.3 RAG / 向量存储

变量默认值说明
KB_ENDPOINT_TRAINhttp://backend-llm-train:8000/apiRAG 训练端点
KB_ENDPOINT_QAhttp://backend-llm-qa:8000/apiRAG 问答端点
VECTOR_STORE_NAMEqdrant向量存储引擎
VECTOR_STORE_HOSTqdrant向量存储主机
VECTOR_STORE_PORT6333向量存储端口
VECTOR_STORE_DEPLOYMENTlocal部署模式
INDEX_TYPEserverlessQdrant collection 类型
INDEX_NAMEtiledesk-llm索引名
VECTOR_SIZE1536向量维度(OpenAI text-embedding-3-small 是 1536)

3.4 Email 通知

变量默认值说明
EMAIL_ENABLED空(不启用)是否启用邮件通知
EMAIL_HOST—SMTP 服务器主机
EMAIL_PORT—SMTP 端口(通常 465/587)
EMAIL_SECURE—是否 TLS:true
EMAIL_USERNAME—SMTP 用户名
EMAIL_PASSWORD—SMTP 密码
EMAIL_FROM_ADDRESS—发件人地址
EMAIL_BASEURLhttp://localhost:8081/dashboardDashboard 基础 URL(邮件里嵌入链接用)

3.5 多渠道集成

变量说明
FB_APP_ID / FB_APP_SECRETFacebook Messenger 集成
TELEGRAM_API_URL / TELEGRAM_FILE_URLTelegram Bot API 前缀
META_GRAPH_URLFacebook Graph API 版本,默认 https://graph.facebook.com/v20.0/
LICENSE_KEY企业版 License(Community 版不需要)

3.6 其他

变量默认值说明
RESTHOOK_ENABLEDtrue是否启用 Webhook
BOOT_LOADINGtrue是否在启动时加载 Bot Flow 定义
COMMUNITY_VERSIONtrueCommunity 版本标识(影响 FEATURES_TOKEN 解析)
QUOTES_ENABLEDfalse是否启用报价功能
WS_SERVER_PATH空WebSocket 服务器路径(通常让其自动推导)
WIDGET_LOCATION自动推导Widget URL,前端嵌入用

四、chat21 实时消息组件

chat21 系列是 Tiledesk 的 MQTT 实时消息引擎,含三个独立服务。

4.1 chat21-server(MQTT Broker)

变量默认值说明
APP_IDtilechat应用 ID,必须与 server 的 CHAT21_APPID 一致
WEBHOOK_ENABLEDtrue是否启用 Webhook 回调
WEBHOOK_EVENTSmessage-sent,message-delivered,conversation-unarchived触发 webhook 的事件列表
WEBHOOK_ENDPOINTShttp://server:3000/chat21/requests,...Webhook 回调目标地址(逗号分隔)
MQTT_PORT3003(默认)MQTT 监听端口

4.2 chat21-http-server(Chat HTTP API)

变量默认值说明
PUSH_ENABLEDtrue是否启用推送(MQTT 推送)
CONTACTS_LOOKUP_ENDPOINThttp://server:3000/users_util用户画像查询地址
CHAT21HTTP_CACHE_ENABLEDfalse是否缓存 Chat HTTP 响应
PUSH_WH_CHAT21_API_ADMIN_TOKEN硬编码 JWTchat21-http → chat21-server 的推送令牌
PUSH_WH_WEBHOOK_TOKEN硬编码串Webhook 共享密钥

4.3 chat21-web-widget / chat21-ionic(前端)

前端组件在编译时读取以下环境变量,运行时通过浏览器加载。

变量默认值说明
CHAT21_ENGINEmqtt实时协议
MQTT_APPIDtilechatMQTT 客户端 appID
MQTT_ENDPOINTws://localhost:8081/mqws/wsMQTT over WebSocket 端点
MQTT_APIENDPOINThttp://localhost:8081/chatapi/apiChat HTTP API 端点
SERVER_BASE_URLhttp://localhost:8081/api/Server REST API 根路径
AUTH_PERSISTENCELOCAL认证持久化方式:LOCAL / REMOTE
PUSH_ENGINEnone推送引擎:none / firebase
UPLOAD_ENGINEnative文件上传方式:native / s3

五、AI / LLM 后端配置

5.1 tiledesk-chatbot(Bot 引擎)

变量默认值说明
API_ENDPOINThttp://server:3000Server API 地址(Bot 回调 server)
TILEBOT_ENDPOINThttp://chatbot:3000Bot 自身端点
AI_ENDPOINThttp://backend-llm-train:8000/apiLLM 后端地址
CACHE_ENABLEDtrue是否启用 Redis 缓存
FLOW_LOGS_ENABLEDtrue是否记录 Bot Flow 执行日志
TILEBOT_LOGinfoBot 日志级别

5.2 backend-llm-train / backend-llm-qa(Python FastAPI)

两个实例共用同一份代码,通过 TILELLM_ROLE 区分职责。

变量默认值说明
TILELLM_ROLE—必填:train 或 qa
TIMEOUT240API 请求超时(秒)
WORKERS3uvicorn worker 数量
GPTKEYCHANGEITOpenAI API Key
JOB_TOPIC_EXCHANGE_TRAINtiledesk-trainerRabbitMQ topic exchange 名称
TRAIN_PREFETCH4RabbitMQ prefetch count
TRAINER_LOGinfo日志级别

六、Nginx 反代配置

统一入口 Nginx 承担路径路由和 WebSocket 升级。源码安装时需要手动配置(见 《Tiledesk Ubuntu 22.04 源码安装指南》 第六章)。关键 location 段:

路径反代目标说明
/api/server:3000/api/REST API
/ws/RabbitMQ MQTT WebSocketDashboard 实时推送
/mqws/wsRabbitMQ MQTT WebSocketWidget 实时推送
/chatapi/chat21-http-server:8004/Chat HTTP API
/dashboard/静态文件管理后台 UI
/cds/静态文件Bot Flow 设计器
/widget/静态文件Web Widget
/chat/静态文件完整聊天界面

⚠️ WebSocket 升级:Nginx 反代 WebSocket 时必须加 proxy_http_version 1.1 + proxy_set_header Upgrade $http_upgrade + proxy_set_header Connection "upgrade",否则 MQTT over WS 无法握手。

七、FEATURES_TOKEN 功能开关

FEATURES_TOKEN 是一串以冒号分隔的开关码,前缀字母表示功能组类型:

前缀含义示例
T-(Tiledesk)核心功能,Community 版已开启T-GPT(GPT 集成)、T-BAN(Ban 功能)、T-ACT(Activities)
F-(Feature)付费功能,需要企业 LicenseF-ANA(高级分析)、F-MTT(更多模板)、F-NOT(增强通知)、F-IPS(IPS 功能)
PAY:付费功能前缀标记—

当前 Community Edition 的 FEATURES_TOKEN 值为:

PAY:F-ANA:T-ACT:T-TRI:T-GRO:T-DEP:T-OPH:T-MTL:T-CAR:T-PSA:F-MTT:T-SUP:T-LBS:T-APP:T-DEV:F-NOT:T-IPS:F-ETK:F-RAS:F-PPB:F-PET:F-MTS:F-TIL:T-DGF:T-NAT:T-HPB:F-TOW:F-KNB:T-GPT:T-BAN:F-AST:F-MON:T-CNT:F-AUT:F-WUN:F-INT:T-DPA:T

💡 Community 版已通过 FEATURES_TOKEN 开启了几乎所有 T- 核心功能位(约 30 个),但 F- 付费功能(F-ANA 高级分析、F-MTT 模板等)仍需企业版 License 才能生效。License Key 通过 LICENSE_KEY 环境变量注入 server。

八、Qdrant 向量存储

Qdrant 是独立部署的开源向量数据库,不需要额外配置变量——默认即可工作。可选配置:

项目默认值说明
Storage Path/var/lib/qdrant/storage(源码)或 ./qdrant_storage(Compose)数据持久化目录
Listen Port6333(HTTP)/ 6334(gRPC)—
Vector Size1536必须与 VECTOR_SIZE 一致(由 server 配置)

Qdrant 的 collection 会由 tiledesk-server 在首次创建知识库时自动建立,不需要手工创建。

九、配置调优建议

9.1 内存调优

Node.js 服务默认堆内存约 200-300MB,可通过 NODE_OPTIONS 调整:

# systemd 服务中增加环境变量
Environment=NODE_OPTIONS="--max-old-space-size=512"
服务推荐堆内存
tiledesk-server512 MB
chat21-server256 MB
chat21-http-server256 MB
tiledesk-chatbot512 MB(AI 推理缓存用)

9.2 RabbitMQ 调优

# /etc/rabbitmq/rabbitmq.conf
default_vhost = /
default_user = rabbitmq
default_pass = <强密码>
loopback_users = none

# MQTT 插件配置
mqtt.tcp_listener.port = 1883

9.3 MongoDB 调优

生产环境建议在 MongoDB 开启 WiredTiger 压缩和合理的连接池:

// mongosh 中设置
db.adminCommand({setParameter: 1, maxInternalLoginCacheSize: 100})

9.4 Redis 调优

# /etc/redis/redis.conf
maxmemory 1gb
maxmemory-policy allkeys-lru
save 900 1
save 300 10

十、配置完整性检查清单

部署完成后执行以下检查,确保所有关键变量已正确配置:

# 1. 所有 JWT 密钥必须相同
echo "JWT一致性检查:"
grep JWT /opt/tiledesk/backend/*/.env 2>/dev/null

# 2. RabbitMQ 连接串必须所有服务一致
echo "AMQP一致性检查:"
grep -r AMQP_MANAGER_URL\|RABBITMQ_URI /opt/tiledesk/backend/*/.env 2>/dev/null

# 3. 外部地址
echo "外部地址配置:"
grep EXTERNAL_BASE_URL /opt/tiledesk/backend/server/.env 2>/dev/null

# 4. GPTKEY 是否已替换
echo "GPTKEY检查:"
grep -r GPTKEY /opt/tiledesk/backend/*/.env | grep CHANGEIT && \
  echo "⚠️ 警告: GPTKEY 仍为 CHANGEIT,AI 功能不可用" || \
  echo "✅ GPTKEY 已配置"

# 5. 默认管理员密码(需 Dashboard 内修改)
echo "默认管理员: admin@tiledesk.com / superadmin"
echo "⚠️ 请首次登录后立即修改!"