ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ChatLab Docker 部署完全指南:官方镜像、数据共享、服务端参数与环境变量

ChatLab Docker 部署完全指南:官方镜像、数据共享、服务端参数与环境变量 人工智能AI Agent数据分析桌面应用后端前端即时通讯MCP 服务【免费下载链接】ChatLabLocal-first chat history analyzer with AI. | 本地优先的 AI 聊天记录分析工具项目地址https://gitcode.com/ChatLab/ChatLab点击查看免费下载本文围绕 ChatLab CLI 官方容器镜像ghcr.io/chatlab/chatlab-cli展开覆盖多架构镜像的使用、与桌面版 / 本地 CLI 共享~/.chatlab数据的绑定挂载方案、纯容器数据隔离方案、clb web别名start服务端选项、配置优先级与环境变量体系以及 Docker Compose 的一键编排。读完本文你可以在一台 Linux、macOS 或 Windows 主机上快速起一个 ChatLab 服务并正确管理数据目录、端口、鉴权与多实例兼容性。官方镜像概述ChatLab CLI 以多架构容器镜像形式发布同时支持linux/amd64与linux/arm64ghcr.io/chatlab/chatlab-cli镜像在构建时已经做了两项重要的“内置优化”以缩短首次启动时间内置本地 Embedding 运行时官方镜像已经包含本地语义索引semantic index所需的运行环境。启用本地语义索引时容器只需要下载所选的模型文件不会在容器启动后再额外安装约 370 MB 的 Node 依赖。内置中文分词词典镜像将默认的简体中文zh-CN分词词典存放在/opt/chatlab/nlp并把CHATLAB_NLP_DICT_DIR指向该目录因此首次启动无需再下载词典。如果挂载进来的 ChatLab 数据目录中已存在词典已有词典会被保留。从仓库源码可以印证词典的“先保留、后兜底下载”逻辑词典管理器 中的ensureDefaultDict()先检查可写目录是否已存在zh-CN.dict存在则直接返回不存在时优先复制内置词典bundled dict都没有时才进入后台下载流程。Web 服务路由在注册 NLP 接口时也会执行initNlpDir(nlpDir)与ensureDefaultDict(nlpDir, bundledNlpDictDir)见 NLP 路由。快速开始与桌面版和本地 CLI 共享数据推荐ChatLab Desktop、CLI 与 Docker 三者都可以使用宿主机上的~/.chatlab目录。在本地运行 Docker 时直接把该目录绑定挂载进容器即可。macOS / Linuxmkdir -p $HOME/.chatlab $HOME/Downloads docker run --name chatlab \ -p 127.0.0.1:3110:3110 \ --user $(id -u):$(id -g) \ --mount typebind,source$HOME/.chatlab,target/home/node/.chatlab \ --mount typebind,source$HOME/Downloads,target/home/node/Downloads \ -e HOME/home/node \ -e CHATLAB_DATA_DIR/home/node/.chatlab/data \ ghcr.io/chatlab/chatlab-cli:latestWindows PowerShellNew-Item -ItemType Directory -Force $HOME/.chatlab | Out-Null docker run --name chatlab -p 127.0.0.1:3110:3110 --mount typebind,source$HOME/.chatlab,target/home/node/.chatlab -e CHATLAB_DATA_DIR/home/node/.chatlab/data ghcr.io/chatlab/chatlab-cli:latest容器启动后打开 http://127.0.0.1:3110/ 即可使用。这段命令里每个参数都有明确用意镜像默认以非特权用户nodeUID/GID 1000运行。在 macOS/Linux 上--user $(id -u):$(id -g)让容器进程与绑定挂载目录的宿主机属主保持一致在宿主机 UID/GID 不是 1000 的 Linux 主机上这是必须的否则容器无法写入挂载目录。-e HOME/home/node让 ChatLab 的系统目录保持在/home/node/.chatlab。宿主机~/.chatlab映射到容器的/home/node/.chatlab宿主机~/Downloads映射为容器内可写的 Downloads 目录用于导出与截图。CHATLAB_DATA_DIR/home/node/.chatlab/data将默认用户数据钉死在容器可访问的路径上这样宿主机config.toml中的绝对路径在容器内不会失效。这种共享方案的收益是双向免拷贝先用 Docker再装桌面版或本地 CLI桌面版和 CLI 继续读取宿主机的~/.chatlab无需迁移。先用桌面版或本地 CLI再跑 Docker容器直接读取已有的配置、聊天数据库和 AI 数据。仅使用 Docker 内的数据服务器部署或数据隔离如果是服务器部署或明确希望数据与宿主机上的 ChatLab 隔离使用 Docker 命名卷named volumedocker run --name chatlab \ -p 127.0.0.1:3110:3110 \ -v chatlab-data:/home/node/.chatlab \ ghcr.io/chatlab/chatlab-cli:latest该卷把系统状态与用户数据都保存在 Docker 内部桌面版和宿主机 CLI不会自动看到这些数据。替换或升级容器时请保留chatlab-data卷。使用自定义用户数据目录如果桌面版或 CLI 把聊天数据库放在~/.chatlab之外可以单独挂载该目录并把环境变量指向它的容器路径docker run --name chatlab \ -p 127.0.0.1:3110:3110 \ --user $(id -u):$(id -g) \ --mount typebind,source$HOME/.chatlab,target/home/node/.chatlab \ --mount typebind,source$HOME/Downloads,target/home/node/Downloads \ --mount typebind,source/absolute/path/to/chatlab-data,target/chatlab-data \ -e HOME/home/node \ -e CHATLAB_DATA_DIR/chatlab-data \ ghcr.io/chatlab/chatlab-cli:latest把/absolute/path/to/chatlab-data替换为宿主机上实际的数据目录。系统数据仍通过~/.chatlab挂载共享。由于CHATLAB_DATA_DIR优先级最高更改 Docker 的数据目录应通过其挂载与环境变量完成而不是在 Storage 设置页里改。在源码层面数据目录的解析遵循“环境变量 配置文件 内置默认”的次序配置加载器把CHATLAB_DATA_DIR映射为data.user_data_dir见 loader.ts运行时再据此构建NodePathProvider并完成目录初始化见 runtime.ts。版本与数据兼容性桌面版、CLI 与 Docker 在同一版本下可以共享数据库。在更改数据目录、执行迁移或在不同版本之间切换之前请先停止其他 ChatLab 实例。如果旧版本无法安全读取升级后的数据目录ChatLab 的兼容性门禁compatibility gate会阻止启动。这一机制在源码中有对应实现assertCliDataDirCompatible()在 CLI 与 HTTP 服务启动路径中都会被调用runtime.ts、HTTP 启动入口数据目录兼容性检查位于>clb web --no-open --host 0.0.0.0clb web的选项按 CLI 声明顺序如下选项说明--port port服务端口默认3110。--host host监听地址容器外默认127.0.0.1。--token token自定义 Bearer Token省略时 ChatLab 会读取或自动生成一个。--headless只启动 API不托管 Web UI。--require-auth让 Web UI 路由与 API 路由一样要求 Bearer 认证。--no-open不自动打开浏览器。--daemon安装常驻的 macOS/Linux 系统服务不适用于容器。这些选项与 CLI 源码中的定义一一对应见 cli.ts--port的默认值来自配置 Schema 中的DEFAULT_API_PORT 3110schema.ts--host默认127.0.0.1。启动 HTTP 服务时若未传--token服务会从配置读取读不到则自动生成形如clb_ 32 字节随机 hex 的 Token 并回写配置http/index.ts--require-auth对应认证钩子中“/_web/*也要求 Bearer”的行为http/auth.ts。CLI 在监听前还会先做端口可用性预检端口被占用时给出统一报错并提示clb web --port porthttp/port.ts。Docker 参数会整体替换默认命令因此追加服务端选项时需要重复start、--no-open与--host 0.0.0.0。例如以无头模式在 8080 端口启动docker run --rm \ -p 127.0.0.1:8080:8080 \ --user $(id -u):$(id -g) \ --mount typebind,source$HOME/.chatlab,target/home/node/.chatlab \ --mount typebind,source$HOME/Downloads,target/home/node/Downloads \ -e HOME/home/node \ -e CHATLAB_DATA_DIR/home/node/.chatlab/data \ ghcr.io/chatlab/chatlab-cli:latest \ start --port 8080 --host 0.0.0.0 --headless --no-open其他 CLI 命令也可以直接在容器中调用docker run --rm ghcr.io/chatlab/chatlab-cli:latest --version docker run --rm ghcr.io/chatlab/chatlab-cli:latest formats docker run --rm \ --user $(id -u):$(id -g) \ --mount typebind,source$HOME/.chatlab,target/home/node/.chatlab \ --mount typebind,source$HOME/Downloads,target/home/node/Downloads \ -e HOME/home/node \ -e CHATLAB_DATA_DIR/home/node/.chatlab/data \ ghcr.io/chatlab/chatlab-cli:latest sessions list --format json其中formats命令会在终端列出所有受支持的聊天记录格式及其扩展名见 cli.ts非常适合用来验证镜像与宿主数据挂载是否正常。环境变量对配置字段而言ChatLab 按以下顺序应用取值从高到低CHATLAB_*环境变量~/.chatlab/config.toml或~/.chatlab/config.json内置默认值这一优先级在配置加载器中直接实现loadConfig()依次合并文件配置、环境变量覆盖与显式 override最后经 Zod Schema 校验loader.ts。配置目录固定为~/.chatlab支持config.toml与config.json两种格式loader.ts。配置类环境变量按源码声明顺序变量说明CHATLAB_DATA_DIR覆盖 ChatLab 用户数据目录设置后需单独挂载该目录。CHATLAB_API_PORT设置api.port。start命令自带默认值因此配置容器服务端口请用--port。CHATLAB_API_HOST设置api.host。start命令自带默认值因此配置容器监听地址请用--host。CHATLAB_LLM_PROVIDER设置llm.provider。CHATLAB_LLM_MODEL设置llm.model。CHATLAB_LLM_BASE_URL设置llm.base_url。CHATLAB_LOCALE_LANG设置locale.lang。CHATLAB_CLI_ALLOW_RAW设为1或true允许未经隐私处理的--raw查询输出。以上映射关系如CHATLAB_DATA_DIR - data.user_data_dir、CHATLAB_API_PORT - api.port、CHATLAB_LLM_BASE_URL - llm.base_url、CHATLAB_CLI_ALLOW_RAW按1/true转布尔在 loader.ts 中有完整对照表。ChatLab 还会读取以下运行时变量变量说明CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR设为1绕过最低运行时数据目录检查可能导致数据损坏仅限紧急恢复使用。CHATLAB_DISABLE_NATIVE_PERF设为1禁用原生解析器加速。CHATLAB_LOG_LEVEL设置应用日志阈值DEBUG、INFO、WARN或ERROR默认INFO。CHATLAB_SKIP_UPDATE_CHECK设为非空值禁用 CLI 更新检查。CHATLAB_TEMP_ROOT覆盖临时工作区根目录。LANG选择 CLI 查询预处理使用的默认语言。这些变量在源码中均有对应消费点CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR在>CHATLAB_HOST_DIR/absolute/path/to/.chatlab CHATLAB_DOWNLOADS_DIR/absolute/path/to/Downloads CHATLAB_UID1000 CHATLAB_GID1000 CHATLAB_TOKENreplace-with-a-secret-tokenCHATLAB_HOST_DIR替换为宿主机~/.chatlab的绝对路径。CHATLAB_DOWNLOADS_DIR设置为已存在的可写目录用于导出与截图例如宿主机~/Downloads。macOS 与 Linux 上CHATLAB_UID/CHATLAB_GID替换为id -u/id -g的输出Windows Docker Desktop 用户保持1000即可。对应的docker-compose.ymlservices: chatlab: image: ghcr.io/chatlab/chatlab-cli:latest restart: unless-stopped user: ${CHATLAB_UID:-1000}:${CHATLAB_GID:-1000} ports: - 127.0.0.1:3110:3110 environment: HOME: /home/node CHATLAB_DATA_DIR: /home/node/.chatlab/data volumes: - ${CHATLAB_HOST_DIR:?set CHATLAB_HOST_DIR in the Compose environment}:/home/node/.chatlab - ${CHATLAB_DOWNLOADS_DIR:?set CHATLAB_DOWNLOADS_DIR in the Compose environment}:/home/node/Downloads command: - start - --port - 3110 - --host - 0.0.0.0 - --token - ${CHATLAB_TOKEN:?set CHATLAB_TOKEN in the Compose environment} - --require-auth - --no-open几点说明CHATLAB_TOKEN由 Docker Compose 插值后作为--token的值传给 ChatLab它不是ChatLab 的环境变量。请把它放在密钥存储或未跟踪的.env文件中。${VAR:?err}语法会在变量缺失时直接报错避免带病启动。--require-auth配合--token可让 Web UI 与 API 都要求 Bearer 认证适合暴露在局域网或公网前的服务器场景。如果你需要完全隔离的服务器数据请改用上文“仅使用 Docker 内的数据”一节中的命名卷方案。多架构镜像与来源证明Docker 会根据宿主机架构自动选择匹配的镜像。需要显式指定平台时docker pull --platform linux/amd64 ghcr.io/chatlab/chatlab-cli:latest docker pull --platform linux/arm64 ghcr.io/chatlab/chatlab-cli:latest镜像索引image index中还包含 provenance来源证明元数据。部分 Registry 界面可能把这些元数据清单显示为unknown/unknown平台它们不是可运行的平台无需单独拉取。补充阅读本地安装 CLI / 桌面版安装指南CLI 查询命令使用CLI 查询配置 AI 服务如何配置 AI导入聊天记录如何导入排查常见问题故障排查赞分享人工智能AI Agent数据分析桌面应用后端前端即时通讯MCP 服务【免费下载链接】ChatLabLocal-first chat history analyzer with AI. | 本地优先的 AI 聊天记录分析工具项目地址https://gitcode.com/ChatLab/ChatLab点击查看免费下载相关推荐ChatLab CLI 容器化部署完全指南Docker 镜像、数据共享与环境变量详解ChatLab CLI 容器化部署完全指南Docker 镜像、数据共享与环境变量详解 ChatLab 是本地优先的 AI 聊天记录分析工具其 CLI 提供了人工智能AI Agent数据分析桌面应用后端前端即时通讯MCP 服务本地部署ChatLab Docker 部署完全指南镜像选择、数据共享策略、环境变量与 Compose 实战ChatLab Docker 部署完全指南镜像选择、数据共享策略、环境变量与 Compose 实战 ChatLab 是本地优先的 AI 聊天记录分析工具官方人工智能AI Agent数据分析桌面应用后端前端即时通讯MCP 服务本地部署ChatLab CLI Docker 部署指南数据共享、服务器选项与环境变量全解ChatLab CLI Docker 部署指南数据共享、服务器选项与环境变量全解 导读 本文是 ChatLab 本地优先 AI 聊天记录分析工具官方 Dock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表