用 Flowise 本地部署一个可视化 AI Agent 工作流平台

面向想把 AI Agent 工作流跑起来的产品、运营和项目负责人,使用 Flowise 的 npm 或 Docker 路径完成本地部署、环境配置、启动验证和安全边界检查,并给出可复制给 AI Agent 的部署任务书。

AI Agent Flowise GitHub 工作流自动化 自托管
浏览 485
用 Flowise 本地部署一个可视化 AI Agent 工作流平台封面

Flowise 是一个面向 AI Agent 和 LLM 应用的可视化工作流项目。对产品经理、运营、项目负责人和初级开发者来说,它的价值不是让你立刻写复杂代码,而是先在本机或内网把“浏览器页面、Flowise 服务、LLM API、工具或向量能力”这条链路跑起来。

本文只写本地和内网演示路径,不建议直接把 Flowise 裸露到公网。你可以把这篇教程的正文复制给自己的 AI Agent,让它按步骤在你的电脑上检查环境、安装、启动、验证,并输出风险清单。

你会做成什么

你会得到一个本地可访问的 Flowise 实例:

  • 主路径:使用 npm 快速启动 Flowise。
  • 补充路径:使用 Docker Compose 作为团队或服务器上的更稳定路径。
  • 默认访问地址:http://localhost:3000
  • 默认数据库说明:官方环境变量文档显示 DATABASE_TYPE 默认是 sqliteDATABASE_PATH 默认是 your-home-dir/.flowise
  • 安全边界:只做本机或内网演示,不公网裸奔;上线另做认证、密钥、反向代理、HTTPS、备份和限流。
自制 Flowise 本地部署流程示意图
自制 Flowise 本地部署流程示意图

上图是本文自制流程示意图,不是 Flowise 官方界面截图,也不是伪造的软件截图。它只表达本地部署时几个关键对象的关系:

  • Local Browser:你在浏览器里打开 http://localhost:3000
  • Flowise Server:本机或内网服务器上运行的 Flowise 服务。
  • LLM API:后续工作流需要调用的模型服务接口,API Key 要单独保护。
  • Vector / Tools:后续可接入的向量库、检索、工具节点或自动化能力。

适合谁

这篇教程适合:

  • 想先看见一个可视化 AI Agent 工作流平台跑起来的产品经理。
  • 想给运营流程、内容流程或内部工具做 AI 自动化验证的运营人员。
  • 想给团队搭一个本地或内网演示环境的项目负责人。
  • 会看命令行但不想直接进入源码开发的初级开发者。
  • 想把部署任务交给自己的 AI Agent,但需要清楚安全边界的人。

这篇教程不适合直接当成公网生产部署手册。生产部署需要另做 Nginx、HTTPS、备份、日志、限流、访问控制、升级回滚和密钥治理。

开始前准备

本文以 Windows PowerShell 为主。macOS 或 Linux 用户可以把路径换成用户主目录下的同名目录。

官方来源包括:

本文制作时的页面快照显示 Flowise GitHub 为 54.3k stars,Latest release 为 [email protected],日期是 2026-06-25。

准备项:

  • NodeJS:官方 Get Started 页面说明支持 Node v18.15.0v20 及以上版本。
  • npm:用于主路径快速安装。
  • 浏览器:用于打开 http://localhost:3000
  • Docker Desktop、Git 和 Docker Compose:只在你选择 Docker Compose 补充路径时需要。

本文作者没有在当前草稿制作任务中运行 Flowise、安装第三方依赖、clone Flowise 仓库或运行第三方项目代码。下面的命令是给读者在自己机器上执行的复现路径。

第一步:认识这个开源项目

Flowise 的 GitHub README 和官方 Get Started 文档都把它定位为可视化构建 AI Agent 的项目。Quick Start 给出的 npm 路径很短:

npm install -g flowise
npx flowise start

打开地址是:

http://localhost:3000

Docker Compose 路径则是:

