部署与基础设施
部署与基础设施
相关源文件
以下文件为本 Wiki 页面的生成提供了上下文:
DockerfileDockerfile.liteMakefiledocker-compose-full.ymldocker-compose.podman.ymldocker-compose.ymldocs/DockerDeployment.mddocs/InteractiveSetup.mdscripts/setup/lib/file_ops.shscripts/setup/lib/validation.shscripts/setup/setup.shtests/test_interactive_setup/test_collect.pytests/test_interactive_setup/test_generate.pytests/test_interactive_setup/test_misc.py
本节提供 LightRAG 可用部署选项的高层概述。该系统设计灵活,支持从宿主机本地开发到基于 Kubernetes 的大规模生产集群等多种场景。
部署概述
根据基础设施需求,LightRAG 可采用以下三种主要模式进行部署:
- 基于宿主机部署:直接在物理机或虚拟机上使用 Python 环境运行
lightrag-server。 - 容器化部署(Docker Compose):使用提供的
Dockerfile和docker-compose.yml编排 API 服务器及各种存储后端(PostgreSQL、Neo4j、Milvus 等)。 - 云原生部署(Kubernetes):利用 Helm Chart 实现检索增强生成(RAG)技术栈的自动化部署、扩缩容和管理。
系统架构映射
下图将概念性的部署服务映射到管理这些服务的具体代码实体和配置。
部署实体映射
来源: scripts/setup/setup.sh:1-30、docker-compose.yml:1-28、lightrag/api/lightrag_server.py:1-111
交互式设置向导
推荐使用交互式设置向导来配置任何部署方案。该工具可管理环境变量、存储后端兼容性以及 Docker 服务生成的复杂性。
- 入口:通过
make目标访问,例如make env-base、make env-storage和make env-serverMakefile:77-90。 - 逻辑:该向导由
scripts/setup/setup.sh和一组辅助脚本库驱动scripts/setup/setup.sh:1-15。 - 主要特性:
- 规范化:当从宿主机运行时迁移到容器运行时,会自动将
localhost转换为host.docker.internalscripts/setup/setup.sh:243-255。 - 校验:检查所有支持数据库的 URI 格式
scripts/setup/lib/validation.sh:3-34。 - 安全审计:包含
security-check目标,用于识别弱 JWT 密钥或暴露的 API 密钥docs/InteractiveSetup.md:199-202。
有关使用该向导的详细信息,请参阅 Docker Compose 部署。
部署选项
Docker Compose
Docker 部署使用多阶段构建的 Dockerfile,其中包含 frontend-builder(使用 Bun)和 builder(使用 UV)阶段,以优化镜像大小和构建速度 Dockerfile:1-69。它还支持用于最小化环境的 "Lite" 版本 Dockerfile.lite:1-112。
docker-compose.yml:基本部署的标准入口点docker-compose.yml:1-28。docker-compose.final.yml:由设置向导生成的自定义技术栈,仅包含您选择的服务(例如,用于嵌入向量的本地 vLLM)docs/DockerDeployment.md:83-89。
有关详细信息,请参阅 Docker Compose 部署。
Kubernetes 和 Helm
对于需要高可用性的生产环境,LightRAG 提供了 Helm Chart。它支持:
- 生产模式:与 KubeBlocks 集成,用于托管数据库操作符。
- 持久化:为检索增强生成(RAG)存储和输入目录提供可配置的持久卷声明(PVC)。
有关详细信息,请参阅 Kubernetes / Helm 部署。
多站点与离线部署
LightRAG 支持复杂的网络场景:
- 离线/隔离环境:使用
requirements-offline.txt和预下载的tiktoken缓存Dockerfile:62-66。 - 本地推理:与
vLLM集成,用于本地嵌入向量和重排序服务,避免依赖外部 APIdocs/DockerDeployment.md:116-123。
有关详细信息,请参阅 多站点与离线部署。
基础设施配置映射
下表将基础设施需求映射到管理这些需求的代码变量和文件。
| 需求 | 代码变量 / 实体 | 实现文件 |
|---|---|---|
| 运行时目标 | LIGHTRAG_RUNTIME_TARGET | scripts/setup/setup.sh:134-143 |
| API 端口 | PORT(默认值:9621) | docker-compose.yml:10 |
| 数据持久化 | WORKING_DIR | Dockerfile:103 |
| SSL/TLS | SSL、SSL_CERTFILE、SSL_KEYFILE | scripts/setup/lib/file_ops.sh:85-107 |
| 数据库服务 | STORAGE_SERVICES 数组 | scripts/setup/setup.sh:56-65 |
| 本地推理 | VLLM_SERVICES 数组 | scripts/setup/setup.sh:51-54 |
基础设施依赖流程
来源: docker-compose-full.yml:5-49、docs/InteractiveSetup.md:122-152、scripts/setup/lib/file_ops.sh:155-197
来源:
scripts/setup/setup.sh:1-255Makefile:1-100Dockerfile:1-112docker-compose.yml:1-28docs/InteractiveSetup.md:1-203docs/DockerDeployment.md:1-230