# 环境变量说明 / Environment Variables 所有敏感信息集中在 `deploy/docker/.env`(`cp .env.example .env` 后按需修改)。`start.sh`/`stop.sh` 通过 `--env-file` 自动加载。 > 注意:.env 务必使用 UTF-8 编码保存(推荐无 BOM),值中不要包含中文全角引号或首尾空格。 ## 变量优先级(应用 DSN/MQ 连接) `start.sh` 启用 bytedesk 应用时会按所选 db/mq 关键字自动注入连接参数并写入 `.env.app`(自动生成,勿手工编辑): ```text shell 环境变量 > .env 显式配置 > .env.app(脚本注入) > compose 文件内置默认值(mysql/artemis) ``` 如需完全接管应用连接(例如指向外部数据库),在 `.env` 中显式配置: ```bash SPRING_DATASOURCE_URL=jdbc:mysql://external-db:3306/bytedesk?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 SPRING_DATASOURCE_USERNAME=bytedesk SPRING_DATASOURCE_PASSWORD=your-password # BYTEDESK_MQ_TYPE=artemis|rabbitmq # SPRING_ARTEMIS_BROKER_URL=tcp://bytedesk-artemis:61616 # SPRING_RABBITMQ_HOST=bytedesk-rabbitmq ``` ## 敏感变量清单(至少修改这些) - **数据库**:`MYSQL_ROOT_PASSWORD`、`POSTGRES_PASSWORD`、`ORACLE_PASSWORD`、`ORACLE_APP_USER_PASSWORD`、`KINGBASE_DB_PASSWORD`、`KINGBASE_SYSTEM_PWD` - **中间件**:`REDIS_PASSWORD`、`ELASTIC_PASSWORD`、`MINIO_ROOT_PASSWORD`、`KIBANA_SERVICE_ACCOUNT_TOKEN` - **消息队列**:`ARTEMIS_PASSWORD`、`RABBITMQ_DEFAULT_PASS` - **应用安全**:`BYTEDESK_ADMIN_PASSWORD`、`BYTEDESK_ADMIN_VALIDATE_CODE`、`BYTEDESK_MEMBER_PASSWORD`、`BYTEDESK_JWT_SECRET_KEY`、`BYTEDESK_LICENSE_KEY` - **呼叫中心**:`COTURN_PASS`、`FREESWITCH_ESL_PASSWORD`、`FREESWITCH_DOMAIN`、`FREESWITCH_EXTERNAL_SIP_IP`、`FREESWITCH_EXTERNAL_RTP_IP` - **可选 API Key**:`SPRING_AI_*_API_KEY`、`BYTEDESK_TRANSLATE_BAIDU_*` ## AI 开关(承接旧 noai 场景) 应用默认不启用任何 AI(`SPRING_AI_MODEL_CHAT=none`),等价于旧版 `noai` 场景。启用方法:在 `.env` 配置对应 API Key,并按需添加: ```bash # 示例:启用智谱对话 + 向量 SPRING_AI_ZHIPUAI_API_KEY=your-key SPRING_AI_MODEL_CHAT=zhipuai SPRING_AI_MODEL_EMBEDDING=zhipuai # 示例:启用 DashScope 语音 SPRING_AI_DASHSCOPE_API_KEY=your-key SPRING_AI_MODEL_AUDIO_SPEECH=dashscope SPRING_AI_MODEL_AUDIO_TRANSCRIPTION=dashscope ``` 完整模型选择项见 `compose/compose-bytedesk.yaml` 的 AI provider 段落注释。 ## 对外访问地址 ```bash # 将 127.0.0.1 替换为服务器 IP 或域名(影响上传/头像/帮助中心等链接) BYTEDESK_UPLOAD_URL=http://127.0.0.1:9003 BYTEDESK_FEATURES_AVATAR_BASE_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 ``` ## 密钥与 Jasypt(可选) 部分 compose 配置值可写为 `ENC(...)`。仅在实际使用加密值时才需要把 Jasypt 口令传给容器: ```bash # 1. 写入 .env(保留在本地,切勿提交) echo 'JASYPT_ENCRYPTOR_PASSWORD=please-change-me' >> .env # 2. 正常启动,服务自动读取 ./start.sh ``` - 不使用加密值时留空或删除该行,启动回退明文 - 可通过 `BYTEDESK_SECURITY_JASYPT_ALGORITHM` 等变量覆盖算法/迭代次数