Skip to content
Go back

n8n AI 工作流(一)使用 Docker Compose 部署和测试

| 0 Views Edit page

前言

Steam.Cash 导航站将使用 n8n 配置信息收集工作流。

n8n 是一个图形化的低代码自动化流程平台,在 AI 出现之前它最初的用途是自动化你的一些日常工作流。


方案概述

  1. 安装 Docker 环境
  2. 从官方仓库获取 docker-compose.yaml 文件
  3. 配置环境变量
  4. 启动容器并配置认证信息
  5. 测试工作流运行正常

操作步骤

一、安装 Docker 环境

参考:Ubuntu 20.04 从官方源安装最新的 Docker

二、从官方仓库获取 docker-compose.yaml 文件

官方仓库:n8n-io/n8n-hosting

在服务器上下载:

git clone https://github.com/n8n-io/n8n-hosting.git

我这里选择了 withPostgres 模式进行安装:

# 拷贝到当前的 n8n 目录中
cp ./n8n-hosting/docker-compose/withPostgres/* ./n8n/

三、编辑环境变量

cd n8n
vi .env

只要编辑数据库连接信息即可:

POSTGRES_USER=postgres
POSTGRES_PASSWORD=changeYourPassword
POSTGRES_DB=n8n

POSTGRES_NON_ROOT_USER=n8n
POSTGRES_NON_ROOT_PASSWORD=changeYourPassword

四、启动容器并配置认证信息

n8n/ 目录中执行:

docker-compose up -d

部署完成
端口是 5678,不过访问页面 http://IP:5678 的话会报错,因为还没有启用 SSL:
未启用 SSL 报错

错误信息:

Your n8n server is configured to use a secure cookie, however you are either visiting this via an insecure URL, or using Safari.

To fix this, please consider the following options: Setup TLS/HTTPS (recommended), or If you are running this locally, and not using Safari, try using localhost instead If you prefer to disable this security feature (not recommended), set the environment variable N8N_SECURE_COOKIE to false

我这里简单用 Cloudflare 做下反代来开启 SSL:
DNS 解析并开启小云朵
选择 更改端口
更改端口
将(指向服务器的)目标端口改为 5678
改为 5678 端口

注意此时 SSL/TLS 模式需要为灵活:
SSL/TLS 模式

保存后稍等片刻再访问 https://your.domain.com 即可:
填写认证信息
填写完成后即可进入控制面板:
部署完成

如果你使用了 Nginx 配置 SSL 证书,请注意需要添加这两项:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';

否则在运行流程的时候会出现下面的错误:

❌ Problem running workflow
Lost connection to the server

五、测试工作流运行正常

选择首页的 Test a simple AI Agent example
Test a simple AI Agent example
按照提示输入 hi 之后报错了:
暂时报错

错误信息:

Error in sub-node ‘OpenAI Model’

错误日志:

NodeOperationError: Error in sub-node OpenAI Model at ExecuteContext.getInputConnectionData (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/node-execution-context/utils/get-input-connection-data.ts:302:11) at processTicksAndRejections (node:internal/process/task_queues:105:5) at ExecuteContext.getInputConnectionData (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/node-execution-context/execute-context.ts:203:10) at getChatModel (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_944c224e2f203516e58b6afc03783333/node_modules/@n8n/n8n-nodes-langchain/nodes/agents/Agent/agents/ToolsAgent/common.ts:269:26) at ExecuteContext.toolsAgentExecute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_944c224e2f203516e58b6afc03783333/node_modules/@n8n/n8n-nodes-langchain/nodes/agents/Agent/agents/ToolsAgent/V1/execute.ts:44:19) at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/@n8n+n8n-nodes-langchain@file+packages+@n8n+nodes-langchain_944c224e2f203516e58b6afc03783333/node_modules/@n8n/n8n-nodes-langchain/nodes/agents/Agent/V1/AgentV1.node.ts:461:11) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1212:9) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1582:27 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2158:11

这里其实是由于认证没过,需要新增认证信息,双击出错的 OpenAI Model 节点,然后点击 Create new credential
新增认证信息
由于 DeepSeek 兼容 OpenAI,因此这里新增使用 DeepSeek API 的认证信息即可:

DeepSeek 的 API 可以去官网申请,起充为 10 元,还是很便宜的:deepseek 开放平台

DeepSeek 认证信息
之后选择 deepseek-chat 模型后保存:
选择模型

再次测试输入 hi
对话框有回应
获得输出:

Welcome to n8n. Let's start with the first step to give me memory: "Click the + button on the agent that says 'memory' and choose 'Simple memory.' Just tell me once you've done that."

运行成功,至此 n8n 的部署和测试完成。


Edit page