# ===================================== # Database / 数据库 # ===================================== MYSQL_DATABASE=bytedesk MYSQL_ROOT_USER=root MYSQL_ROOT_PASSWORD=r8FqfdbWUaN3 MYSQL_PORT=3306 MYSQL_HOST_PORT=13306 POSTGRES_DB=bytedesk POSTGRES_USER=postgres POSTGRES_PASSWORD=r8FqfdbWUaN3 POSTGRES_PORT=5432 POSTGRES_HOST_PORT=15432 KINGBASE_IMAGE=kingbase_v009r001c010b0004_single_arm:v1 KINGBASE_DATABASE=bytedesk KINGBASE_DB_USER=root KINGBASE_DB_PASSWORD=r8FqfdbWUaN3 KINGBASE_SYSTEM_PWD=SYSTEM KINGBASE_PORT=54321 KINGBASE_HOST_PORT=54321 # 路径相对于 deploy/docker/compose/ 目录解析(compose 文件所在目录) KINGBASE_LICENSE_FILE=../../kingbase/license_V009R001C-专业版.dat KINGBASE_DB_MODE=mysql KINGBASE_ENABLE_CI=yes KINGBASE_NEED_START=yes # FreeSWITCH 数据库主机(默认对接 mysql 服务 bytedesk-mysql;使用 postgresql 时改为 bytedesk-postgresql) FREESWITCH_DB_HOST=bytedesk-mysql FREESWITCH_DATABASE=bytedesk_freeswitch # ===================================== # Middleware Credentials / 中间件凭据 # ===================================== REDIS_PASSWORD=qfRxz3tVT8Nh ELASTIC_PASSWORD=bytedesk123 KIBANA_SERVICE_ACCOUNT_TOKEN= MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin123 # ===================================== # Message Queue / 消息队列 # ===================================== ARTEMIS_USER=admin ARTEMIS_PASSWORD=admin RABBITMQ_DEFAULT_USER=admin RABBITMQ_DEFAULT_PASS=admin # ===================================== # Oracle (optional) / Oracle(可选) # ===================================== ORACLE_DATABASE=bytedesk ORACLE_PASSWORD=r8FqfdbWUaN3 ORACLE_APP_USER=bytedesk ORACLE_APP_USER_PASSWORD=r8FqfdbWUaN3 # ===================================== # Call scenario / 呼叫中心场景 # ===================================== # --- 网络拓扑(唯一需要按环境修改的核心参数)--- # FreeSWITCH SIP 域(通常填宿主机可达 IP 或域名) FREESWITCH_DOMAIN=192.168.0.102 # 对外宣告的 SIP / RTP 地址(公网浏览器场景用 STUN;局域网硬话机填宿主机可达 IP) FREESWITCH_EXTERNAL_SIP_IP=stun:bytedesk-coturn:3478 FREESWITCH_EXTERNAL_RTP_IP=stun:bytedesk-coturn:3478 # Java MRCP Server 可达地址(starter + FreeSWITCH 同机部署时填宿主机 IP) FREESWITCH_MRCP_SERVER_HOST=192.168.0.102 FREESWITCH_MRCP_SERVER_PORT=1544 FREESWITCH_MRCP_RTP_IP=192.168.0.102 # 录音公开访问基础 URL(供 xml_cdr / 回调使用) FREESWITCH_RECORDINGS_PUBLIC_BASE=http://192.168.0.102:15080/freeswitch-recordings # AI Bot 回调地址(Docker 内访问宿主机用 host.docker.internal;独立部署用真实 IP) FREESWITCH_AI_BOT_BASE_URL=http://host.docker.internal:9003 # --- 凭据 --- # 默认分机密码(对应 vars.xml 的 default_password) FREESWITCH_DEFAULT_PASSWORD=123456 # ESL 入站口令(与 vars.xml 的 esl_password 对应) FREESWITCH_ESL_PASSWORD=123456 # --- FreeSWITCH runtime overrides --- # xml_cdr Basic 凭据密码 FREESWITCH_CDR_PASSWORD=123456 FREESWITCH_XML_CURL_TOKEN=change_me_in_production FREESWITCH_XML_CURL_GATEWAY_URL=http://host.docker.internal:9003/visitor/api/v1/xmlcurl FREESWITCH_API_BASE_URL=http://host.docker.internal:9003 # Qwen-Audio-Realtime 电话实时媒体桥;启用前需确认 FreeSWITCH 镜像已安装/加载 mod_audio_stream FREESWITCH_QWEN_REALTIME_MEDIA_BRIDGE_ENABLED=true FREESWITCH_QWEN_REALTIME_MEDIA_WS_URL=ws://host.docker.internal:9003/visitor/api/v1/call/voice-agent/qwen-realtime/media # --- FreeSWITCH 数据库连接 --- FREESWITCH_DB_HOST=bytedesk-mysql FREESWITCH_DB_PORT=3306 FREESWITCH_DB_NAME=bytedesk_freeswitch FREESWITCH_DB_USERNAME=root FREESWITCH_DB_PASSWORD=r8FqfdbWUaN3 # --- Baidu MRCP Server(可选依赖)--- FREESWITCH_BAIDU_MRCP_SERVER_HOST=bytedesk-mrcp FREESWITCH_BAIDU_MRCP_SIP_PORT=5060 # --- WebRTC / RTP --- # 本地 Docker 联调时填写: stun:bytedesk-coturn:3478 # 远程线上非 Docker 环境时填写: stun:stun.l.google.com:19302 或留空 FREESWITCH_STUN_SERVER=stun:bytedesk-coturn:3478 FREESWITCH_RTP_START_PORT=16000 FREESWITCH_RTP_END_PORT=16129 # --- Kamailio ACL(中继 IP 白名单)--- FREESWITCH_KAMAILIO_IP=124.220.58.234 # --- Baidu MRCP Server Docker image --- MRCP_PLATFORM=linux/amd64 MRCP_CONTAINER_NAME=mrcp-server-bytedesk MRCP_HOST_PORT=11544 MRCP_RTSP_HOST_PORT=11554 MRCP_SIP_HOST_PORT=25060 MRCP_RTP_HOST_PORT_RANGE=14000-15000 # 路径相对于 deploy/docker/compose/ 目录解析(compose 文件所在目录) MRCP_CONF_DIR=../../freeswitch/mrcp/MRCPServer/mrcp-server/conf MRCP_LOG_DIR=../../freeswitch/mrcp/log MRCP_AUDIO_DIR=../../freeswitch/mrcp/audio # ===================================== # WebRTC / Janus secrets / 音视频客服敏感配置 # 说明:普通 WebRTC 地址和默认参数保留在 compose 文件中; # 这里只放需要外置管理的敏感值,例如 Janus Admin Secret。 # ===================================== COTURN_REALM=bytedesk.local COTURN_USER=bytedesk COTURN_PASS=bytedesk123 # JANUS_ADMIN_SECRET=janusoverlord # ===================================== # Public access URLs / 对外访问地址 # 请将 127.0.0.1 替换为你的服务器IP或域名 # ===================================== BYTEDESK_UPLOAD_URL=http://127.0.0.1:9003 BYTEDESK_KBASE_API_URL=http://127.0.0.1:9003 BYTEDESK_KBASE_HELPCENTER_API_URL=http://127.0.0.1:9003 BYTEDESK_KBASE_BLOG_API_URL=http://127.0.0.1:9003 BYTEDESK_FEATURES_AVATAR_BASE_URL=http://127.0.0.1:9003 # 外网可访问的 MQTT WebSocket 完整地址;Nginx/反向代理部署时按需配置 BYTEDESK_CUSTOM_MQTT_WEBSOCKET_URL= # ===================================== # Bytedesk security / 微语安全配置 # 参考获取License Key: https://www.weiyuai.cn/docs/zh-CN/docs/development/license # ===================================== BYTEDESK_LICENSE_KEY= BYTEDESK_ADMIN_PASSWORD=admin BYTEDESK_ADMIN_VALIDATE_CODE=123456 BYTEDESK_MEMBER_PASSWORD=123456 BYTEDESK_JWT_SECRET_KEY=1dfaf8d004207b628a9a6b859c429f49a9a7ead9fd8161c1e60847aeef06dbd2 # ===================================== # AI provider API keys (optional) / AI 提供商密钥(可选) # ===================================== SPRING_AI_ZHIPUAI_API_KEY= SPRING_AI_DEEPSEEK_API_KEY= SPRING_AI_OPENAI_API_KEY= SPRING_AI_DASHSCOPE_API_KEY= SPRING_AI_DASHSCOPE_AUDIO_SYNTHESIS_API_KEY= SPRING_AI_DASHSCOPE_AUDIO_TRANSCRIPTION_API_KEY= SPRING_AI_SILICONFLOW_API_KEY= SPRING_AI_GITEE_API_KEY= SPRING_AI_TENCENT_API_KEY= SPRING_AI_BAIDU_API_KEY= SPRING_AI_VOLCENGINE_API_KEY= # ===================================== # Bytedesk app datasource / MQ overrides(可选,高级用法) # 说明:不配置时,start.sh 会按启动关键字(如 postgresql / rabbitmq) # 自动注入应用数据源与 MQ 连接并写入 .env.app; # 如需完全接管,请取消注释并在 .env 中显式配置。 # ===================================== # SPRING_DATASOURCE_URL=jdbc:mysql://bytedesk-mysql:3306/bytedesk?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true # SPRING_DATASOURCE_USERNAME=root # SPRING_DATASOURCE_PASSWORD= # SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver # BYTEDESK_MQ_TYPE=artemis # SPRING_ARTEMIS_BROKER_URL=tcp://bytedesk-artemis:61616 # SPRING_RABBITMQ_HOST=bytedesk-rabbitmq # ===================================== # AI provider enable(可选) # 说明:应用默认不启用任何 AI(SPRING_AI_MODEL_CHAT=none,等价旧 noai 场景)。 # 启用方式:在 .env 中配置对应 API Key,并按需取消注释以下模型选择: # ===================================== # SPRING_AI_MODEL_CHAT=zhipuai # SPRING_AI_MODEL_EMBEDDING=zhipuai # SPRING_AI_MODEL_AUDIO_SPEECH=dashscope # SPRING_AI_MODEL_AUDIO_TRANSCRIPTION=dashscope # ===================================== # AI realtime WebSocket overrides(可选) # 说明:TTS/ASR 实时中继默认直连阿里云百炼 DashScope,一般无需配置; # 使用代理网关或私有化部署时取消注释并覆盖。 # ===================================== # BYTEDESK_AI_TTS_REALTIME_WS_URL=wss://dashscope.aliyuncs.com/api-ws/v1/realtime # BYTEDESK_AI_ASR_REALTIME_WS_URL=wss://dashscope.aliyuncs.com/api-ws/v1/inference # ===================================== # MinIO object storage (optional) / MinIO 对象存储(可选) # 启动方式: ./start.sh all minio # 启用应用侧存储: BYTEDESK_MINIO_ENABLED=true(对应 bytedesk.minio.enabled,默认 false 使用本地存储) # ===================================== # Whether the bytedesk app uses MinIO for uploads. 是否启用 MinIO 存储(关闭时回退本地存储)。 BYTEDESK_MINIO_ENABLED=false # MinIO endpoint used by the bytedesk app container; source-run use http://127.0.0.1:19000. 应用容器访问 MinIO 的地址。 BYTEDESK_MINIO_ENDPOINT=http://bytedesk-minio:9000 # MinIO bucket name. 存储桶名称。 BYTEDESK_MINIO_BUCKET_NAME=bytedesk # ===================================== # SearXNG web search (optional) / SearXNG 联网搜索(可选) # 启动方式: ./start.sh middleware searxng 或 ./start.sh all searxng # ===================================== # SearXNG instance secret; change it in production. SearXNG 实例密钥,生产环境请修改。 SEARXNG_SECRET=bytedesk-searxng-secret # Whether the bytedesk app enables SearXNG web search. 是否启用 SearXNG 联网搜索。 BYTEDESK_AI_SEARXNG_ENABLED=false # SearXNG base url used by the bytedesk app container; source-run use http://127.0.0.1:18888. 应用容器访问 SearXNG 的地址,源码本地运行改为 http://127.0.0.1:18888。 BYTEDESK_AI_SEARXNG_BASE_URL=http://searxng-bytedesk:8080 # Search timeout in ms and default max results. 搜索超时(毫秒)与默认返回条数。 BYTEDESK_AI_SEARXNG_TIMEOUT_MS=10000 BYTEDESK_AI_SEARXNG_MAX_RESULTS=5 # ===================================== # Neo4j knowledge graph (optional) / Neo4j 知识图谱(可选) # 启动方式: ./start.sh middleware neo4j 或 ./start.sh all neo4j # ===================================== # Neo4j initial password, takes effect on first start with an empty /data volume only; change it in production. Neo4j 初始密码,仅空数据卷首次启动生效,生产环境务必修改。 NEO4J_PASSWORD=bytedesk-neo4j # Whether the bytedesk app enables Neo4j. 是否启用应用侧 Neo4j 连接。 BYTEDESK_AI_NEO4J_ENABLED=false # Bolt uri used by the bytedesk app container; source-run use bolt://127.0.0.1:17687. 应用容器访问 Neo4j 的地址,源码本地运行改为 bolt://127.0.0.1:17687。 BYTEDESK_AI_NEO4J_URI=bolt://neo4j-bytedesk:7687 # Neo4j credentials and database. 连接用户名/密码与数据库。 BYTEDESK_AI_NEO4J_USERNAME=neo4j BYTEDESK_AI_NEO4J_PASSWORD=bytedesk-neo4j BYTEDESK_AI_NEO4J_DATABASE=neo4j # ===================================== # Optional local ASR/TTS service / 可选本地 ASR/TTS 服务 # ===================================== FUNASR_DEVICE=cpu FUNASR_MODEL=iic/SenseVoiceSmall FUNASR_VAD_MODEL=fsmn-vad FUNASR_MAX_URL_FILE_SIZE=52428800 FUNASR_PRELOAD=false FUNASR_DISABLE_UPDATE=true FUNASR_TRUST_REMOTE_CODE=false TTS_PROVIDER=voxcpm VOXCPM_MODEL=openbmb/VoxCPM2 VOXCPM_SOURCE=modelscope VOXCPM_MODELSCOPE_MODEL=OpenBMB/VoxCPM2 VOXCPM_DEVICE=cpu VOXCPM_LOAD_DENOISER=false VOXCPM_PRELOAD=false QWEN_TTS_MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice QWEN_TTS_SOURCE=modelscope QWEN_TTS_MODELSCOPE_MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice QWEN_TTS_DEVICE_MAP=cpu QWEN_TTS_LANGUAGE=Auto QWEN_TTS_SPEAKER=Vivian QWEN_TTS_PRELOAD=false # ===================================== # Optional third-party config / 可选三方配置 # ===================================== # Aliyun AccessKey for SMS/OSS / 阿里云访问密钥(短信与 OSS 共用) # 获取 https://ram.console.aliyun.com/profile/access-keys ALIYUN_ACCESS_KEY_ID= ALIYUN_ACCESS_KEY_SECRET= # Aliyun SMS sign/template / 阿里云短信签名与模板Code # 签名 https://dysms.console.aliyun.com/domestic/text/sign # 模板 https://dysms.console.aliyun.com/domestic/text/template ALIYUN_SMS_SIGNNAME=xxx ALIYUN_SMS_TEMPLATECODE=SMS_xxx # BYTEDESK_TRANSLATE_BAIDU_APPID= BYTEDESK_TRANSLATE_BAIDU_KEY= # Optional: provide this only when using ENC(...) values with Jasypt JASYPT_ENCRYPTOR_PASSWORD=