跳到主要内容

安装

在线安装​

在 Ubuntu 22.04 LTS 或更新版本(x86_64)上,下载并执行在线安装脚本, 无需克隆仓库。以运行服务的用户执行,不要使用 sudo bash; 只有安装缺失的系统软件包时才会请求 sudo。 下载入口需要 Bash、curl 或 wget、CA 证书和 python3,缺失时可运行 sudo apt-get install curl ca-certificates python3。

将 VERSION 设为 main 安装开发版,或替换为实际发布 tag(如 vX.Y.Z)。 仅支持包含在线安装脚本的 tag。

使用 curl:

VERSION=main && curl -fsSL "https://raw.githubusercontent.com/llm-d-incubation/llm-d-lens/${VERSION}/scripts/LensInstaller-Ubuntu-x86_64-online.sh" | bash

或使用 wget:

VERSION=main && wget -qO- "https://raw.githubusercontent.com/llm-d-incubation/llm-d-lens/${VERSION}/scripts/LensInstaller-Ubuntu-x86_64-online.sh" | bash

安装器从 /dev/tty 读取交互输入。源码包验证成功后,会将脚本保存为当前目录中的 LensInstaller-Ubuntu-x86_64-online.<unique-id>.sh 并打印路径,不覆盖已有文件。 请在可写目录中运行。脚本主体完整接收后才会执行。 自动化 Bash 环境建议启用 set -o pipefail,让下载器失败也能使整个管道返回非零状态。

交互模式会询问安装目录(默认 $HOME/llm-d-lens)和 端口(应用端口 3000,内部后端端口 8081);按回车即可接受每个默认值。 安装脚本下载固定到 commit 的源码包,然后配置 Node、Python 3.11+、 虚拟环境、PostgreSQL、应用构建和 TLS。缺少兼容 Python 时,使用固定版本的 uv 将独立的 Python 3.12 安装到安装目录的 .tools/,不替换系统 Python。 仅接受新目录或空目录,不覆盖已有安装。

版本选择​

脚本内置源码版本,不需要也不接受版本参数。main 安装执行时的开发分支, 发布版本的脚本安装对应 tag。下载前会将版本解析成确定的 commit SHA; 安装目录内的 .lens-version.json 记录版本、SHA 和安装时间。 固定源码不代表所有间接 npm/Python 依赖都已锁定。

网络与失败处理​

需允许访问 raw.githubusercontent.com、api.github.com、codeload.github.com、 Node.js 和软件包仓库,以及 Ubuntu 软件源;安装独立 Python 还需下载 GitHub release 资源。脚本继承 HTTP_PROXY、HTTPS_PROXY、NO_PROXY,不会关闭证书校验。 如果 sudo 过滤了代理变量,请单独配置 apt 代理。

日志以私有权限保存在 $LENS_LOG_DIR(默认 ~/.local/state/lens/logs/)。 日志可能包含安装器生成的数据库凭据,请勿公开。临时下载放在 $LENS_SCRATCH_DIR,退出时清理。下载及源码包检查完成前不会修改安装目录; 后续安装失败可能留下部分文件,这些文件会保留用于诊断,不会自动升级、 回滚或删除安装目录。网络失败或 GitHub API 限流会明确报错,不会切换版本。

无终端的脚本化或 CI 安装,请将命令末尾的 | bash 替换为 | bash -s -- --silent。

其他安装选项可追加在 --silent 后面。已保存的脚本仍可通过 bash <saved-script-path> [options] 直接运行。

常用选项:

选项作用
--install-dir DIR安装位置(默认 $HOME/llm-d-lens)。
--app-port PORTWeb 应用/API 端口(默认 3000)。
--backend-port PORT内部 FastAPI 后端端口(默认 8081)。
--no-https提供纯 HTTP 服务,而不是自动 HTTPS(自签名证书)。
--no-start安装但不启动服务。
--db-mode embedded|external使用内置数据库或外部数据库。
-h, --help显示全部选项。

管理安装​

安装脚本会在安装目录中写入 lensctl.sh:

"$HOME/llm-d-lens/lensctl.sh" start
"$HOME/llm-d-lens/lensctl.sh" status
"$HOME/llm-d-lens/lensctl.sh" stop

卸载请运行 "$HOME/llm-d-lens/lensctl.sh" uninstall,默认保留数据。 使用 --purge 可删除数据,或使用 --keep-data 跳过数据保留提示。 内嵌数据库通过 --keep-db / --purge-db 单独控制。 在线安装入口本身不接受卸载参数。

如果你要升级现有安装而不是全新安装,请参阅 升级指南。

从源码安装与运行​

在仓库根目录使用本地源码启动器,而不是 Ubuntu 安装程序生成的打包部署:

scripts/lens-local.sh start
scripts/lens-local.sh status

启动器准备 Node.js、npm 依赖和 Python 环境,然后在端口 5173 运行源码前端、 在 3000 运行 Node API、在 8081 运行 Python 后端。这种方式通过 Vite 运行源码,并不替代下方的生产构建命令。若单独管理 Python 后端, 可使用 npm run dev:web。

scripts/lens-local.sh start 和 restart 会在更改服务之前重新生成并验证复用地图。 无效的注册项会阻止启动,但不会停止已有服务;待处理的用户决策只会提示警告, 不会被自动解决。若需限定部署节点,传入 --target-node NODE 和可选的 --kubeconfig FILE,或者设置 TARGET_NODE 与 KUBECONFIG; 不需要目标节点专用配置文件。预检查要求和各个子命令参见 CLI 参考。

构建与测试​

npm run build
npm run type-check
make test-js
make test-python

文档站点​

本站点使用 Docusaurus 构建。可在本地预览, 并支持热重载:

npm run docs:dev

校验配置和页面路径:

npm run docs:check

生成的 MCP 目录是助手和 Node 服务器所必需的。当后端路由发生变化时, 需要重新生成它;Docker 构建会自动完成这一步。