clone Flowise -> 进入 docker folder -> 复制 .env.example 为 .env -> docker compose up -d -> 打开 http://localhost:3000

先理解这两条路径的区别:

路径适合场景注意点
npm 快速启动个人本机试用、快速演示npm install -g flowise 会修改全局 npm 环境
Docker Compose团队内网、服务器演示、配置可沉淀需要 Git、Docker Desktop 和 Docker Compose 可用

第一版建议先走 npm,确认你理解 Flowise 的启动和访问方式后,再考虑 Docker Compose。

第二步:准备本地或服务器环境

先创建一个用户目录下的演示目录。不要把演示项目直接放在盘符根目录、工作区总根或真实生产项目目录里。

执行位置:Windows PowerShell。

$FlowiseLab = Join-Path $env:USERPROFILE "ai-lab\flowise-local"
New-Item -ItemType Directory -Path $FlowiseLab -Force
Set-Location $FlowiseLab
Get-Location

预期结果:

  • 终端当前目录显示为类似 $env:USERPROFILE\ai-lab\flowise-local 的用户目录路径。
  • 这个目录只用于本地演示,不要放生产密钥、客户资料或真实业务数据。

验证方法:

Test-Path $FlowiseLab

如果返回 True,说明演示目录已经存在。

检查 Node 和 npm:

node -v
npm -v

预期结果:

  • node -v 返回 v18.15.0v20.xv21.xv22.x 等更高版本。
  • npm -v 返回一个 npm 版本号。

验证 Node 版本:

node -e "const v=process.versions.node; console.log(v)"

如果 Node 版本不满足要求,先安装或切换 Node 版本,再继续。公司电脑、受管电脑或权限不确定的环境,切换 Node 版本前要先确认 IT 或团队规则。

如果你准备使用 Docker Compose 路径,还要先做这些检查:

git --version
docker --version
docker compose version
docker info | Select-String "Server Version"

预期结果:

  • git --version 返回 Git 版本。
  • docker --version 返回 Docker 客户端版本。
  • docker compose version 返回 Docker Compose 版本。
  • docker info 能读取到 Docker Server 信息,说明 Docker Desktop 已启动。

如果 docker info 提示无法连接 Docker daemon,先启动 Docker Desktop,等它进入 Running 状态后再继续。

第三步:安装项目

主路径使用 npm 快速安装。注意:npm install -g flowise 会修改全局 npm 环境。公司电脑、权限不确定、已经有严格 Node 版本管理或不想影响全局环境时,先暂停并确认,不要让 AI Agent 直接执行。

执行位置:$env:USERPROFILE\ai-lab\flowise-local

Set-Location $FlowiseLab
npm install -g flowise

预期结果:

  • npm 安装过程正常结束,没有 ERR! 级别错误。
  • 本机全局 npm 环境中出现 flowise 包。

验证方法:

npm list -g flowise --depth=0

如果能看到 flowise 条目,说明全局安装已经完成。这里不需要 clone Flowise 仓库,也不需要运行 Flowise 源码。

Docker Compose 补充路径需要 clone 官方仓库。执行 clone 前先确认你确实要走 Docker 路径,并确认 Git、Docker Desktop 和 Docker Compose 前置检查已经通过。

执行位置:用户目录下的 ai-lab

$AiLab = Join-Path $env:USERPROFILE "ai-lab"
$RepoRoot = Join-Path $AiLab "Flowise"
New-Item -ItemType Directory -Path $AiLab -Force
Set-Location $AiLab
git clone https://github.com/FlowiseAI/Flowise.git
Set-Location (Join-Path $RepoRoot "docker")
Copy-Item ".env.example" ".env"

预期结果:

  • 本机出现 $env:USERPROFILE\ai-lab\Flowise
  • 当前目录是 $env:USERPROFILE\ai-lab\Flowise\docker
  • docker 目录里有一份 .env

验证方法:

Get-Location
Test-Path ".env"

第四步:配置必要参数

