# MateClaw 环境变量配置 # 复制此文件为 .env 并填写实际值:cp .env.example .env # # LLM API Key(DashScope、OpenAI 等)无需在此配置,启动后在管理界面「模型管理」中添加。 # # ⚠️ 所有标注「必填」的项若没配置,`docker compose up` 会直接失败退出,避免把默认/示例值带到生产环境。 # ==================== 数据库(Docker 模式必填) ==================== DB_HOST=localhost DB_PORT=3306 DB_NAME=mateclaw DB_USERNAME=mateclaw # ⚠️ 必填且请改成强密码(至少 16 位,含大小写+数字+符号)。 # docker-compose.yml 会通过 ${DB_PASSWORD:?} 强制要求此项。 DB_PASSWORD=change-me-strong-user-password # ⚠️ MySQL root 账号密码,仅用于容器内初始化。请改成与 DB_PASSWORD 不同的强密码。 DB_ROOT_PASSWORD=change-me-strong-root-password # ==================== 安全(强烈建议覆盖) ==================== # JWT 签名密钥。若留空,服务器会用内置默认值并在启动日志里 WARN。 # 生产部署必须设置,至少 32 位随机字符串:openssl rand -base64 48 JWT_SECRET= # CORS 白名单(逗号分隔,如 https://mateclaw.example.com,https://admin.example.com)。 # 若留空,服务器会允许所有 origin 并在启动日志里 WARN。生产部署务必设置。 MATECLAW_CORS_ALLOWED_ORIGINS= # 公开访问基址(如 https://mateclaw.example.com)。用于把智能体生成文件的下载 # 链接拼成绝对地址,便于在 Web 之外(IM 消息、复制链接、外部下载)直接打开。 # 留空时回退到当前请求的 host,再退回相对路径。反代后部署建议显式设置。 MATECLAW_PUBLIC_BASE_URL= # 是否公开 Swagger UI / OpenAPI 文档(/swagger-ui.html、/v3/api-docs)。 # 生产数据库 profile(mysql/kingbase/postgres)默认 false —— 匿名无法浏览全部 # 端点结构,需全局管理员(ROLE_ADMIN)。仅在内网/预发临时调试时设为 true。 MATECLAW_OPENAPI_EXPOSE_UI= # SearXNG 会话密钥(容器内部用,留空会用开发默认值)。生产部署请设成 32+ 位随机串。 # openssl rand -hex 32 SEARXNG_SECRET= # ==================== 浏览器工具(可选) ==================== # # Docker 镜像已经把 Chromium 打进去了,默认零配置可用。 # 只有在下述场景才需要 override: # # 1) 把浏览器独立部署成 sidecar 容器,通过 CDP 连接: # MATECLAW_BROWSER_CDP_URL=http://chrome-sidecar:9222 # # 2) 指定非 Playwright 打包的浏览器(例如宿主机上已装的 Chrome): # MATECLAW_BROWSER_CHROME_PATH=/usr/bin/google-chrome-stable # # 3) 强制使用 Playwright channel(chrome / msedge / chrome-beta …): # MATECLAW_BROWSER_CHANNEL=chrome MATECLAW_BROWSER_CDP_URL= MATECLAW_BROWSER_CHROME_PATH= MATECLAW_BROWSER_CHANNEL= # ==================== OpenAI OAuth(Docker,可选) ==================== # # OpenAI ChatGPT OAuth 使用 Codex CLI 的 public client + PKCE / device code, # 不需要自定义 client secret。 # # 默认留空即可。后端会根据访问 Host 自动选择: # - localhost / 127.0.0.1 / ::1 → LOCAL(PKCE 回调) # - IP / 域名 / 反向代理访问 → DEVICE_CODE(无缝远程授权) # # 本机 Docker 若希望像桌面版一样直接通过宿主机浏览器完成 # http://localhost:1455/auth/callback 回调,可显式开启 LOCAL,并让容器内 # 临时回调服务监听 0.0.0.0,以便通过 `1455:1455` 端口映射被宿主机访问到: # MATECLAW_OAUTH_OPENAI_DEPLOYMENT_MODE=local # MATECLAW_OAUTH_OPENAI_CALLBACK_BIND_HOST=0.0.0.0 # # 强制模式调试时也可设为:local / device_code / manual_paste MATECLAW_OAUTH_OPENAI_DEPLOYMENT_MODE= MATECLAW_OAUTH_OPENAI_CALLBACK_BIND_HOST= # ==================== Wiki 知识库目录白名单(Docker 模式,可选)==================== # # Docker 生产部署开启了路径安全校验(fail-closed)。 # 知识库使用「目录扫描」功能时,扫描路径必须在此白名单内,否则返回 400 错误。 # 多个路径用英文逗号分隔;留空则禁止所有目录扫描。 # # 示例:MATE_WIKI_ALLOWED_SOURCE_ROOTS=/data/wiki,/opt/docs # # 同时在 docker-compose.yml 的 volumes 里把宿主机目录挂进容器,例如: # volumes: # - /your/host/path:/data/wiki MATE_WIKI_ALLOWED_SOURCE_ROOTS= # ── Wiki 知识源自动同步(变更监测)总开关 ──────────────────────── # 定时扫描各知识库的源目录、自动消化新文件。默认关闭,运维主动开启。 # AND 语义:全局这个开关开 *且* 某知识库自己的「自动同步」开关也开, # 该库才会被定时扫描;手动「立即扫描」不受此开关影响。 # 间隔单位毫秒,默认 5 分钟(目前为全局,暂不支持按库配置)。 MATE_WIKI_WATCHER_ENABLED=false MATE_WIKI_WATCHER_INTERVAL_MS=300000 # ── Skill 工作区目录 ───────────────────────────────────────────── # 已安装的 skill、运行时积累的 LESSONS.md、skill 运行产物都落在这个目录。 # 默认(容器内)已指向 /app/data/skills,由 docker-compose 的 server_data 卷 # 持久化,容器重启不丢,无需额外挂卷。一般无需修改。 # 内置 skill 由 JAR classpath 每次启动现场释放,挂空卷也不会丢内置文件。 # 仅当你想把 skill 目录放到别处(如独立的 bind mount)时才覆盖此项, # 并记得在 docker-compose.yml 的 volumes 里把对应宿主机目录挂进容器。 MATECLAW_SKILL_WORKSPACE_ROOT= # ── Maven 镜像(国内加速)───────────────────────────────────────── # 在中国大陆构建时取消注释,将 Aliyun 仓库优先级提前,大幅提速 mvn 拉包。 # 空值(默认)使用 US Maven Central → Google CDN → Aliyun 的顺序。 #MAVEN_FLAGS=-Paliyun-first