mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-14 03:33:43 +08:00
* feat(wiki): unify raw materials & source watcher into a Sources tab with per-KB auto-sync The raw-material directory scan and the Advanced "source watcher" sub-tab were the same engine (same kb.sourceDirectory, same WikiDirectoryScanService) split across two surfaces with two editable directory inputs. Merge them into one "Sources" tab (upload / paste / directory manual scan + auto-sync toggle + the raw-material list) and drop the watcher sub-tab from Advanced. Auto-sync is now per-KB opt-in: a new watcher_enabled column (V146) gates the periodic scan per knowledge base. The server-global mate.wiki.watcher-enabled stays as an ops master switch — a KB is auto-scanned only when both are on (AND). Manual scans are unaffected. Scan interval stays global for now (tracked separately). Closes matevip/mateclaw#314 * docs(wiki): document source-watcher global switch env vars Expose MATE_WIKI_WATCHER_ENABLED / MATE_WIKI_WATCHER_INTERVAL_MS as explicit placeholders in application-mysql.yml, .env.example and docker-compose.yml, mirroring MATE_WIKI_ALLOWED_SOURCE_ROOTS. Notes the AND semantics (global ops gate + per-KB toggle) so operators know the global switch alone is not sufficient.
111 lines
5.7 KiB
Plaintext
111 lines
5.7 KiB
Plaintext
# 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=
|
||
|
||
# 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
|