官方环境变量文档列出这些和本地部署直接相关的变量:

变量默认值或用途本教程建议
PORT默认 3000本机演示先用默认值,端口冲突时再改
DATABASE_TYPE默认 sqlite本地演示使用默认 sqlite 更简单
DATABASE_PATH默认 your-home-dir/.flowise知道数据会落在用户主目录下,后续备份要关注它
CORS_ORIGINS限制跨域 HTTP 调用来源内网或生产部署时收紧来源
IFRAME_ORIGINS限制 iframe 嵌入来源不需要嵌入时保持严格

Flowise 的 App-level Auth 文档列出 APP_URLJWT_AUTH_TOKEN_SECRETJWT_REFRESH_TOKEN_SECRETEXPRESS_SESSION_SECRET 等配置项,并说明 EXPRESS_SESSION_SECRET 默认值不适合生产。

secret 不要让 AI Agent 生成后直接发到聊天记录里。更稳妥的做法是由你本人在本机终端执行下面命令,把值写入本地受控 .env.flowise.local 文件;如果让 Agent 代执行,它只能报告文件路径,不能回显具体值。

执行位置:$env:USERPROFILE\ai-lab\flowise-local

$FlowiseLab = Join-Path $env:USERPROFILE "ai-lab\flowise-local"
New-Item -ItemType Directory -Path $FlowiseLab -Force | Out-Null
$LocalEnv = Join-Path $FlowiseLab ".env.flowise.local"

$secret1 = node -e "process.stdout.write(require('crypto').randomBytes(32).toString('hex'))"
$secret2 = node -e "process.stdout.write(require('crypto').randomBytes(32).toString('hex'))"
$secret3 = node -e "process.stdout.write(require('crypto').randomBytes(32).toString('hex'))"

$lines = @(
  "APP_URL=http://localhost:3000",
  "JWT_AUTH_TOKEN_SECRET=$secret1",
  "JWT_REFRESH_TOKEN_SECRET=$secret2",
  "EXPRESS_SESSION_SECRET=$secret3"
)

$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllLines($LocalEnv, $lines, $utf8NoBom)
Remove-Variable secret1, secret2, secret3, lines
Write-Output "Flowise local env saved to: $LocalEnv"

预期结果:

  • 终端只输出 .env.flowise.local 文件路径。
  • 不把真实 secret 打印到聊天记录、截图或公开文档里。
  • 本地目录中生成 .env.flowise.local

验证方法:

Test-Path $LocalEnv

如果你选择 Docker Compose 路径,可以把同类变量写入 Flowise 仓库 docker\.env。不要把 .env 提交到公开仓库,也不要把真实值复制给 AI Agent 作为聊天内容。

如果端口 3000 被占用,可以临时改端口:

$env:PORT = "3001"

预期结果:

  • Flowise 改用 3001 端口。
  • 浏览器访问地址变为 http://localhost:3001

注意:这个 $env:PORT 只对当前 PowerShell 进程和它启动的子进程生效。团队部署或服务器部署应该把环境变量写进受控的启动配置或 Docker .env,不要只靠手工终端窗口。

第五步:启动服务

npm 路径启动前,可以把 .env.flowise.local 读入当前 PowerShell 进程:

$FlowiseLab = Join-Path $env:USERPROFILE "ai-lab\flowise-local"
$LocalEnv = Join-Path $FlowiseLab ".env.flowise.local"
Set-Location $FlowiseLab

Get-Content -LiteralPath $LocalEnv | ForEach-Object {
  if ($_ -match "^\s*([^#][^=]+)=(.*)$") {
    [Environment]::SetEnvironmentVariable($matches[1], $matches[2], "Process")
  }
}

npx flowise start

预期结果:

  • 终端进入持续运行状态,不会立刻退出。
  • Flowise 使用默认端口 3000,除非你设置了其他 PORT
  • 浏览器可以打开 http://localhost:3000

停止方法:

在运行 Flowise 的终端按 Ctrl + C

