Langflow私有化部署:内网安装完全指南
概述
在企业级AI应用开发中,数据安全和网络隔离是首要考虑因素。Langflow作为LangChain的可视化界面,提供了强大的AI工作流设计能力。本文将详细介绍如何在完全隔离的内网环境中部署Langflow,确保企业数据不出域,同时享受完整的AI开发体验。
环境准备
系统要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核及以上 |
| 内存 | 8GB | 16GB及以上 |
| 存储 | 20GB | 50GB及以上 |
| 网络 | 内网千兆 | 内网万兆 |
软件依赖
# 必需组件
Docker 20.10+
Docker Compose 2.0+
Python 3.8+ (可选,用于自定义构建)
# 可选组件
PostgreSQL 14+ (生产环境推荐)
Redis 6+ (用于任务队列)
内网部署方案
方案一:基础Docker部署(推荐)
1. 准备部署文件
创建部署目录结构:
mkdir -p langflow-private/deploy
cd langflow-private/deploy
2. 创建Docker Compose配置
创建 docker-compose.yml 文件:
version: '3.8'
services:
langflow:
image: langflowai/langflow:latest
container_name: langflow-app
ports:
- "7860:7860"
environment:
- LANGFLOW_DATABASE_URL=sqlite:////app/langflow/langflow.db
- LANGFLOW_CONFIG_DIR=/app/langflow
- LANGFLOW_AUTO_LOGIN=true
volumes:
- langflow_data:/app/langflow
restart: unless-stopped
# 可选:内网数据库服务
postgres:
image: postgres:16
container_name: langflow-db
environment:
POSTGRES_USER: langflow
POSTGRES_PASSWORD: langflow123
POSTGRES_DB: langflow
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
langflow_data:
postgres_data:
3. 创建环境配置文件
创建 .env 文件:
# Langflow 配置
LANGFLOW_SUPERUSER=admin
LANGFLOW_SUPERUSER_PASSWORD=admin123
LANGFLOW_AUTO_LOGIN=true
# 数据库配置(如果使用PostgreSQL)
POSTGRES_USER=langflow
POSTGRES_PASSWORD=langflow123
POSTGRES_DB=langflow
LANGFLOW_DATABASE_URL=postgresql://langflow:langflow123@postgres:5432/langflow
4. 启动服务
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose logs -f
方案二:完全离线部署
1. 准备离线镜像
在内网环境中,需要提前下载所有依赖镜像:
# 在外网环境中拉取镜像
docker pull langflowai/langflow:latest
docker pull postgres:16
# 保存镜像为tar文件
docker save -o langflow-image.tar langflowai/langflow:latest
docker save -o postgres-image.tar postgres:16
# 在内网环境中加载镜像
docker load -i langflow-image.tar
docker load -i postgres-image.tar
2. 自定义Dockerfile
创建自定义Dockerfile以包含所有内网依赖:
FROM langflowai/langflow:latest
# 设置内网镜像源
RUN echo "[global]" > /etc/pip.conf && \
echo "index-url = http://internal-pypi.example.com/simple" >> /etc/pip.conf && \
echo "trusted-host = internal-pypi.example.com" >> /etc/pip.conf
# 添加内网证书(如果需要)
COPY internal-ca.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
WORKDIR /app
# 暴露端口
EXPOSE 7860
CMD ["python", "-m", "langflow", "run", "--host", "0.0.0.0", "--port", "7860"]
3. 构建自定义镜像
docker build -t internal/langflow:1.0.0 .
网络配置
内网访问配置
防火墙规则
| 端口 | 协议 | 方向 | 用途 | 建议 |
|---|---|---|---|---|
| 7860 | TCP | 入站 | Langflow Web界面 | 限制内网IP段 |
| 5432 | TCP | 入站 | PostgreSQL数据库 | 仅限应用服务器 |
| 6379 | TCP | 入站 | Redis缓存 | 仅限应用服务器 |
数据持久化配置
存储卷配置
volumes:
langflow_data:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.100,rw
device: ":/data/langflow"
postgres_data:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.100,rw
device: ":/data/postgres"
备份策略
#!/bin/bash
# 备份脚本
BACKUP_DIR="/backup/langflow"
DATE=$(date +%Y%m%d_%H%M%S)
# 备份数据库
docker exec langflow-db pg_dump -U langflow langflow > $BACKUP_DIR/db_$DATE.sql
# 备份应用数据
tar -czf $BACKUP_DIR/app_$DATE.tar.gz /data/langflow
# 保留最近7天备份
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
安全配置
身份认证强化
environment:
- LANGFLOW_AUTH_TYPE=jwt
- LANGFLOW_JWT_SECRET=your-internal-secret-key
- LANGFLOW_SUPERUSER=admin
- LANGFLOW_SUPERUSER_PASSWORD=strong-password-here
- LANGFLOW_USER_AUTO_CREATE=false
网络隔离
# 创建内部网络
docker network create --internal langflow-internal
# 在docker-compose中添加网络配置
networks:
internal:
internal: true
driver: bridge
监控与维护
健康检查配置
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7860/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
日志管理
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
故障排除
常见问题解决
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法访问7860端口 | 防火墙限制 | 检查内网防火墙规则 |
| 数据库连接失败 | 网络隔离 | 确保数据库网络可达 |
| 镜像拉取失败 | 镜像仓库不可达 | 使用离线镜像部署 |
诊断命令
# 检查容器状态
docker ps -a
docker logs langflow-app
# 检查网络连通性
docker exec langflow-app ping postgres
docker exec langflow-app curl -I http://localhost:7860
# 检查资源使用
docker stats langflow-app
性能优化
资源限制配置
deploy:
resources:
limits:
cpus: '2'
memory: 4G
reservations:
cpus: '1'
memory: 2G
数据库优化
-- PostgreSQL性能优化
ALTER DATABASE langflow SET work_mem = '16MB';
ALTER DATABASE langflow SET maintenance_work_mem = '256MB';
ALTER DATABASE langflow SET random_page_cost = 1.1;
升级维护
版本升级流程
总结
Langflow内网私有化部署为企业提供了安全可靠的AI工作流开发环境。通过合理的网络规划、资源分配和安全配置,可以构建出高性能、高可用的内网AI开发平台。本文提供的部署方案经过实践验证,能够满足大多数企业的内网部署需求。
关键优势:
- 数据完全内网隔离,确保安全合规
- 支持离线部署,适应各种网络环境
- 灵活的扩展性,可根据业务需求调整
- 完善的监控维护体系,保障服务稳定性
通过遵循本文的部署指南,企业可以快速建立起属于自己的AI应用开发平台,加速AI技术在内网环境中的落地应用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



