576 lines
34 KiB
YAML
576 lines
34 KiB
YAML
# Bytedesk 应用服务(bytedesk 镜像)
|
||
# 启动方式:./start.sh all(默认)或 ./start.sh bytedesk ...,也可单独(在 deploy/docker 目录):docker compose --env-file .env -f compose/compose-bytedesk.yaml up -d
|
||
# 说明:
|
||
# - 数据库/MQ 连接参数默认为 mysql + artemis;使用其他组合时由 start.sh 按关键字自动注入
|
||
# (写入 .env.app),或在 .env / 环境变量中显式配置 SPRING_DATASOURCE_* / BYTEDESK_MQ_TYPE 等
|
||
# - 本文件不声明对中间件的 depends_on,启动顺序由 start.sh 保证(先中间件后应用)
|
||
services:
|
||
bytedesk:
|
||
# image: bytedesk/bytedesk:latest # hub.docker.com enterprise
|
||
# image: bytedesk/bytedesk-ce:latest # hub.docker.com community
|
||
image: registry.cn-hangzhou.aliyuncs.com/bytedesk/bytedesk:latest # aliyun enterprise
|
||
# mage: registry.cn-hangzhou.aliyuncs.com/bytedesk/bytedesk-ce:latest # aliyun community
|
||
container_name: bytedesk
|
||
restart: unless-stopped
|
||
environment:
|
||
TZ: Asia/Shanghai
|
||
SERVER_PORT: 9003
|
||
BYTEDESK_DEBUG: "false"
|
||
BYTEDESK_LICENSE_KEY: ${BYTEDESK_LICENSE_KEY:-}
|
||
# ===============================
|
||
# Database config(默认 MySQL;切换数据库由 start.sh 注入或 .env 显式配置)
|
||
# ===============================
|
||
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL:-jdbc:mysql://bytedesk-mysql:${MYSQL_PORT:-3306}/${MYSQL_DATABASE:-bytedesk}?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true}
|
||
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-${MYSQL_ROOT_USER:-root}}
|
||
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-${MYSQL_ROOT_PASSWORD}}
|
||
# ===============================
|
||
# Message queue config(默认 Artemis;切换 MQ 由 start.sh 注入或 .env 显式配置)
|
||
# ===============================
|
||
BYTEDESK_MQ_TYPE: ${BYTEDESK_MQ_TYPE:-artemis}
|
||
BYTEDESK_MQ_RABBITMQ_ENABLED: ${BYTEDESK_MQ_RABBITMQ_ENABLED:-false}
|
||
SPRING_ARTEMIS_MODE: ${SPRING_ARTEMIS_MODE:-embedded}
|
||
SPRING_ARTEMIS_BROKER_URL: ${SPRING_ARTEMIS_BROKER_URL:-tcp://bytedesk-artemis:61616}
|
||
SPRING_ARTEMIS_USER: ${SPRING_ARTEMIS_USER:-${ARTEMIS_USER}}
|
||
SPRING_ARTEMIS_PASSWORD: ${SPRING_ARTEMIS_PASSWORD:-${ARTEMIS_PASSWORD}}
|
||
SPRING_JMS_CACHE_ENABLED: ${SPRING_JMS_CACHE_ENABLED:-true}
|
||
SPRING_RABBITMQ_HOST: ${SPRING_RABBITMQ_HOST:-bytedesk-rabbitmq}
|
||
SPRING_RABBITMQ_PORT: ${SPRING_RABBITMQ_PORT:-5672}
|
||
SPRING_RABBITMQ_USERNAME: ${SPRING_RABBITMQ_USERNAME:-${RABBITMQ_DEFAULT_USER}}
|
||
SPRING_RABBITMQ_PASSWORD: ${SPRING_RABBITMQ_PASSWORD:-${RABBITMQ_DEFAULT_PASS}}
|
||
SPRING_RABBITMQ_VIRTUAL_HOST: ${SPRING_RABBITMQ_VIRTUAL_HOST:-/}
|
||
SPRING_RABBITMQ_CONNECTION_TIMEOUT: ${SPRING_RABBITMQ_CONNECTION_TIMEOUT:-5000}
|
||
# ===============================
|
||
# Custom config
|
||
# Enable this first; branding fields below only take effect when custom config is enabled. 启用后,下面的品牌配置才会生效。
|
||
# ===============================
|
||
BYTEDESK_CUSTOM_ENABLED: "false"
|
||
# Leave empty to use the default product name. 留空则使用默认名称。
|
||
BYTEDESK_CUSTOM_NAME:
|
||
# Leave empty to use the default logo. 留空则使用默认 logo。
|
||
BYTEDESK_CUSTOM_LOGO:
|
||
# Leave empty to use the default description: Chat As A Service. 留空则使用默认描述。
|
||
BYTEDESK_CUSTOM_DESCRIPTION:
|
||
# Leave empty to fall back to BYTEDESK_CUSTOM_LOGO. 留空则回退使用 BYTEDESK_CUSTOM_LOGO。
|
||
# BYTEDESK_CUSTOM_FAVICON:
|
||
BYTEDESK_CUSTOM_SHOW_RIGHT_CORNER_CHAT: "false"
|
||
# Floating chat placement: bottom-right / bottom-left. Only applies when the corner chat is enabled. 浮窗位置,仅在启用右下角对话框时生效。
|
||
# BYTEDESK_CUSTOM_RIGHT_CORNER_CHAT_PLACEMENT: bottom-left
|
||
# BYTEDESK_CUSTOM_SHOW_DEMO: "false"
|
||
BYTEDESK_CUSTOM_PRIVACY_POLICY_URL: https://www.weiyuai.cn/privacy.html
|
||
BYTEDESK_CUSTOM_TERMS_OF_SERVICE_URL: https://www.weiyuai.cn/terms.html
|
||
# Public MQTT WebSocket URL, typically used behind nginx or another reverse proxy. 外网可访问的 MQTT WebSocket 完整地址。
|
||
BYTEDESK_CUSTOM_MQTT_WEBSOCKET_URL: ${BYTEDESK_CUSTOM_MQTT_WEBSOCKET_URL:-}
|
||
# Public upload API base URL without the upload path, useful for multi-node or reverse-proxy upload setups. 外网上传 API 基础地址,不带上传路径。
|
||
# BYTEDESK_CUSTOM_UPLOAD_API_URL: https://upload.example.com
|
||
# Public visitor ticket HTML base URL without trailing slash, used in ticket notification emails. 访客工单页面基础地址,不带末尾斜杠。
|
||
# BYTEDESK_CUSTOM_TICKET_HTML_URL: https://support.example.com/ticket
|
||
# Default WeChat Mini Program goods detail route. 微信小程序商品详情默认跳转路径。
|
||
BYTEDESK_CUSTOM_WECHAT_MINI_PROGRAM_GOODS_DETAIL_PATH: /pages/goods/detail/index
|
||
# Default WeChat Mini Program order detail route. 微信小程序订单详情默认跳转路径。
|
||
BYTEDESK_CUSTOM_WECHAT_MINI_PROGRAM_ORDER_DETAIL_PATH: /pages/order/detail/index
|
||
BYTEDESK_CUSTOM_LOGIN_USERNAME_ENABLE: "true"
|
||
BYTEDESK_CUSTOM_LOGIN_2FA_ENABLE: "false"
|
||
BYTEDESK_CUSTOM_LOGIN_MAX_RETRY_COUNT: 3
|
||
# Lock duration in minutes after reaching max retry count; set to 0 to disable locking. Must match custom.loginMaxRetryLockTime binding. 超过最大重试次数后的锁定时长,需与 loginMaxRetryLockTime 字段绑定一致。
|
||
BYTEDESK_CUSTOM_LOGIN_MAX_RETRY_LOCK_TIME: 10
|
||
BYTEDESK_CUSTOM_LOGIN_MOBILE_ENABLE: "true"
|
||
BYTEDESK_CUSTOM_LOGIN_SCAN_ENABLE: "true"
|
||
BYTEDESK_CUSTOM_LOGIN_GITHUB_ENABLE: "false"
|
||
BYTEDESK_CUSTOM_DOC_URL_SHOW: "true"
|
||
BYTEDESK_CUSTOM_DOC_URL: https://www.weiyuai.cn/docs/zh-CN/
|
||
# Show HelpDocButton in admin console; hidden unless explicitly enabled. 是否显示 admin 帮助文档按钮,默认不显示,明确开启才显示。
|
||
BYTEDESK_CUSTOM_HELP_DOC_BUTTON_ENABLED: "false"
|
||
# Login page language: zh-CN / en-US / zh-TW. 登录页语言。
|
||
BYTEDESK_CUSTOM_LANG: zh-CN
|
||
# Custom default LLM prompt; leave empty to fall back to the built-in RobotConsts default. 自定义默认 LLM Prompt,留空时回退到内置默认值。
|
||
BYTEDESK_CUSTOM_DEFAULT_LLM_PROMPT:
|
||
# Show register button on login page; display-only toggle, does not block the register API. 是否显示登录页注册按钮,仅控制显隐。
|
||
BYTEDESK_CUSTOM_SHOW_REGISTER_BUTTON: "false"
|
||
# Auto-register users when they log in with mobile/email and no account exists yet. 手机号或邮箱登录时若用户不存在则自动注册。
|
||
BYTEDESK_CUSTOM_AUTO_REGISTER_ON_LOGIN: "true"
|
||
BYTEDESK_CUSTOM_FORCE_VALIDATE_MOBILE: "true"
|
||
BYTEDESK_CUSTOM_FORCE_VALIDATE_EMAIL: "true"
|
||
# Force visitor authentication; default is false. 是否强制访客身份认证,默认 false。
|
||
# BYTEDESK_CUSTOM_FORCE_VISITOR_AUTH: "false"
|
||
# ===============================
|
||
# Admin config
|
||
# ===============================
|
||
BYTEDESK_ADMIN_EMAIL: admin@email.com
|
||
BYTEDESK_ADMIN_PASSWORD: ${BYTEDESK_ADMIN_PASSWORD}
|
||
BYTEDESK_ADMIN_NICKNAME: SuperAdmin
|
||
BYTEDESK_ADMIN_MOBILE: 13345678000
|
||
BYTEDESK_ADMIN_MOBILE_WHITELIST: 18888888000,18888888001,18888888002,18888888003,18888888004,18888888005
|
||
BYTEDESK_ADMIN_EMAIL_WHITELIST: 100@email.com,101@email.com,102@email.com,103@email.com,104@email.com,105@email.com
|
||
# Verification code used for whitelisted mobile numbers/emails; non-whitelisted accounts get a random 6-digit code. 白名单使用固定验证码,其他账号使用随机 6 位验证码。
|
||
BYTEDESK_ADMIN_VALIDATE_CODE: ${BYTEDESK_ADMIN_VALIDATE_CODE}
|
||
# ===============================
|
||
# Member config
|
||
# ===============================
|
||
BYTEDESK_MEMBER_PASSWORD: ${BYTEDESK_MEMBER_PASSWORD}
|
||
# ===============================
|
||
# Performance Testing config
|
||
# 生产/客户部署必须保持 false:testing.enabled + disable-captcha 同为 true 时后端会跳过验证码校验(登录页输错验证码也能通过)
|
||
# 仅在使用 jmeter 压测时可临时改为 true
|
||
# ===============================
|
||
BYTEDESK_TESTING_ENABLED: "false"
|
||
BYTEDESK_TESTING_DISABLE_CAPTCHA: "false"
|
||
BYTEDESK_TESTING_DISABLE_IP_FILTER: "false"
|
||
# IP whitelist for performance testing, comma-separated. 性能测试白名单 IP,逗号分隔。
|
||
BYTEDESK_TESTING_IP_WHITELIST: 127.0.0.1,127.0.0.2
|
||
# ===============================
|
||
# Organization config
|
||
# ===============================
|
||
BYTEDESK_ORGANIZATION_NAME: MyCompany
|
||
BYTEDESK_ORGANIZATION_CODE: bytedesk
|
||
BYTEDESK_ORGANIZATION_ALLOW_CREATE_ORG: "true"
|
||
BYTEDESK_ORGANIZATION_ALLOW_JOIN_ORG: "true"
|
||
BYTEDESK_ORGANIZATION_DEFAULT_VIP_LEVEL: 0
|
||
BYTEDESK_ORGANIZATION_DEFAULT_VIP_DAYS: 365
|
||
BYTEDESK_ORGANIZATION_DEFAULT_MAX_MEMBERS: 20
|
||
BYTEDESK_ORGANIZATION_DEFAULT_MAX_AGENTS: 20
|
||
BYTEDESK_ORGANIZATION_DEFAULT_MAX_WORKGROUPS: 20
|
||
# ===============================
|
||
# service config
|
||
# ===============================
|
||
BYTEDESK_SERVICE_AGENT_SEAT_ENABLED: "false"
|
||
# ===============================
|
||
# IP location config
|
||
# Put classpath database files under starter/src/main/resources/ipdb/. classpath 文件建议放在 starter/src/main/resources/ipdb/。
|
||
# When fallback=true, the app automatically switches to another available provider if the default one is unavailable. fallback=true 时会自动回退到其他可用 provider。
|
||
# ===============================
|
||
BYTEDESK_IP_PROVIDER: ip2region
|
||
BYTEDESK_IP_FALLBACK_ENABLED: "true"
|
||
BYTEDESK_IP_IP2REGION_DB_FILE: ipdb/ip2region.xdb
|
||
BYTEDESK_IP_MAXMIND_CITY_DB_FILE: ipdb/GeoLite2-City.mmdb
|
||
BYTEDESK_IP_MAXMIND_LOCALES: zh-CN,en
|
||
# ===============================
|
||
# Features / JWT / Cache / Redis
|
||
# ===============================
|
||
BYTEDESK_FEATURES_JAVA_AI: "true"
|
||
BYTEDESK_FEATURES_EMAIL_TYPE: javamail
|
||
# Base URL for avatar access; change this to a publicly reachable address in real deployments. 头像访问基础地址,请改成对外可访问地址。
|
||
BYTEDESK_FEATURES_AVATAR_BASE_URL: ${BYTEDESK_FEATURES_AVATAR_BASE_URL:-http://127.0.0.1:9003}
|
||
BYTEDESK_JWT_SECRET_KEY: ${BYTEDESK_JWT_SECRET_KEY}
|
||
# 30 days in milliseconds. 30 天,单位毫秒。
|
||
BYTEDESK_JWT_EXPIRATION: 2592000000
|
||
# 60 days in milliseconds. 60 天,单位毫秒。
|
||
BYTEDESK_JWT_REFRESH_TOKEN_EXPIRATION: 5184000000
|
||
SPRING_JPA_HIBERNATE_DDL_AUTO: update
|
||
# Can be turned off during initial installation; recommended to turn on during upgrades to automatically run database migration scripts. 默认初始安装时可关闭,升级时建议开启以自动执行数据库迁移脚本。
|
||
# SPRING_LIQUIBASE_ENABLED: "true"
|
||
# SPRING_LIQUIBASE_CHANGE_LOG: classpath:db/changelog/master.xml
|
||
#
|
||
SPRING_DATA_REDIS_DATABASE: 0
|
||
SPRING_DATA_REDIS_HOST: redis-bytedesk
|
||
SPRING_DATA_REDIS_PORT: 6379
|
||
SPRING_DATA_REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||
SPRING_DATA_REDIS_TIMEOUT: 10000
|
||
SPRING_DATA_REDIS_REPOSITORIES_ENABLED: "false"
|
||
#
|
||
BYTEDESK_CACHE_LEVEL: 2
|
||
BYTEDESK_CACHE_PREFIX: bytedeskim
|
||
BYTEDESK_CACHE_REDIS_STREAM_KEY: bytedeskim:stream
|
||
SPRING_CACHE_TYPE: redis
|
||
SPRING_CACHE_REDIS_TIME_TO_LIVE: 1800000
|
||
SPRING_CACHE_REDIS_CACHE_NULL_VALUES: "false"
|
||
SPRING_CACHE_REDIS_USE_KEY_PREFIX: "true"
|
||
SPRING_CACHE_REDIS_KEY_PREFIX: "bytedeskim:cache:"
|
||
#
|
||
BYTEDESK_AI_ASR_TTSASR_ENABLED: "true"
|
||
BYTEDESK_AI_ASR_TTSASR_BASE_URL: http://ttsasr-bytedesk:8000
|
||
BYTEDESK_AI_ASR_TTSASR_MODEL: funasr
|
||
BYTEDESK_AI_ASR_TTSASR_LANGUAGE: auto
|
||
# ===============================
|
||
# Upload config
|
||
# Final file URL = BYTEDESK_UPLOAD_URL + '/' + last segment of BYTEDESK_UPLOAD_DIR + generated relative path. 完整文件访问地址由上传 URL、目录最后一级和系统生成路径组成。
|
||
# ===============================
|
||
BYTEDESK_UPLOAD_TYPE: local
|
||
BYTEDESK_UPLOAD_DIR: /app/uploads
|
||
BYTEDESK_UPLOAD_URL: ${BYTEDESK_UPLOAD_URL:-http://127.0.0.1:9003}
|
||
# Maximum file size in bytes; default is 10MB. 最大文件大小,单位字节。
|
||
BYTEDESK_UPLOAD_SECURITY_MAX_FILE_SIZE: 10485760
|
||
BYTEDESK_UPLOAD_SECURITY_ENABLE_IMAGE_VALIDATION: "true"
|
||
BYTEDESK_UPLOAD_SECURITY_ENABLE_FILE_NAME_FILTER: "true"
|
||
BYTEDESK_UPLOAD_SECURITY_FORCE_RENAME: "true"
|
||
BYTEDESK_UPLOAD_SECURITY_MAX_FILE_NAME_LENGTH: 255
|
||
BYTEDESK_UPLOAD_SECURITY_ENABLE_UPLOAD_LOG: "true"
|
||
BYTEDESK_UPLOAD_SECURITY_ENABLE_VIRUS_SCAN: "false"
|
||
# ===============================
|
||
# MinIO object storage config
|
||
# Keep this disabled when using local storage only. 仅使用本地存储时保持关闭。
|
||
# 需先启动 MinIO:./start.sh all minio,再在 .env 中设置 BYTEDESK_MINIO_ENABLED=true
|
||
# ===============================
|
||
BYTEDESK_MINIO_ENABLED: ${BYTEDESK_MINIO_ENABLED:-false}
|
||
BYTEDESK_MINIO_ENDPOINT: ${BYTEDESK_MINIO_ENDPOINT:-http://bytedesk-minio:9000}
|
||
BYTEDESK_MINIO_ACCESS_KEY: ${MINIO_ROOT_USER}
|
||
BYTEDESK_MINIO_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
|
||
BYTEDESK_MINIO_BUCKET_NAME: ${BYTEDESK_MINIO_BUCKET_NAME:-bytedesk}
|
||
BYTEDESK_MINIO_REGION: us-east-1
|
||
BYTEDESK_MINIO_SECURE: false
|
||
# ===============================
|
||
# File preview config(Office 转 PDF,企业版功能,社区版镜像不含此功能)
|
||
# 官方镜像已精简(不含 LibreOffice)。Docker 部署开启预览:./start.sh gotenberg 启动转换 sidecar,
|
||
# 并在 .env 设置 BYTEDESK_PREVIEW_CONVERT_ENABLED=true + BYTEDESK_PREVIEW_CONVERT_MODE=remote
|
||
# 自建全量镜像(INSTALL_LIBREOFFICE=true)保持 MODE=local 即可;直跑 jar 在宿主机安装 LibreOffice(docs: development/filepreview)
|
||
# ===============================
|
||
# 是否启用 Office 转 PDF 预览(默认关闭,未启用时前端降级提示下载)
|
||
BYTEDESK_PREVIEW_CONVERT_ENABLED: ${BYTEDESK_PREVIEW_CONVERT_ENABLED:-false}
|
||
# 转换模式:local(默认,镜像内/宿主机 LibreOffice)/ remote(gotenberg sidecar,精简镜像推荐)
|
||
BYTEDESK_PREVIEW_CONVERT_MODE: ${BYTEDESK_PREVIEW_CONVERT_MODE:-local}
|
||
# remote 模式:gotenberg 服务地址(仅 MODE=remote 时生效,compose 内网默认 http://bytedesk-gotenberg:3000)
|
||
BYTEDESK_PREVIEW_CONVERT_REMOTE_URL: ${BYTEDESK_PREVIEW_CONVERT_REMOTE_URL:-http://bytedesk-gotenberg:3000}
|
||
# remote 模式:单次转换 HTTP 超时(毫秒),默认对齐 task-execution-timeout 3 分钟
|
||
BYTEDESK_PREVIEW_CONVERT_REMOTE_TIMEOUT: "180000"
|
||
# LibreOffice 安装目录,容器内留空自动探测(仅 local 模式)
|
||
# BYTEDESK_PREVIEW_CONVERT_OFFICE_HOME: /usr/lib/libreoffice
|
||
# LibreOffice 进程端口,多个逗号分隔(仅 local 模式)
|
||
BYTEDESK_PREVIEW_CONVERT_PORTS: "2001"
|
||
# 单次转换任务超时(毫秒),默认 3 分钟(仅 local 模式)
|
||
BYTEDESK_PREVIEW_CONVERT_TASK_EXECUTION_TIMEOUT: "180000"
|
||
# LibreOffice 进程存活超时(毫秒),默认 5 分钟(仅 local 模式)
|
||
BYTEDESK_PREVIEW_CONVERT_PROCESS_TIMEOUT: "300000"
|
||
# 每个 LibreOffice 进程最大任务数,超过后重启进程(仅 local 模式)
|
||
BYTEDESK_PREVIEW_CONVERT_MAX_TASKS_PER_PROCESS: "20"
|
||
# 待转换文件大小上限(MB),超过则拒绝转换
|
||
BYTEDESK_PREVIEW_CONVERT_MAX_FILE_SIZE_MB: "100"
|
||
# 是否允许从对象存储 URL(MinIO 公读直链)下载源文件用于转换,默认 true
|
||
BYTEDESK_PREVIEW_CONVERT_REMOTE_SOURCE_ENABLED: "true"
|
||
# 远程源文件主机白名单(host 或 host:port,多个逗号分隔),默认仅允许 MinIO endpoint;如需转换 OSS/COS 直链可在此追加
|
||
# BYTEDESK_PREVIEW_CONVERT_ALLOWED_REMOTE_HOSTS: oss.example.com,cos.example.com
|
||
# ===============================
|
||
# Knowledge base config
|
||
# Helpcenter and blog can be configured independently with their own theme, static output path, and public API URL. helpcenter 和 blog 可分别配置主题、目录和 API 地址。
|
||
# ===============================
|
||
BYTEDESK_KBASE_HELPCENTER_THEME: default
|
||
BYTEDESK_KBASE_HTML_PATH: /app/helpcenter
|
||
BYTEDESK_KBASE_HELPCENTER_API_URL: ${BYTEDESK_KBASE_HELPCENTER_API_URL:-http://127.0.0.1:9003}
|
||
BYTEDESK_KBASE_BLOG_THEME: default
|
||
BYTEDESK_KBASE_BLOG_HTML_PATH: /app/blog
|
||
BYTEDESK_KBASE_BLOG_API_URL: ${BYTEDESK_KBASE_BLOG_API_URL:-http://127.0.0.1:9003}
|
||
# ===============================
|
||
# Socket config
|
||
# WebSocket service for realtime messaging. 实时消息 WebSocket 服务配置。
|
||
# ===============================
|
||
BYTEDESK_SOCKET_HOST: 0.0.0.0
|
||
BYTEDESK_SOCKET_WEBSOCKET_PORT: 9885
|
||
BYTEDESK_SOCKET_LEAK_DETECTOR_LEVEL: SIMPLE
|
||
BYTEDESK_SOCKET_PARENT_EVENT_LOOP_GROUP_THREAD_COUNT: 1
|
||
BYTEDESK_SOCKET_CHILD_EVENT_LOOP_GROUP_THREAD_COUNT: 8
|
||
BYTEDESK_SOCKET_MAX_PAYLOAD_SIZE: 10240
|
||
# ===============================
|
||
# Call / FreeSWITCH config
|
||
# Only required when voice/call integration is enabled. 仅在启用语音/呼叫集成时需要配置。
|
||
# ===============================
|
||
BYTEDESK_CALL_FREESWITCH_ENABLED: "false"
|
||
BYTEDESK_CALL_FREESWITCH_SERVER: 127.0.0.1
|
||
BYTEDESK_CALL_FREESWITCH_ESL_PORT: 8021
|
||
BYTEDESK_CALL_FREESWITCH_ESL_PASSWORD: ${FREESWITCH_ESL_PASSWORD}
|
||
BYTEDESK_CALL_FREESWITCH_SIP_PORT: 5060
|
||
BYTEDESK_CALL_FREESWITCH_WEBRTC_PORT: 7443
|
||
BYTEDESK_CALL_FREESWITCH_WS_PORT: 5066
|
||
BYTEDESK_CALL_FREESWITCH_CALL_TIMEOUT: 120
|
||
BYTEDESK_CALL_FREESWITCH_DOMAIN: example.com
|
||
# AI 会话并发守护(每个组织最大并发 AI 语音会话数,超限返回忙线)
|
||
BYTEDESK_CALL_AI_SESSION_MAX_CONCURRENCY_PER_ORG: 10
|
||
# 僵死会话 TTL(分钟),超时未释放的会话会被定时清理
|
||
BYTEDESK_CALL_AI_SESSION_STALE_TTL_MINUTES: 30
|
||
# 僵死会话清理间隔(毫秒)
|
||
BYTEDESK_CALL_AI_SESSION_SWEEP_INTERVAL_MS: 60000
|
||
# 分机导入来源:esl 或 directory。默认优先通过 ESL list_users 读取 FreeSWITCH 目录分机。
|
||
BYTEDESK_CALL_FREESWITCH_EXTENSION_IMPORT_SOURCE: esl
|
||
# 当 ESL list_users 不可用或返回空时,是否回退扫描应用容器内挂载的 FreeSWITCH conf/directory。
|
||
BYTEDESK_CALL_FREESWITCH_EXTENSION_IMPORT_DIRECTORY_FALLBACK_ENABLED: "false"
|
||
# AI hotline 动态入口路由同步:为已发布的 AI 分机自动创建/回填 CallRoute。
|
||
BYTEDESK_CALL_AI_HOTLINE_ROUTE_SYNC_ENABLED: "true"
|
||
# 调试开关:开启后仅记录将要同步的路由,不真正写入数据库。
|
||
BYTEDESK_CALL_AI_HOTLINE_ROUTE_SYNC_DRY_RUN: "false"
|
||
# xml_curl 功能开关:dialplan/directory/configuration/phrases 后备处理
|
||
BYTEDESK_CALL_FREESWITCH_XMLCURL_DIALPLAN_ENABLED: "true"
|
||
BYTEDESK_CALL_FREESWITCH_XMLCURL_DIRECTORY_ENABLED: "false"
|
||
BYTEDESK_CALL_FREESWITCH_XMLCURL_CONFIGURATION_ENABLED: "false"
|
||
BYTEDESK_CALL_FREESWITCH_XMLCURL_PHRASES_ENABLED: "false"
|
||
# xml_curl directory 用户列表:user1@domain:password,...
|
||
BYTEDESK_CALL_FREESWITCH_XMLCURL_DIRECTORY_USERS: "1000@default:1234"
|
||
# xml_curl configuration 白名单,逗号分隔(支持 100-200 范围写法)
|
||
BYTEDESK_CALL_FREESWITCH_XMLCURL_CONFIG_WHITELIST:
|
||
# 目录回退时扫描的 FreeSWITCH conf 根目录;需与下方 volumes 中的宿主机挂载保持一致。
|
||
BYTEDESK_CALL_FREESWITCH_CONF_DIR: /app/freeswitch/conf
|
||
#
|
||
BYTEDESK_CALL_MRCP_ENABLED: "false"
|
||
BYTEDESK_CALL_MRCP_PROFILE: java-mrcp
|
||
BYTEDESK_CALL_MRCP_HOST: 0.0.0.0
|
||
BYTEDESK_CALL_MRCP_PORT: 1544
|
||
BYTEDESK_CALL_MRCP_TTS_PROVIDER: dashscope
|
||
BYTEDESK_CALL_MRCP_ASR_PROVIDER: dashscope
|
||
BYTEDESK_CALL_MRCP_ASR_MODE: recording-file
|
||
BYTEDESK_CALL_MRCP_TTS_VOICE: longanhuan
|
||
# ===============================
|
||
# WebRTC / Janus config
|
||
# Use service names on the Docker network instead of 127.0.0.1. 容器内请使用 Docker 网络服务名,而不是 127.0.0.1。
|
||
# Typically enabled with: ./start.sh webrtc ...(coturn + janus)
|
||
# ===============================
|
||
BYTEDESK_WEBRTC_JANUS_ENABLED: "true"
|
||
BYTEDESK_WEBRTC_JANUS_WS_URL: ws://bytedesk-janus:8188/janus
|
||
BYTEDESK_WEBRTC_JANUS_LOG_ENABLED: "true"
|
||
BYTEDESK_WEBRTC_JANUS_OPERATION_TIMEOUT_MS: 10000
|
||
BYTEDESK_WEBRTC_JANUS_HEALTH_TIMEOUT_MS: 3000
|
||
BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_0_URLS: stun:bytedesk-coturn:3478
|
||
BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_1_URLS: turn:bytedesk-coturn:3478?transport=udp
|
||
BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_1_USERNAME: ${COTURN_USER:-bytedesk}
|
||
BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_1_CREDENTIAL: ${COTURN_PASS:-bytedesk123}
|
||
# Optional TLS/TCP TURN relay. 可选的 TLS/TCP TURN 中继。
|
||
# BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_2_URLS: turn:bytedesk-coturn:5349?transport=tcp
|
||
# BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_2_USERNAME: ${COTURN_USER:-bytedesk}
|
||
# BYTEDESK_WEBRTC_JANUS_ICE_SERVERS_2_CREDENTIAL: ${COTURN_PASS:-bytedesk123}
|
||
BYTEDESK_WEBRTC_JANUS_ADMIN_ENABLED: "true"
|
||
BYTEDESK_WEBRTC_JANUS_ADMIN_WS_URL: ws://bytedesk-janus:7188/janus
|
||
BYTEDESK_WEBRTC_JANUS_ADMIN_HTTP_URL: http://bytedesk-janus:8088/janus
|
||
BYTEDESK_WEBRTC_JANUS_ADMIN_SECRET: ${JANUS_ADMIN_SECRET:-janusoverlord}
|
||
BYTEDESK_WEBRTC_RECORD_DIR: /app/uploads/webrtc-video-recordings
|
||
BYTEDESK_WEBRTC_JANUS_VIDEO_ROOM_DEFAULT_PUBLISHERS: 6
|
||
BYTEDESK_WEBRTC_JANUS_VIDEO_ROOM_DEFAULT_PERMANENT: "false"
|
||
BYTEDESK_WEBRTC_JANUS_AUDIO_BRIDGE_DEFAULT_PERMANENT: "false"
|
||
# ===============================
|
||
# Management endpoints
|
||
# Current settings disable actuator web exposure by default and keep only the business port active. 当前配置默认关闭 actuator Web 暴露,仅保留业务端口。
|
||
# ===============================
|
||
MANAGEMENT_ENDPOINTS_ENABLED_BY_DEFAULT: "false"
|
||
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: ''
|
||
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_EXCLUDE: '*'
|
||
MANAGEMENT_ENDPOINT_HEALTH_ENABLED: "false"
|
||
MANAGEMENT_ENDPOINT_INFO_ENABLED: "false"
|
||
MANAGEMENT_SERVER_PORT: -1
|
||
MANAGEMENT_ENDPOINTS_WEB_BASE_PATH: '/management'
|
||
SPRING_SECURITY_BASIC_ENABLED: "true"
|
||
MANAGEMENT_TRACING_ENABLED: "false"
|
||
MANAGEMENT_ZIPKIN_TRACING_ENABLED: "false"
|
||
MANAGEMENT_ZIPKIN_TRACING_ENDPOINT: http://127.0.0.1:19411/api/v2/spans
|
||
MANAGEMENT_TRACING_SAMPLING_PROBABILITY: 0.0
|
||
# OpenTelemetry / OTLP 默认关闭:starter-opentelemetry 附带的 OtlpMeterRegistry 默认向
|
||
# http://localhost:4318/v1/metrics 推指标,未部署 OTLP 后端时会刷连接拒绝告警;
|
||
# 需要时设为 "true" 开启(OTel 模式还需 SPRING_AUTOCONFIGURE_EXCLUDE 排除 Brave,见 docs)
|
||
MANAGEMENT_OPENTELEMETRY_ENABLED: "false"
|
||
MANAGEMENT_OTLP_METRICS_EXPORT_ENABLED: "false"
|
||
# ===============================
|
||
# Spring Boot Admin Client (bytedesk-monitor)
|
||
# Uncomment to register this instance with a monitor server. 取消注释以注册到监控服务端。
|
||
# ===============================
|
||
# SPRING_BOOT_ADMIN_CLIENT_URL: http://bytedesk-monitor:9103
|
||
# SPRING_BOOT_ADMIN_CLIENT_USERNAME: admin
|
||
# SPRING_BOOT_ADMIN_CLIENT_PASSWORD: admin
|
||
# SPRING_BOOT_ADMIN_CLIENT_INSTANCE_NAME: bytedesk-starter
|
||
# SPRING_BOOT_ADMIN_CLIENT_INSTANCE_SERVICE_BASE_URL: http://127.0.0.1:9003
|
||
# ===============================
|
||
# AI provider and model selection
|
||
# Select default providers first, then configure API keys and model options for the providers you actually use. 先选择默认 provider,再为实际使用的 provider 配置密钥和模型参数。
|
||
# ===============================
|
||
SPRING_AI_MODEL_CHAT: none
|
||
SPRING_AI_MODEL_EMBEDDING: none
|
||
SPRING_AI_MODEL_VISION: none
|
||
SPRING_AI_MODEL_AUDIO: none
|
||
SPRING_AI_MODEL_AUDIO_SPEECH: none
|
||
SPRING_AI_MODEL_AUDIO_TRANSCRIPTION: none
|
||
SPRING_AI_MODEL_RERANK: none
|
||
#
|
||
SPRING_AI_OLLAMA_BASE_URL: http://host.docker.internal:11434
|
||
SPRING_AI_OLLAMA_CHAT_ENABLED: "false"
|
||
SPRING_AI_OLLAMA_CHAT_OPTIONS_MODEL: qwen3:0.6b
|
||
SPRING_AI_OLLAMA_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
SPRING_AI_OLLAMA_EMBEDDING_ENABLED: "false"
|
||
SPRING_AI_OLLAMA_EMBEDDING_OPTIONS_MODEL: bge-m3:latest
|
||
SPRING_AI_OLLAMA_INIT_PULL_MODEL_STRATEGY: when_missing
|
||
SPRING_AI_OLLAMA_EMBEDDING_OPTIONS_MODEL_RERANK: bge-reranker-v2-m3:latest
|
||
#
|
||
SPRING_AI_ZHIPUAI_API_KEY: ${SPRING_AI_ZHIPUAI_API_KEY:-}
|
||
SPRING_AI_ZHIPUAI_CHAT_ENABLED: "false"
|
||
SPRING_AI_ZHIPUAI_CHAT_OPTIONS_MODEL: glm-4.5-flash
|
||
SPRING_AI_ZHIPUAI_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
SPRING_AI_ZHIPUAI_CHAT_OPTIONS_TOP_P: 0.9
|
||
SPRING_AI_ZHIPUAI_CHAT_OPTIONS_MAX_TOKENS: 4096
|
||
SPRING_AI_ZHIPUAI_CONNECTION_TIMEOUT: 30
|
||
SPRING_AI_ZHIPUAI_READ_TIMEOUT: 10
|
||
SPRING_AI_ZHIPUAI_WRITE_TIMEOUT: 10
|
||
SPRING_AI_ZHIPUAI_PING_INTERVAL: 10
|
||
SPRING_AI_ZHIPUAI_MAX_IDLE_CONNECTIONS: 8
|
||
SPRING_AI_ZHIPUAI_KEEP_ALIVE_DURATION: 1
|
||
SPRING_AI_ZHIPUAI_EMBEDDING_ENABLED: "false"
|
||
SPRING_AI_ZHIPUAI_EMBEDDING_OPTIONS_MODEL: embedding-2
|
||
SPRING_AI_ZHIPUAI_EMBEDDING_OPTIONS_DIMENSIONS: 1024
|
||
#
|
||
SPRING_AI_DEEPSEEK_BASE_URL: https://api.deepseek.com
|
||
SPRING_AI_DEEPSEEK_API_KEY: ${SPRING_AI_DEEPSEEK_API_KEY:-}
|
||
SPRING_AI_DEEPSEEK_CHAT_ENABLED: "false"
|
||
SPRING_AI_DEEPSEEK_CHAT_OPTIONS_MODEL: deepseek-chat
|
||
SPRING_AI_DEEPSEEK_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
SPRING_AI_DEEPSEEK_EMBEDDING_ENABLED: "false"
|
||
#
|
||
SPRING_AI_OPENAI_BASE_URL: https://api.openai.com
|
||
SPRING_AI_OPENAI_API_KEY: ${SPRING_AI_OPENAI_API_KEY:-}
|
||
SPRING_AI_OPENAI_CHAT_ENABLED: "false"
|
||
SPRING_AI_OPENAI_CHAT_OPTIONS_MODEL: gpt-4o
|
||
SPRING_AI_OPENAI_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
SPRING_AI_OPENAI_EMBEDDING_ENABLED: "false"
|
||
#
|
||
SPRING_AI_DASHSCOPE_ENABLED: "false"
|
||
SPRING_AI_DASHSCOPE_BASE_URL: https://dashscope.aliyuncs.com
|
||
SPRING_AI_DASHSCOPE_API_KEY: ${SPRING_AI_DASHSCOPE_API_KEY:-}
|
||
SPRING_AI_DASHSCOPE_CHAT_ENABLED: "false"
|
||
SPRING_AI_DASHSCOPE_CHAT_OPTIONS_MODEL: qwen-max
|
||
SPRING_AI_DASHSCOPE_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
SPRING_AI_DASHSCOPE_CHAT_OPTIONS_TOP_P: 3
|
||
# Optional dedicated API key for TTS; falls back to SPRING_AI_DASHSCOPE_API_KEY when empty. 可选语音合成专用 Key,留空时回退到通用 DashScope Key。
|
||
SPRING_AI_DASHSCOPE_AUDIO_SYNTHESIS_API_KEY: ${SPRING_AI_DASHSCOPE_AUDIO_SYNTHESIS_API_KEY:-}
|
||
SPRING_AI_DASHSCOPE_AUDIO_SYNTHESIS_OPTIONS_MODEL: cosyvoice-v3-flash
|
||
SPRING_AI_DASHSCOPE_AUDIO_SYNTHESIS_OPTIONS_VOICE: longanhuan
|
||
SPRING_AI_DASHSCOPE_AUDIO_TRANSCRIPTION_API_KEY: ${SPRING_AI_DASHSCOPE_AUDIO_TRANSCRIPTION_API_KEY:-}
|
||
SPRING_AI_DASHSCOPE_AUDIO_TRANSCRIPTION_ENABLED: "false"
|
||
SPRING_AI_DASHSCOPE_AUDIO_TRANSCRIPTION_OPTIONS_MODEL: qwen3-asr-flash
|
||
SPRING_AI_DASHSCOPE_AUDIO_TRANSCRIPTION_REALTIME_MODEL: fun-asr-realtime
|
||
SPRING_AI_DASHSCOPE_IMAGE_ENABLED: "false"
|
||
SPRING_AI_DASHSCOPE_EMBEDDING_ENABLED: "false"
|
||
SPRING_AI_DASHSCOPE_EMBEDDING_OPTIONS_MODEL: text-embedding-v1
|
||
SPRING_AI_DASHSCOPE_AUDIO_SYNTHESIS_ENABLED: "false"
|
||
# ===============================
|
||
# Bytedesk AI defaults
|
||
# Shared application defaults consumed by execution endpoints and admin forms. 执行接口与管理台表单共享的应用默认值。
|
||
# ===============================
|
||
BYTEDESK_AI_TTS_LANGUAGE: zh-CN
|
||
BYTEDESK_AI_TTS_AUDIO_FORMAT: mp3
|
||
# TTS Realtime WebSocket(Qwen-Audio Realtime 中继地址)
|
||
BYTEDESK_AI_TTS_REALTIME_WS_URL: ${BYTEDESK_AI_TTS_REALTIME_WS_URL:-wss://dashscope.aliyuncs.com/api-ws/v1/realtime}
|
||
# ASR Realtime WebSocket(实时语音识别中继上游地址,浏览器经应用中转连接)
|
||
BYTEDESK_AI_ASR_REALTIME_WS_URL: ${BYTEDESK_AI_ASR_REALTIME_WS_URL:-wss://dashscope.aliyuncs.com/api-ws/v1/inference}
|
||
BYTEDESK_AI_ASR_SOURCE_FORMAT: mp3
|
||
BYTEDESK_AI_ASR_TIMEOUT_MS: 180000
|
||
BYTEDESK_AI_ASR_POLL_INTERVAL_MS: 1500
|
||
# ===============================
|
||
# SearXNG web search / SearXNG 联网搜索(企业版高级功能,可选)
|
||
# 应用侧代码位于 enterprise/ai 模块,社区版镜像不含此功能
|
||
# 需先启动 SearXNG:./start.sh all searxng
|
||
# 测试接口: /spring/ai/api/v1/searxng/*(bytedesk.debug=true 时可用)
|
||
# ===============================
|
||
BYTEDESK_AI_SEARXNG_ENABLED: ${BYTEDESK_AI_SEARXNG_ENABLED:-false}
|
||
BYTEDESK_AI_SEARXNG_BASE_URL: ${BYTEDESK_AI_SEARXNG_BASE_URL:-http://searxng-bytedesk:8080}
|
||
BYTEDESK_AI_SEARXNG_TIMEOUT_MS: ${BYTEDESK_AI_SEARXNG_TIMEOUT_MS:-10000}
|
||
BYTEDESK_AI_SEARXNG_MAX_RESULTS: ${BYTEDESK_AI_SEARXNG_MAX_RESULTS:-5}
|
||
# ===============================
|
||
# Neo4j knowledge graph / Neo4j 知识图谱(企业版高级功能,可选)
|
||
# 应用侧代码位于 enterprise/ai 模块,社区版镜像不含此功能
|
||
# 需先启动 Neo4j:./start.sh all neo4j
|
||
# 测试接口: /spring/ai/api/v1/neo4j/*(bytedesk.debug=true 时可用)
|
||
# ===============================
|
||
BYTEDESK_AI_NEO4J_ENABLED: ${BYTEDESK_AI_NEO4J_ENABLED:-false}
|
||
BYTEDESK_AI_NEO4J_URI: ${BYTEDESK_AI_NEO4J_URI:-bolt://neo4j-bytedesk:7687}
|
||
BYTEDESK_AI_NEO4J_USERNAME: ${BYTEDESK_AI_NEO4J_USERNAME:-neo4j}
|
||
BYTEDESK_AI_NEO4J_PASSWORD: ${BYTEDESK_AI_NEO4J_PASSWORD:-bytedesk-neo4j}
|
||
BYTEDESK_AI_NEO4J_DATABASE: ${BYTEDESK_AI_NEO4J_DATABASE:-neo4j}
|
||
#
|
||
SPRING_AI_SILICONFLOW_BASE_URL: https://api.siliconflow.cn
|
||
SPRING_AI_SILICONFLOW_API_KEY: ${SPRING_AI_SILICONFLOW_API_KEY:-}
|
||
SPRING_AI_SILICONFLOW_CHAT_ENABLED: "false"
|
||
SPRING_AI_SILICONFLOW_CHAT_OPTIONS_MODEL: Qwen/QwQ-32B
|
||
SPRING_AI_SILICONFLOW_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
#
|
||
SPRING_AI_GITEE_BASE_URL: https://ai.gitee.com
|
||
SPRING_AI_GITEE_API_KEY: ${SPRING_AI_GITEE_API_KEY:-}
|
||
SPRING_AI_GITEE_CHAT_ENABLED: "false"
|
||
SPRING_AI_GITEE_CHAT_OPTIONS_MODEL: Qwen/QwQ-32B
|
||
SPRING_AI_GITEE_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
#
|
||
SPRING_AI_TENCENT_BASE_URL: https://hunyuan.cloud.tencent.com
|
||
SPRING_AI_TENCENT_API_KEY: ${SPRING_AI_TENCENT_API_KEY:-}
|
||
SPRING_AI_TENCENT_CHAT_ENABLED: "false"
|
||
SPRING_AI_TENCENT_CHAT_OPTIONS_MODEL: hunyuan-t1-latest
|
||
SPRING_AI_TENCENT_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
#
|
||
SPRING_AI_BAIDU_BASE_URL: https://qianfan.baidubce.com/v2
|
||
SPRING_AI_BAIDU_API_KEY: ${SPRING_AI_BAIDU_API_KEY:-}
|
||
SPRING_AI_BAIDU_CHAT_ENABLED: "false"
|
||
SPRING_AI_BAIDU_CHAT_OPTIONS_MODEL: ernie-x1-32k-preview
|
||
SPRING_AI_BAIDU_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
#
|
||
SPRING_AI_VOLCENGINE_BASE_URL: https://ark.cn-beijing.volces.com/api/v3
|
||
SPRING_AI_VOLCENGINE_API_KEY: ${SPRING_AI_VOLCENGINE_API_KEY:-}
|
||
SPRING_AI_VOLCENGINE_CHAT_ENABLED: "false"
|
||
SPRING_AI_VOLCENGINE_CHAT_OPTIONS_MODEL: doubao-1-5-pro-32k-250115
|
||
SPRING_AI_VOLCENGINE_CHAT_OPTIONS_TEMPERATURE: 0.7
|
||
# ===============================
|
||
# Vector store / MCP / logging
|
||
# Search/vector storage, MCP switches, and module-level log verbosity. 检索向量存储、MCP 开关以及模块日志级别。
|
||
# ===============================
|
||
SPRING_AI_VECTORSTORE_TYPE: elasticsearch
|
||
#
|
||
SPRING_ELASTICSEARCH_URIS: http://elasticsearch-bytedesk:9200
|
||
SPRING_ELASTICSEARCH_USERNAME: elastic
|
||
SPRING_ELASTICSEARCH_PASSWORD: ${ELASTIC_PASSWORD}
|
||
#
|
||
SPRING_AI_VECTORSTORE_ELASTICSEARCH_ENABLED: "true"
|
||
SPRING_AI_VECTORSTORE_ELASTICSEARCH_INITIALIZE_SCHEMA: "true"
|
||
SPRING_AI_VECTORSTORE_ELASTICSEARCH_INDEX_NAME: bytedesk_vs_index
|
||
SPRING_AI_VECTORSTORE_ELASTICSEARCH_DIMENSIONS: 1024
|
||
SPRING_AI_VECTORSTORE_ELASTICSEARCH_SIMILARITY: cosine
|
||
#
|
||
SPRING_AI_MCP_CLIENT_ENABLED: "false"
|
||
SPRING_AI_MCP_SERVER_ENABLED: "false"
|
||
SPRING_AI_MCP_SERVER_STDIO: "false"
|
||
SPRING_AI_MCP_SERVER_TYPE: SYNC
|
||
SPRING_AI_VECTORSTORE_WEAVIATE_ENABLED: "false"
|
||
#
|
||
LOGGING_LEVEL_COM_BYTEDESK_AI: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_CORE: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_KBASE: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_SERVICE: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_SOCIAL: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_WECHAT: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_SHOP: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_TEAM: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_TICKET: WARN
|
||
LOGGING_LEVEL_COM_BYTEDESK_STARTER: WARN
|
||
LOGGING_FILE_NAME: /app/logs/bytedeskim.log
|
||
LOGGING_PATTERN_FILE: '[RID:%X{requestId} TRACEID:%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} %5p --- [%15.15t] %-40.40logger{39} : %m%n%wEx'
|
||
#
|
||
WECHAT_PAY_ENABLED: "false"
|
||
WECHAT_PAY_CERTPATH: ''
|
||
# Aliyun AccessKey / 阿里云访问密钥(短信与 OSS 共用),获取 https://ram.console.aliyun.com/profile/access-keys
|
||
ALIYUN_ACCESS_KEY_ID: ${ALIYUN_ACCESS_KEY_ID:-}
|
||
ALIYUN_ACCESS_KEY_SECRET: ${ALIYUN_ACCESS_KEY_SECRET:-}
|
||
# Aliyun SMS sign/template / 阿里云短信签名与模板Code,在 .env 中配置
|
||
ALIYUN_SMS_SIGNNAME: ${ALIYUN_SMS_SIGNNAME:-}
|
||
ALIYUN_SMS_TEMPLATECODE: ${ALIYUN_SMS_TEMPLATECODE:-}
|
||
ALIYUN_SMS_DOMAIN: dysmsapi.aliyuncs.com
|
||
ALIYUN_SMS_VERSION: "2017-05-25"
|
||
ALIYUN_SMS_ACTION: SendSms
|
||
SPRINGDOC_SHOW_ACTUATOR: "false"
|
||
SPRINGDOC_SWAGGER_UI_ENABLED: "false"
|
||
SPRINGDOC_SWAGGER_UI_PATH: /index.html
|
||
SPRINGDOC_API_DOCS_ENABLED: "false"
|
||
SPRINGDOC_API_DOCS_PATH: /v3/api-docs
|
||
BYTEDESK_TRANSLATE_BAIDU_APPID: ${BYTEDESK_TRANSLATE_BAIDU_APPID:-}
|
||
BYTEDESK_TRANSLATE_BAIDU_KEY: ${BYTEDESK_TRANSLATE_BAIDU_KEY:-}
|
||
ports:
|
||
- 9003:9003
|
||
- 9885:9885
|
||
volumes:
|
||
- upload_data:/app/uploads
|
||
- helpcenter_data:/app/helpcenter
|
||
- blog_data:/app/blog
|
||
- log_data:/app/logs
|
||
- ../../freeswitch/conf:/app/freeswitch/conf:ro
|
||
networks:
|
||
- bytedesk-network
|
||
|
||
volumes:
|
||
upload_data:
|
||
name: bytedesk_upload_data
|
||
helpcenter_data:
|
||
name: bytedesk_helpcenter_data
|
||
blog_data:
|
||
name: bytedesk_blog_data
|
||
# 说明:log_data(app 写入、logstash 采集共用)由本文件与 compose-logstash.yaml 各自声明(同名 bytedesk_log_data)
|
||
log_data:
|
||
name: bytedesk_log_data
|
||
|
||
networks:
|
||
bytedesk-network:
|
||
driver: bridge
|