Docker Compose 路径启动:

$RepoRoot = Join-Path $env:USERPROFILE "ai-lab\Flowise"
Set-Location (Join-Path $RepoRoot "docker")
docker compose up -d

预期结果:

  • Docker Compose 后台启动 Flowise 相关容器。
  • 浏览器可以打开 http://localhost:3000

Docker Compose 停止:

docker compose stop

不要随手使用 docker compose down -v,除非你明确知道自己要删除数据卷。

第六步:验证是否成功

浏览器验证:

http://localhost:3000

PowerShell 请求验证。保持 Flowise 启动终端不要关闭,另开一个 PowerShell:

Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsing -TimeoutSec 10 | Select-Object StatusCode

预期结果:

  • 能拿到 HTTP 状态码。
  • 不是连接被拒绝。
  • 不是请求超时。

不同版本的页面响应细节可能变化,本教程不把具体 HTML 文案当作固定验收标准。

如果你设置了 PORT=3001,验证地址改为:

Invoke-WebRequest -Uri "http://localhost:3001" -UseBasicParsing -TimeoutSec 10 | Select-Object StatusCode

Docker Compose 路径还可以检查:

docker compose ps

停止后可以再验证一次:

try {
  Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsing -TimeoutSec 3
} catch {
  "Flowise 已停止或当前端口不可访问"
}

常见问题与排查

Node 版本不符合要求

现象:安装或启动时出现 Node 版本相关错误。

检查命令:

node -v

处理方式:

  • 切换到 Node v18.15.0v20+
  • 切换 Node 版本属于系统环境变更,让 AI Agent 操作前先给你确认。

npm 全局安装权限不足

现象:npm install -g flowise 报权限错误或公司电脑不允许全局安装。

处理方式:

  • 先确认是否允许修改全局 npm 环境。
  • 不确定时不要强行提权安装。
  • 可改走 Docker Compose 路径,但 clone 官方仓库和启动容器前也要先确认。

端口 3000 被占用

检查命令:

netstat -ano | findstr ":3000"

处理方式:

  • 如果你知道占用者是什么,可以先停止对应服务。
  • 如果不确定,不要让 AI Agent 直接杀未知进程。
  • 也可以改用 PORT=3001 启动,并访问 http://localhost:3001

Docker Desktop 没有启动

检查命令:

docker info | Select-String "Server Version"

处理方式:

  • 先启动 Docker Desktop。
  • 等待 Docker Desktop 状态变为 Running。
  • 再执行 docker compose up -d

Docker Compose 找不到 .env

检查命令:

Get-Location
Test-Path ".env"

处理方式:

  • 确认当前目录是 Flowise 仓库根目录下的 docker 目录。
  • 确认已经把 .env.example 复制成 .env

浏览器打不开页面

检查顺序:

node -v
npm list -g flowise --depth=0
Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsing -TimeoutSec 10 | Select-Object StatusCode

处理方式:

  • 先看 Flowise 启动终端是否仍在运行。
  • 再看端口是否改成了 3001 或其他值。
  • Docker 路径下再检查 docker compose ps

不要照搬的部分

这些做法不要照搬:

  • 不要把 http://localhost:3000 改成公网 IP 后直接开放。
  • 不要直接把 3000 端口映射到公网。
  • 不要未设置认证 secret 就拿去团队或生产环境使用。
  • 不要把真实 JWT_AUTH_TOKEN_SECRETJWT_REFRESH_TOKEN_SECRETEXPRESS_SESSION_SECRET、LLM API Key、token 或 cookie 发给 AI Agent 聊天窗口。
  • 不要把 .env.env.flowise.local、截图或日志提交到公开仓库。
  • 不要在没有确认的情况下让 AI Agent 执行全局 npm 安装、clone 大仓库、启动 Docker 容器、停止未知进程或删除数据卷。
  • 不要把本文当成完整生产部署方案。生产部署需要单独设计 Nginx、HTTPS、备份、日志、限流、访问控制、升级回滚和密钥轮换。

