294 lines
12 KiB
Bash
294 lines
12 KiB
Bash
# =====================================
|
||
# 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=
|