Files
crmdesk/deploy/docker/.env.example
T
2026-09-19 16:35:35 +08:00

294 lines
12 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =====================================
# 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(可选)
# 说明:应用默认不启用任何 AISPRING_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=