后续你在 Flowise 里接入 LLM API 时,把 API Key 当作密码处理:

  • 使用专门的演示 Key,不要使用主账号长期 Key。
  • 给 Key 设置额度、项目范围或调用限制。
  • 不把 Key 写进 Git、截图、Markdown、聊天记录或公开工单。
  • 教别人复现时只写变量名,不写真实值。

内网或生产部署时,还要根据官方环境变量文档收紧:

  • CORS_ORIGINS:限制跨域 HTTP 调用来源。
  • IFRAME_ORIGINS:限制 iframe 嵌入来源。

本机演示可以先不展开复杂配置;内网或生产部署时,应只允许你信任的域名或来源。

交给你的 AI Agent 继续执行

下面这段可以直接复制给你的本地 AI Agent。它的目标是让 Agent 在你的机器上按安全边界执行部署,而不是让它越权安装、暴露公网或改动生产环境。

你是我的本地部署执行 Agent。请帮我在本机部署 Flowise,用于本地或内网演示一个可视化 AI Agent 工作流平台。

目标:
1. 优先使用 npm 快速启动路径。
2. 默认访问 http://localhost:3000。
3. 默认演示目录使用当前用户目录下的 ai-lab/flowise-local。Windows 下使用 $env:USERPROFILE\ai-lab\flowise-local,不要使用盘符根目录。
4. 如果 npm 路径失败,再提出 Docker Compose 备选方案;执行 git clone 官方仓库、启动 Docker 容器或修改 .env 前必须先征求我确认。
5. 不要公网暴露 Flowise,不要配置公网隧道,不要 SSH,不要上传或导入任何内容到网站。
6. 不要读取、记录、截图或回显我的真实 LLM API Key、JWT/session secret、token、cookie、生产数据库或客户资料。

官方来源只使用:
- https://github.com/FlowiseAI/Flowise
- https://docs.flowiseai.com/getting-started
- https://docs.flowiseai.com/configuration/environment-variables
- https://docs.flowiseai.com/configuration/authorization/app-level

执行步骤:
1. 检查当前操作系统、PowerShell 或终端环境、node -v、npm -v。
2. 判断 Node 是否满足 Flowise 要求:v18.15.0 或 v20+。
3. 创建本地演示目录:Windows 使用 $env:USERPROFILE\ai-lab\flowise-local;非 Windows 使用用户主目录下的 ai-lab/flowise-local。
4. 在执行 npm install -g flowise 前,明确告诉我它会修改全局 npm 环境;公司电脑、权限不确定或 Node 环境受管理时,必须等待我确认。
5. secret 生成必须收紧:优先让我本人在本机终端执行生成命令并自行保存;如果我授权你代执行,只能写入本地受控 .env.flowise.local 或 Docker .env,并只报告文件路径,不能在聊天记录里回显真实值。
6. 执行 npx flowise start。
7. 另开检查命令访问 http://localhost:3000,至少验证它不是连接失败或超时。
8. 如果端口 3000 被占用,不要直接杀未知进程;先报告占用情况,建议改用 PORT=3001。
9. 如果切换到 Docker Compose 路径,先执行并报告 git --version、docker --version、docker compose version、docker info 检查结果;Docker Desktop 未启动时先停止并提示我启动。
10. Docker 路径使用当前用户目录下的 ai-lab/Flowise,不要 clone 到盘符根目录、工作区总根、真实生产项目目录或客户项目目录。
11. 输出最终报告:执行过的命令、执行位置、预期结果、实际结果、访问地址、停止方法、安全风险、下一步建议。不要输出任何真实 secret 或 API Key。

验收标准:
- 我能在浏览器打开 http://localhost:3000 或你明确告知的替代端口。
- 你没有公网暴露服务。
- 你没有泄露任何 API Key、JWT/session secret、token 或 cookie。
- 你明确说明 Flowise 是否仍在运行,以及如何停止它。
485