From 20bf2449e0719b67fa383baafcefa9eab6a2c834 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=98=89=E5=AE=87=20=E5=88=98?= <487954186@qq.com>
Date: Thu, 11 Sep 2025 14:00:33 +0800
Subject: [PATCH] first commit
---
.dockerignore | 8 +
Dockerfile | 25 +
README.md | 36 +-
deploy.sh | 41 ++
docker-compose.yml | 19 +
docs/ai-center/functions.md | 260 +---------
docs/ai-center/join.md | 6 +-
docs/assets/images/05.n8n指南.md | 490 +++++++++++++++++++
docs/assets/images/二维码.jpg | Bin 0 -> 158690 bytes
docs/assets/images/云平台1.png | Bin 0 -> 846230 bytes
docs/assets/images/云平台2.png | Bin 0 -> 156676 bytes
docs/assets/images/云平台3.png | Bin 0 -> 139012 bytes
docs/assets/images/复制.png | Bin 0 -> 159764 bytes
docs/assets/images/工具箱.png | Bin 0 -> 6470052 bytes
docs/assets/images/节点分类.png | Bin 0 -> 6470052 bytes
docs/assets/images/选择名字.png | Bin 0 -> 77573 bytes
docs/assets/images/选择社区.png | Bin 0 -> 84687 bytes
docs/assets/images/选择设置.png | Bin 0 -> 117670 bytes
docs/assets/images/配置画面.png | Bin 0 -> 74302 bytes
docs/assets/images/黏贴.png | Bin 0 -> 286514 bytes
docs/installation/local-deployment.md | 2 +
docs/installation/localization.md | 227 +--------
docs/installation/quick-start.md | 6 +
docs/learning/common-nodes.md | 2 +
docs/learning/community-nodes.md | 16 +
docs/learning/templates.md | 6 +
health-check.sh | 24 +
restart.sh | 9 +
start.sh | 11 +
stop.sh | 8 +
快速开始.md | 670 ++++++++++++++++++++++++++
31 files changed, 1390 insertions(+), 476 deletions(-)
create mode 100644 .dockerignore
create mode 100644 Dockerfile
create mode 100644 deploy.sh
create mode 100644 docker-compose.yml
create mode 100644 docs/assets/images/05.n8n指南.md
create mode 100644 docs/assets/images/二维码.jpg
create mode 100644 docs/assets/images/云平台1.png
create mode 100644 docs/assets/images/云平台2.png
create mode 100644 docs/assets/images/云平台3.png
create mode 100644 docs/assets/images/复制.png
create mode 100644 docs/assets/images/工具箱.png
create mode 100644 docs/assets/images/节点分类.png
create mode 100644 docs/assets/images/选择名字.png
create mode 100644 docs/assets/images/选择社区.png
create mode 100644 docs/assets/images/选择设置.png
create mode 100644 docs/assets/images/配置画面.png
create mode 100644 docs/assets/images/黏贴.png
create mode 100644 health-check.sh
create mode 100644 restart.sh
create mode 100644 start.sh
create mode 100644 stop.sh
create mode 100644 快速开始.md
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..9c96530
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,8 @@
+.git
+.gitignore
+README.md
+Dockerfile
+docker-compose.yml
+.dockerignore
+site/
+*.log
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..afe37e5
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,25 @@
+# 使用官方Python镜像
+FROM python:3.9-slim
+
+# 设置工作目录
+WORKDIR /app
+
+# 安装系统依赖
+RUN apt-get update && apt-get install -y \
+ git \
+ && rm -rf /var/lib/apt/lists/*
+
+# 安装Python依赖
+RUN pip install --no-cache-dir \
+ mkdocs==1.5.3 \
+ mkdocs-material==9.4.8 \
+ pymdown-extensions==10.3.1
+
+# 复制项目文件
+COPY . .
+
+# 暴露端口
+EXPOSE 8000
+
+# 启动命令
+CMD ["mkdocs", "serve", "--dev-addr=0.0.0.0:8000"]
diff --git a/README.md b/README.md
index 67b3537..fd5fe06 100644
--- a/README.md
+++ b/README.md
@@ -72,13 +72,13 @@ https://your-domain.github.io/n8n-guide
如果您希望在本地运行或贡献内容,请按以下步骤操作:
-#### 环境要求
+#### 方式一:Python直接运行
+**环境要求**:
- Python 3.7+
- pip 包管理器
-#### 安装步骤
-
+**安装步骤**:
1. **克隆项目**
```bash
git clone https://github.com/your-username/n8n-guide.git
@@ -100,6 +100,36 @@ https://your-domain.github.io/n8n-guide
4. **访问文档**
打开浏览器访问 `http://127.0.0.1:8000`
+#### 方式二:Docker部署(推荐)
+
+**环境要求**:
+- Docker
+- Docker Compose
+
+**一键部署**:
+```bash
+# 启动服务
+./start.sh
+
+# 或者使用Docker Compose
+docker-compose up -d
+```
+
+**访问文档**:
+打开浏览器访问 `http://localhost:8000`
+
+#### 公网服务器部署
+
+**部署到公网服务器**:
+```bash
+# 上传项目文件到服务器
+# 运行部署脚本
+./deploy.sh
+```
+
+**访问地址**:
+`http://your-server-ip:8000`
+
#### 构建静态站点
```bash
diff --git a/deploy.sh b/deploy.sh
new file mode 100644
index 0000000..f269ba1
--- /dev/null
+++ b/deploy.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# n8n指南部署脚本
+# 适用于公网服务器部署
+
+echo "🚀 开始部署n8n指南..."
+
+# 检查Docker是否安装
+if ! command -v docker &> /dev/null; then
+ echo "❌ Docker未安装,请先安装Docker"
+ exit 1
+fi
+
+# 检查Docker Compose是否安装
+if ! command -v docker-compose &> /dev/null; then
+ echo "❌ Docker Compose未安装,请先安装Docker Compose"
+ exit 1
+fi
+
+# 停止现有容器
+echo "🛑 停止现有容器..."
+docker-compose down
+
+# 构建并启动服务
+echo "🔨 构建并启动服务..."
+docker-compose up -d --build
+
+# 检查服务状态
+echo "📊 检查服务状态..."
+sleep 5
+docker-compose ps
+
+# 检查端口占用
+echo "🔍 检查端口8000状态..."
+if netstat -tlnp | grep :8000 > /dev/null; then
+ echo "✅ 服务已启动,访问地址:http://your-server-ip:8000"
+else
+ echo "❌ 服务启动失败,请检查日志:docker-compose logs"
+fi
+
+echo "🎉 部署完成!"
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..ed1cbaa
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,19 @@
+version: '3.8'
+
+services:
+ n8n-guide:
+ build: .
+ container_name: n8n-guide
+ ports:
+ - "8000:8000"
+ volumes:
+ - .:/app
+ restart: unless-stopped
+ environment:
+ - PYTHONUNBUFFERED=1
+ networks:
+ - n8n-guide-network
+
+networks:
+ n8n-guide-network:
+ driver: bridge
diff --git a/docs/ai-center/functions.md b/docs/ai-center/functions.md
index 1d5a059..a6c0df2 100644
--- a/docs/ai-center/functions.md
+++ b/docs/ai-center/functions.md
@@ -1,4 +1,4 @@
-# AI卓越中心:职能与支持
+# n8n迷你Hackathon小组:职能与支持
## 📚 学习资源
@@ -6,258 +6,24 @@
- **中文文档**:[n8n中文文档](https://docs.n8ncn.io)
- **快速开始**:[n8n.io](https://n8n.io)
-我们的AI卓越中心致力于为用户提供全方位的n8n技术支持和服务,助力个人和企业在自动化领域取得卓越成就。
+n8n迷你Hackathon小组是一个非盈利的学习交流组织,致力于为n8n用户提供技术支持和学习资源。
## 🎯 核心职能
-### 技术支持服务
+### 技术支持
+提供专业的技术支持,解决用户在使用n8n过程中遇到的问题。
-
-
-
🛠️
-
专业技术支持
-
提供n8n部署、配置、优化等全方位技术支持,解决您在使用过程中遇到的各种技术问题
-
-
-
-
📋
-
项目咨询服务
-
为您提供项目规划、设计和实施的专业咨询,确保自动化项目的顺利进行和成功落地
-
-
-
-
🎓
-
培训教育服务
-
定期举办线上线下培训课程,帮助用户掌握n8n使用技巧和行业最佳实践
-
-
-
-
🌟
-
社区建设管理
-
维护和管理技术社区资源,促进用户交流合作,共同推动n8n生态发展
-
-
+### 项目咨询
+为用户提供项目规划、设计和实施的咨询服务,确保项目的顺利进行。
-## 🔧 技术支持范围
+### 培训服务
+定期举办线上或线下的培训课程,帮助用户掌握n8n的使用技巧和最佳实践。
-### 部署和配置支持
+### 社区建设
+维护和管理社区资源,促进用户之间的交流与合作,共同推动n8n的发展。
-| 支持类型 | 服务内容 | 响应时间 |
-|----------|----------|----------|
-| **环境部署** | Docker、Kubernetes、云平台部署指导 | 4小时内 |
-| **系统配置** | 数据库连接、SSL证书、负载均衡配置 | 2小时内 |
-| **性能优化** | 系统调优、资源配置、监控设置 | 24小时内 |
-| **故障排查** | 问题诊断、日志分析、解决方案 | 1小时内 |
+## 🤝 加入我们
-### 工作流设计支持
+我们是一个开放的学习社区,欢迎所有对n8n感兴趣的朋友加入!
-**需求分析(业务理解+技术评估)** → **架构设计(流程设计+节点选择)** → **原型开发(快速原型+功能验证)** → **测试验证(单元测试+集成测试)** → **部署上线(生产部署+用户培训)** → **运维监控(性能监控+持续优化)**
-
-### AI集成专业服务
-
-**支持的AI技术栈**:
-- **大语言模型**: GPT、Claude、Gemini、国产大模型
-- **向量数据库**: Pinecone、Weaviate、Chroma
-- **知识库构建**: RAG、文档解析、智能问答
-- **多模态AI**: 图像识别、语音处理、视频分析
-
-**MCP协议支持**:
-- MCP服务器搭建和配置
-- 工作流封装为AI工具
-- 智能代理能力构建
-- 多Agent协作系统
-
-## 📚 培训教育体系
-
-### 分层培训方案
-
-=== "入门培训"
- **目标用户**: 零基础业务人员
-
- **课程内容**:
- - n8n基础概念和界面操作
- - 常用节点使用方法
- - 简单工作流创建
- - 模板应用实战
-
- **培训形式**: 在线直播 + 实操练习
- **培训时长**: 8小时(分4次进行)
- **证书**: 入门级认证证书
-
-=== "进阶培训"
- **目标用户**: 有基础经验的技术人员
-
- **课程内容**:
- - 高级节点和功能
- - 复杂工作流设计
- - 错误处理和调试
- - 性能优化方法
-
- **培训形式**: 线下面授 + 项目实战
- **培训时长**: 16小时(2天集中培训)
- **证书**: 应用级认证证书
-
-=== "专家培训"
- **目标用户**: 技术架构师、团队负责人
-
- **课程内容**:
- - 企业级部署架构
- - 安全和权限管理
- - 监控和运维体系
- - 团队协作最佳实践
-
- **培训形式**: 定制化企业内训
- **培训时长**: 32小时(个性化安排)
- **证书**: 专家级认证证书
-
-### 在线学习平台
-
-**学习管理系统(LMS)功能**:
-- 📹 视频课程库
-- 📝 在线练习和作业
-- 🏆 进度跟踪和徽章系统
-- 💬 学员交流论坛
-- 📊 学习分析报告
-
-## 🤝 项目咨询服务
-
-### 咨询服务类型
-
-| 咨询类型 | 服务内容 | 交付物 |
-|----------|----------|--------|
-| **可行性分析** | 技术方案评估、ROI分析 | 可行性报告 |
-| **架构设计** | 系统架构、技术选型 | 架构设计文档 |
-| **实施指导** | 项目管理、质量控制 | 项目计划和里程碑 |
-| **运维支持** | 监控体系、优化建议 | 运维手册和SOP |
-
-### 典型项目案例
-
-=== "企业数据中台"
- **客户**: 某大型制造企业
- **需求**: 整合多个业务系统数据
- **解决方案**:
- - 数据抽取、转换、加载(ETL)工作流
- - 实时数据同步和监控
- - 智能报表自动生成
- **效果**: 数据处理效率提升300%
-
-=== "客户服务自动化"
- **客户**: 某电商平台
- **需求**: 自动化客户咨询处理
- **解决方案**:
- - AI智能客服工作流
- - 多渠道消息统一处理
- - 人工客服协作机制
- **效果**: 客服效率提升200%,满意度提升15%
-
-=== "营销自动化系统"
- **客户**: 某SaaS公司
- **需求**: 营销活动自动化执行
- **解决方案**:
- - 多渠道营销工作流
- - 用户行为分析和标签
- - 个性化内容推送
- **效果**: 营销转化率提升150%
-
-## 🌟 社区建设与管理
-
-### 社区平台
-
-
-
- 5000+
- 社区成员
-
-
- 1000+
- 工作流模板
-
-
- 500+
- 技术问答
-
-
- 50+
- 专家贡献者
-
-
-
-### 社区活动
-
-**定期活动**:
-- 🎯 **月度技术分享**: 每月第二个周六,专家分享最佳实践
-- 🏆 **季度黑客松**: 创新应用开发竞赛
-- 📚 **年度技术大会**: 行业趋势和技术前沿
-- 💡 **工作坊**: 实战演练和深度学习
-
-**社区贡献奖励**:
-- ⭐ **模板贡献奖**: 优质模板分享者获得奖励
-- 🎖️ **专家认证**: 活跃贡献者获得专家徽章
-- 🎁 **年度大奖**: 最佳贡献者获得特别奖励
-
-## 📞 支持渠道和联系方式
-
-### 技术支持渠道
-
-| 支持级别 | 联系方式 | 响应时间 | 适用场景 |
-|----------|----------|----------|----------|
-| **社区支持** | 论坛、QQ群 | 24小时内 | 一般问题咨询 |
-| **标准支持** | 邮件、在线客服 | 4小时内 | 技术问题解决 |
-| **优先支持** | 电话、专线 | 1小时内 | 紧急问题处理 |
-| **专属支持** | 专属顾问 | 30分钟内 | 企业级客户 |
-
-### 服务等级协议(SLA)
-
-**响应时间承诺**:
-- 🟢 **一般问题**: 24小时内响应
-- 🟡 **重要问题**: 4小时内响应
-- 🔴 **紧急问题**: 1小时内响应
-- ⚠️ **关键问题**: 30分钟内响应
-
-**解决时间目标**:
-- 简单问题: 24小时内解决
-- 复杂问题: 72小时内解决
-- 特殊问题: 7个工作日内解决
-
-## 💰 服务价格体系
-
-### 基础服务 (免费)
-
-✅ **包含内容**:
-- 社区技术支持
-- 基础文档和教程
-- 在线学习资源
-- 模板库访问
-
-### 标准服务 (¥2999/月)
-
-✅ **包含内容**:
-- 邮件技术支持
-- 在线培训课程
-- 高级模板库
-- 月度技术分享
-
-### 企业服务 (¥9999/月)
-
-✅ **包含内容**:
-- 专属技术顾问
-- 定制化培训
-- 项目咨询服务
-- 优先技术支持
-
-### 定制服务 (面议)
-
-✅ **包含内容**:
-- 完全定制化解决方案
-- 现场技术支持
-- 专属开发服务
-- 长期技术伙伴关系
-
-!!! info "联系我们获取详细报价"
- 我们会根据您的具体需求提供个性化的服务方案和优惠价格。
-
----
-
-AI卓越中心致力于成为您在自动化转型路上最可靠的技术伙伴!
-
-[上一章:术语表](../reference/glossary.md){ .md-button } [下一章:加入我们](join.md){ .md-button .md-button--primary }
+[扫码加入群聊](join.md){ .md-button .md-button--primary }
\ No newline at end of file
diff --git a/docs/ai-center/join.md b/docs/ai-center/join.md
index c4079a6..ebf83a5 100644
--- a/docs/ai-center/join.md
+++ b/docs/ai-center/join.md
@@ -6,7 +6,11 @@
- **中文文档**:[n8n中文文档](https://docs.n8ncn.io)
- **快速开始**:[n8n.io](https://n8n.io)
-n8n不仅是一个工具,更是一个充满活力的社区。无论您是初学者还是专家,都能在这里找到属于自己的位置,与志同道合的伙伴一起探索自动化的无限可能。
+n8n迷你Hackathon小组是一个开放的学习交流社区。无论您是初学者还是专家,都能在这里找到属于自己的位置,与志同道合的伙伴一起探索自动化的无限可能。
+
+## 📱 扫码加入群聊
+
+
## 🤝 为什么加入我们
diff --git a/docs/assets/images/05.n8n指南.md b/docs/assets/images/05.n8n指南.md
new file mode 100644
index 0000000..1f58f9e
--- /dev/null
+++ b/docs/assets/images/05.n8n指南.md
@@ -0,0 +1,490 @@
+# n8n 工作流学习指南
+
+---
+
+### n8n工作流自动化指南目录
+
+1. #### 引言
+
+ 1.1 背景信息
+ 1.2 目标读者
+ 1.3 目的与价值
+ 1.4 为什么选择n8n
+
+2. #### 安装与配置
+
+ 2.1 云平台试用(无需部署,注册使用)
+ 2.2 本地/私有化部署
+ 2.3 界面介绍
+ 2.4 凭证管理
+ 2.5 n8n汉化
+
+3. #### 学习与使用
+
+ 3.1 常用节点
+ 3.2 基本工作流创建
+ 3.3 避坑指南
+ 3.4 进阶应用 - 模板套用
+ 3.5 进阶应用 - mcp
+ 3.6 进阶应用 - 自然语言编程
+ 3.7 进阶应用 - 社区节点
+
+4. #### 参考资料与术语表
+
+ 4.1 参考资料
+ 4.2 术语表
+
+5. #### AI卓越中心介绍
+
+ 5.1 职能与支持
+ 5.2 加入我们的方式
+
+
+
+## 1. 引言
+
+### 1.1 背景信息:拥抱人工智能浪潮
+
+人工智能正以惊人的速度重塑我们的世界,从根本上改变着商业运营、社会互动和个人生活。它不仅仅是一项技术,更是一场深刻的时代变革。在这场汹涌的浪潮中,自动化、智能化工具成为提升效率、释放潜力、优化决策的关键。本指南将带您深入了解n8n,助您在智能时代乘风破浪。
+
+#### 💡 机遇:赋能与进化
+
+* **企业层面:**
+ * **提升效率与创新:** AI驱动的自动化能够优化业务流程,将员工从重复性劳动中解放出来,从而激发新产品和服务的开发。
+ * **数据洞察与决策:** 强大的海量数据分析能力,为精准的商业决策和市场洞察提供坚实支持。
+* **科研领域:**
+ * 为**基础科学研究**提供强大的分析和模拟工具,**加速科学发现**,开辟**新的研究方向**,并促进**跨学科合作**。
+* **个人层面:**
+ * **职业发展:** 催生了对新技能的需求和大量新兴岗位,促进个人能力升级和职业转型。
+ * **生活智能化:** AI融入日常生活,带来前所未有的便捷与个性化智能体验。
+
+#### ⚠️ 挑战:适应与应对
+
+* **企业层面:**
+ * **高投入与转型成本:** 企业需要投入大量资源进行AI基础设施建设、人才培养和组织架构调整。
+ * **数据安全与伦理:** AI应用中的数据隐私、算法偏见和责任归属问题是必须面对的挑战。
+* **科研领域:**
+ * 面临**计算资源紧缺**、**高水平AI人才竞争**、**高质量数据获取困难**,以及研究成果**转化落地**和**伦理规范**的挑战。
+* **个人层面:**
+ * **人才结构变革:** 部分传统岗位面临被取代的风险,劳动力市场的再培训与技能重塑迫在眉睫。
+ * **技术快速迭代:** AI技术日新月异,要求个人保持持续学习的能力,以快速适应市场变化。
+
+### 1.2 目标读者
+
+* **技术零基础的业务人员**:旨在帮助您**快速入门**,理解 n8n 如何**简化日常重复性工作**,通过**模板和简单工作流**轻松实现业务自动化,显著提升工作效率。
+* **技术支持与开发人员**:旨在帮助您**深入理解 n8n 的部署、配置、运行和维护**,掌握**系统管理、故障排查和团队赋能**的能力,确保 n8n 服务的稳定运行和高效支持。
+
+### 1.3 目的与价值
+
+* **核心目的**:让技术零基础的业务人员和负责技术支持的同事都能**快速上手 n8n**,并充分**利用其强大的自动化能力**。
+
+* **对业务部门的价值**:
+ * **赋能业务用户**:无需编程知识即可**自动化日常任务**,例如邮件处理、数据同步、报告生成等。
+ * **提升核心效率**:通过自动化**节省大量时间**,让团队能更专注于创造价值的核心业务。
+ * **探索自动化潜力**:即使是技术新手也能通过**AI 驱动的自动化模板**和**即时连接应用程序**来发现更多业务价值。
+
+* **对技术部门的价值**:
+ * **灵活与强大**:理解 n8n **自托管**和**低代码**的特性,可以**自定义代码节点,实现无限制**的复杂自动化。
+ * **系统管理与维护**:掌握 **n8n 服务器的部署**(如 npm 或 Docker)、**高级配置**(如环境变量)和**日常维护**,**确保服务的稳定性、安全性与可扩展性**。
+ * **构建AI自动化能力 (MCP)**:深入理解 **Model Context Protocol (MCP)** 如何让 AI 模型以标准化方式与**外部工具和数据源交互**。学习如何**将现有 n8n 工作流封装为 AI 代理可调用的“工具”**,从而**构建强大的端到端智能工作流**。
+ * **高效问题解决与支持**:掌握**常见问题的排查方法**,以及如何有效地**协助非技术同事解决工作流问题**,成为团队内部的 n8n 专家。
+
+### 1.4 为什么选择n8n
+
+低代码平台是赋能全所非技术人员的最优解工具,n8n则是低代码工具中发展性最好的一个。
+
+| **方案/工具** | **无代码 (Dify)** | **低代码 (n8n)** | **传统代码开发(python)** | **智能化代码开发(如Cursor)** |
+| ------------------ | -------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------- | ------------------------------------------------------ |
+| **目标用户** | 业务人员、市场人员、非技术背景的开发者 | IT专业人员、开发者、既懂业务又懂技术的复合型人才 | 专业软件工程师、开发团队 | 开发者、工程师、研究人员 |
+| **开发速度** | 最快,数小时到数天即可构建应用 | 快速,熟练后数小时到数天即可构建应用 | 较慢,数周到数月甚至更长 | 快速,根据AI工具熟练度与剖析问题的能力数天到数星期不等 |
+| **核心理念** | “配置优于编码”,通过可视化界面和预制模块快速搭建。 | “更少代码,更多创造”,通过可视化与少量代码结合,加速开发。 | “代码拥有一切”,通过编写代码实现完全的控制和定制。 | AI赋能编码,提升开发效率与质量 |
+| **灵活性与定制化** | 较低,受限于平台提供的功能和模板 | 较高,允许通过编写代码(如JavaScript、Python)进行扩展和定制。 | 极高,可以实现任何复杂的功能和独特的界面 | 高,代码由AI生成,可高度定制与修改 |
+| **技术门槛** | 极低,无需编程知识 | 较低,需要基本的编程逻辑和少量编码能力 | 极高,需要精通编程语言、框架和软件工程原理 | 中,需有编程基础以审查、优化AI生成代码 |
+| **主要应用场景** | 构建简单的内部工具、自动化流程、AI应用原型等 | 企业级自动化、系统集成、连接不同的API和服务、构建复杂的业务流程 | 开发大型、复杂的软件系统、高性能应用、底层系统开发 | 代码生成、智能补全、错误检测、文档生成、测试用例编写 |
+| 常用工具 | Dify、Zapier、Bubble | n8n、Retool、Mendix | python、java、C | Cursor、GitHub Copilot、Codeium |
+
+---
+
+## 2. 安装与配置
+
+### 2.1 快速开始(n8n Cloud)
+
+对于希望立即体验而无需任何部署的用户,n8n官方云服务是最佳选择。
+* **官方网址**:[https://n8n.io/](https://n8n.io/)
+* **优势**:无需部署,注册即用,官方负责所有维护工作,让您专注于工作流构建。
+
+
+
+
+
+### 2.2 本地/私有化部署
+
+#### 部署方式对比
+
+1. **n8n 云服务 (Cloud Hosting) - 最快速、无需部署**
+ * **描述**:最简单快捷的入门方式,无需任何本地安装和配置。访问 https://n8n.io 注册即可开始,官方提供免费试用。
+ * **适用人群**:初学者、业务用户、希望快速验证自动化想法的用户。
+
+2. **使用 npm 安装 - 适合开发者快速本地启动**
+ * **描述**:对于熟悉 Node.js 环境的开发者,通过简单的 `npm` 命令行指令即可在本地快速启动 n8n,适合在本地进行开发、测试和调试。
+
+3. **使用 Docker 安装 - 推荐的本地或服务器部署方式**
+ * **描述**:Docker 提供容器化部署,确保环境一致性,避免复杂的依赖问题。它封装了 n8n 及其所有依赖,是本地开发和中小型项目生产部署的理想选择。
+
+4. **服务器自托管 (Self-hosting) - 灵活且注重隐私**
+ * **描述**:n8n 是一款**公平代码许可 (fair-code licensed)** 的软件,支持自托管,提供极高的**灵活性、隐私和安全性控制**。您可以在 Digital Ocean, AWS, Azure, Google Cloud 等任意云服务器上部署,并进行深度定制化配置。
+ * **适用人群**:对数据隐私、系统性能或集成有特定需求的企业和高级用户。
+ **相关教程**:
+ * 图文教程
+ https://blog.csdn.net/2501_90561511/article/details/147479401?spm=1001.2014.3001.5502
+ * 视频教程:
+ https://www.bilibili.com/video/BV1kZNrzpEy6
+
+#### Docker 部署注意事项
+
+如果选择 Docker 部署,请特别注意 `volumes` 映射配置:
+* **第一个 Volume**:用于持久化存储 n8n 的工作流、凭证等核心数据。
+ * `Host Path`:您服务器上的一个路径,例如 `/data/n8n/config`。
+ * `Container Path`:固定为 `/home/node/.n8n`。
+* **第二个 Volume**:用于 n8n 工作流读写本地文件。
+ * `Host Path`:您服务器上用于存放处理文件的路径,例如 `/data/n8n/files`。
+ * `Container Path`:在 n8n 节点中访问该文件夹的路径,例如 `/files`(请记住这个路径)。
+
+
+
+### 2.3 界面介绍
+
+n8n 的界面直观易用,主要由工作流画布、节点面板、参数配置区和执行日志等部分组成。详细介绍请参考:
+https://n8n.akashio.com/article/n8n-ui
+
+### 2.4 凭证管理 (Credentials)
+
+**凭证是 n8n 连接外部世界的“钥匙”**。它用于安全地存储和管理连接外部服务(如数据库、API、邮箱)所需的授权信息(如 API 密钥、OAuth 令牌、用户名密码等)。
+
+* **安全存储**:n8n 对凭证进行加密存储,保护您的账户安全。
+* **集中管理**:在一个地方统一创建、查看和管理所有凭证。
+* **一次配置,多次使用**:创建一次凭证后,可在多个工作流和节点中重复使用。
+* **避免硬编码**:将敏感信息与工作流逻辑分离,是更安全、更易于维护的最佳实践。
+常用凭证:
+- 大模型凭证
+- 邮箱凭证
+- 数据库凭证
+图文示例请参考:
+https://jishuzhan.net/article/1951148541186977794
+
+### 2.5 n8n 汉化
+
+在使用 Docker 部署时,可以通过添加环境变量和挂载中文语言包的方式实现界面汉化。
+
+参考:
+https://zhuanlan.zhihu.com/p/1937586953865372387
+
+
+## 3. 学习与使用
+### 3.1常用节点
+
+
+
+1. 触发 (Triggers)
+
+触发器是工作流的起点,用于在特定事件发生时启动自动化流程。
+
+• **手动触发 (Manual Trigger)**:
+
+- **功能和用法**:手动触发节点用于**用户启动的工作流**。它允许您在需要时手动运行工作流,而不是等待特定事件发生。
+
+- **配置**:作为核心节点,通常不需要复杂配置,只需在需要时点击执行即可。
+
+• **定时触发 (Schedule Trigger)**:
+
+- **功能和用法**:定时触发节点用于**基于时间的自动化任务**。您可以设置工作流在特定时间或按固定时间间隔自动运行。
+
+- **配置**:您需要配置触发的时间、频率等参数。文档中也提到了该节点可能遇到的“常见问题”。
+
+• **Webhook (Webhook)**:
+
+- **功能和用法**:Webhook 节点用于**API 触发的自动化**。它允许外部服务通过发送HTTP请求来启动n8n工作流,实现实时集成和响应。
+
+- **配置**:需要设置一个生产URL,并在您的MCP客户端中使用这个URL。文档中提到了“工作流开发”和“常见问题”。在导入工作流时,需要更新Webhook URL。
+
+• **自动化 (Automation)**:
+
+- **功能和用法**:自动化是n8n的核心能力和目标。它涵盖了**连接任何带有API的应用程序并对其数据进行操作**,以及**构建复杂的、端到端的工作流**。n8n特别适用于**批量数据处理、搬运和引入AI到现有工作流**。
+
+- **配置**:自动化是n8n平台提供的整体能力,而非单一节点。各种触发器、处理节点和逻辑节点共同实现自动化。
+
+• **邮件触发 (Email Trigger)**:
+
+- **功能和用法**:邮件触发(IMAP)节点可以根据新邮件或其他邮件事件来启动工作流。例如,可以构建工作流来**自动标记收到的Gmail邮件** 或**根据新邮件内容草拟回复**。
+
+- **配置**:需要配置IMAP相关参数,如服务器、端口、凭据等。
+
+• **对话触发 (Chat Trigger)**:
+
+- **功能和用法**:对话触发节点用于响应聊天消息来启动工作流。例如,“AI代理聊天”和“Telegram AI聊天机器人”是趋势模板,它们可能通过对话触发来接收用户输入。
+- 配置:配置聊天平台和监听的事件。
+
+2. 输入 (Input)
+
+输入节点用于从各种数据源获取信息,供工作流后续处理使用。
+
+• **读本地文件 (Read Local File)**:
+
+- **功能和用法**:允许工作流读取本地文件系统中的文件。
+
+- **配置**:使用“Read/Write Files from Disk”核心节点来指定文件路径和读取方式。
+
+• **HTTP 请求 (HTTP Request)**:
+
+- **功能和用法**:HTTP请求节点是**“半开放式节点”**,它允许n8n接入**几乎任何开放API的第三方服务**。可以用于从互联网获取数据。
+
+- **配置**:需要配置请求URL、方法(GET、POST等)、头部信息和请求体等。可以与ChatGPT结合使用来编写代码片段,帮助连接不在官方节点库中的功能。
+
+• **MySQL 获取数据 (MySQL Get Data)**:
+
+- **功能和用法**:n8n支持与MySQL数据库集成。可以用于从MySQL数据库中**查询和检索数据**。
+
+- **配置**:需要配置MySQL凭据和要执行的查询语句。例如,可以使用AI代理与PostgreSQL或MongoDB数据库进行交互,并支持自定义SQL查询和模式内省,MySQL也应有类似功能。
+
+• **RSS 网络搜索 (RSS Web Search)**:
+
+- **功能和用法**:RSS Read和RSS Feed Trigger节点用于**读取RSS订阅源**,从而获取最新的网络信息或文章更新。可以构建“基于RSS的阅读分流器” 或**监控RSS源并总结文章**。
+
+- **配置**:输入RSS订阅源URL。
+
+• **Google 表格、云盘 (Google Sheets, Google Drive)**:
+
+- **功能和用法**:n8n与Google Sheets和Google Drive有深度集成。您可以**读取、写入Google Sheets中的数据**;**访问和利用Google Drive中的文件**,例如构建AI助手来回答基于文档内容的问题。还可以监控Google Drive中的新文档,并使用AI进行总结。
+
+- **配置**:需要配置Google凭据,并指定要操作的表格或文件路径。
+
+3. 处理 (Process)
+
+处理节点用于对输入数据进行转换、分析或执行特定操作。
+
+• **AI 代理 (AI Agent)**:
+
+- **功能和用法**:AI代理节点是n8n中构建高级AI功能的核心。它将**LangChain框架可视化**,允许AI代理**发现、管理和运行工作流**。AI代理能够根据任务自动选择和执行工具(如搜索、存储)。
+
+- **配置**:AI代理节点具有子节点,允许灵活配置**模型(Model)、记忆(Memory)、工具(Tool)和输出解析器(Output Parser)**。在使用社区节点作为AI代理工具时,必须设置环境变量 `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true`。
+
+• **代码 (Code)**:
+
+- **功能和用法**:代码节点是**“半开放式节点”**,支持在服务器端运行**JavaScript和Python代码**。这使得您可以**编写自定义逻辑**或处理n8n内置节点无法直接支持的复杂任务。
+
+- **配置**:在节点内部编写JavaScript或Python代码,可以访问和处理工作流中的数据。
+
+• **编辑字段 (Edit Fields)**:
+
+- **功能和用法**:Edit Fields (Set) 节点用于**设置或修改工作流中数据项的字段值**。这类似于电子表格中查找和修改单元格的操作,AI可以通过此类节点修改数据。
+- **配置**:指定要编辑的字段名和新的值。
+
+4. 逻辑 (Logic)
+
+逻辑节点用于控制工作流的执行路径和数据流。
+
+• **If (If)**:
+
+- **功能和用法**:If 节点用于**条件判断**,根据设定的条件将工作流分支到不同的路径。
+
+- **配置**:设置条件表达式,当条件为真时执行一个分支,为假时执行另一个分支。
+
+• **循环项 (Loop Over Items)**:
+
+- **功能和用法**:Loop Over Items (Split in Batches) 节点用于**遍历数据集合**,对每个数据项执行重复操作。
+
+- **配置**:配置循环的批处理大小或遍历方式。
+
+• **切换 (Switch)**:
+
+- **功能和用法**:Switch 节点类似于多条件判断,根据输入数据的不同值将工作流路由到多个不同的分支。
+
+- **配置**:为不同的输入值设置对应的输出分支。
+
+• **合并 (Merge)**:
+
+- **功能和用法**:Merge 节点用于**合并来自不同分支的数据流**,使它们能够在一个统一的流中继续处理。
+
+- **配置**:选择合并数据的策略。
+
+5. 输出 (Output)
+
+输出节点用于将工作流处理后的结果发送到外部服务或存储。
+
+• **发送邮件 (Send Email)**:
+
+- **功能和用法**:Send Email 节点用于**发送电子邮件**。您可以配置邮件内容、收件人、主题等。
+
+- **配置**:需要配置邮件服务提供商的凭据(如Gmail、Outlook.com、Yahoo)。
+
+• **响应 Webhook (Respond to Webhook)**:
+
+- **功能和用法**:Respond to Webhook 节点用于**向发起Webhook请求的服务发送响应**。这使得n8n可以作为API的后端,对外部请求进行处理并返回数据。
+
+- **配置**:配置响应的状态码和响应体内容。
+
+• **生成文件到本地 (Generate File to Local)**:
+
+- **功能和用法**:虽然没有直接名为“生成文件到本地”的节点,但“Read/Write Files from Disk”核心节点支持**写入文件到本地磁盘**。这意味着工作流可以将处理后的数据保存为本地文件。例如,AI可以“SaveFile”将修改后的文件保存回硬盘。
+
+- **配置**:使用“Read/Write Files from Disk”节点,选择写入操作,并指定文件内容和保存路径。
+
+### 3.2基本工作流创建
+图文教程:
+https://mp.weixin.qq.com/s/oIcmTW0Gg2r63C0Tn91r2Q
+视频教程:
+https://www.bilibili.com/video/BV1nejbz6Eip/?spm_id_from=333.337.search-card.all.click&vd_source=d9f631f2aa422b95711dea08e6660a60
+
+### 3.3避坑指南
+n8n容易踩坑的环节,同事也是开发稳定性高的n8n工作流的要求。
+https://x.com/binggandata/status/1951798212995829996
+
+1️⃣97% 的 n8n 工作流缺乏异常处理, 在出错时默默失败。 建议:为每个工作流添加一个错误触发器, 并强制对关键节点(HTTP/API/DB)进行异常处理+邮件/Slack 通知。
+
+2️⃣320 个 webhooks 未进行身份验证, 152 个进程仍在使用明文 HTTP。 有些直接在节点中硬编码键。 建议:对所有 webhooks 强制执行身份验证, 全程使用 HTTPS,不要硬编码 API 密钥,定期轮换它们,并加密存储。
+
+3️⃣很多流程有无用节点、API 在循环里频繁请求、无效数据转换反复出现。 建议:能批量就批量,流程结构清晰,节点合并, 并行能并行,复杂逻辑直接用代码节点搞定。
+
+4️⃣35% 的工作流接入了 AI,但大部分没做向量数据库和缓存,token 消耗高。 建议:Prompt 要分块,简单用 GPT-3.5,复杂用 GPT-4, 批量处理+结果校验,AI 节点也要异常处理和日志监控。
+
+5️⃣74.7% 工作流分类都是 General, 文档说明严重不足,协作查错全靠猜。 建议:流程统一命名+标签, 关键节点加 Sticky Note,协作排查省大把时间。
+
+6️⃣高频套路: 数据转换(Set→HTTP)、API 链式(HTTP→HTTP)、条件分流(If/Switch→Set)、数据聚合(Set→Merge) 建议:直接套用成熟流程模板,少造轮子。
+
+7️⃣上线前安全清单: 所有 webhook 有认证、外部请求全 HTTPS、敏感数据加密、权限分层、异常信息不泄露隐私。 建议:每次上线前都照单自查一遍。
+
+8️⃣维护和优化: 慢流程拆分为子流程,API 并发要批量/加缓存,老旧节点及时清理。 建议:每月安全&性能巡检,流程有改动就同步文档。
+
+9️⃣很多流程没监控,出错没人知道,维护成本高。 建议:每个关键流程都加集中日志和监控, 记录流程名、节点、错误和时间戳,AI/长流程建议加进度日志。
+
+1️⃣0️⃣只要你把这些最佳实践都落地了: 绝大部分工作流有异常处理、webhook 全认证、HTTPS 全覆盖、无明文密钥、流程分类注释完整, 平均执行时间都能压到 10 秒以内!
+
+### 3.4进阶应用 - 模板套用
+n8n的模板套用方式非常直观
+首先在任意位置复制整段文本:
+
+
+
+在n8n任意位置粘贴:
+
+
+2000+模板
+https://github.com/enescingoz/awesome-n8n-templates ✅
+2000+模板
+https://github.com/Zie619/n8n-workflows ✅
+
+### 3.5进阶应用 - mcp
+
+模型上下文协议(MCP)定义了AI代理与外部工具的标准化通信框架,允许在不同LLM之间无缝切换工具集成逻辑。其架构包含三大组件:
+
+1. 主机(Host):承载MCP连接的LLM应用(如Claude Desktop、Cursor IDE)
+2. 客户端(Client):作为对接MCP服务器的通信端点
+3. 服务器(Server):为主机提供工具、数据或提示资源的独立服务
+
+这种架构使得n8n能以两种角色接入MCP生态:既可以将工作流作为MCP服务器对外暴露功能,也能作为客户端调用其他MCP服务器的能力。
+
+如何将整个mcp工作流部署为mcp服务
+图文教程
+https://zhuanlan.zhihu.com/p/1913630305291567877
+官网介绍:
+https://n8n.io/workflows/3770-build-your-own-n8n-workflows-mcp-server/
+
+### 3.6进阶应用 - 自然语言编程
+使用官方扩展:n8nchat
+https://n8nchat.com
+
+部署开源项目
+https://www.bilibili.com/video/BV1HuKEzDEaj/?spm_id_from=333.337.search-card.all.click&vd_source=c1396b80a656000a13265d2670a6de6e
+
+### 3.7进阶应用 - 社区节点
+ 社区节点排行榜 TOP 100
+https://github.com/restyler/awesome-n8n?tab=readme-ov-file
+点击设置
+
+
+
+点击社区节点和下载
+
+
+输入想要安装的社区节点
+
+
+## 4. 参考资料与术语表
+### 4.1 参考资料
+n8n文档
+https://docs.n8n.io
+中文文档:
+https://docs.n8ncn.io
+官方社区(模板、社区成员)
+https://community.n8n.io/
+快速开始:
+https://n8n.io/
+界面介绍
+https://n8n.akashio.com/article/n8n-ui
+教学合集:
+https://www.darrelltw.com/n8n-tutorial-resources/#templates
+零基础教程
+https://www.bilibili.com/video/BV1nejbz6Eip/?spm_id_from=333.337.search-card.all.click&vd_source=d9f631f2aa422b95711dea08e6660a60
+2000+模板
+https://github.com/enescingoz/awesome-n8n-templates
+2000+模板
+https://github.com/Zie619/n8n-workflows
+n8n踩坑环节。
+https://x.com/binggandata/status/1951798212995829996
+使用n8n自动抓取天气预报,并发送到微信
+https://zhuanlan.zhihu.com/p/629643758
+n8n+mcp+deepseek
+https://blog.csdn.net/m0_59235245/article/details/147950398)
+视频教程
+https://www.bilibili.com/video/BV11QX8YNEjU/?spm_id_from=333.337.search-card.all.click&vd_source=d9f631f2aa422b95711dea08e6660a60
+mcp节点
+https://github.com/nerding-io/n8n-nodes-mcp
+如何将整个mcp工作流部署为mcp服务
+图文教程
+https://zhuanlan.zhihu.com/p/1913630305291567877
+官网介绍:
+https://n8n.io/workflows/3770-build-your-own-n8n-workflows-mcp-server/
+n8nchat(自然语言编程)
+https://n8nchat.com
+飞书表格
+https://mp.weixin.qq.com/s/MIoNKpCSBYhhBjxCAaGSYg
+多智能体工作流
+https://mp.weixin.qq.com/s/efsB3GwZzTVH4rjW5i0iGQ
+论文自动解读知识库
+[https://mp.weixin.qq.com/s/YBoM7YkpHjsFl-hyaSsnOw
+### 4.2 术语表
+
+- **n8n**: 一个开源且公平代码许可的工作流自动化工具,允许用户通过可视化界面连接应用程序和 API,以实现数据操作和业务流程自动化。
+- **MCP (Model Context Protocol)**: 模型上下文协议,一种标准化协议,用于使 AI 模型能够与外部工具和数据源进行交互,从而扩展其能力。
+- **n8n MCP 服务器工作流模板**: 一个预构建的 n8n 工作流,用于将现有的 n8n 工作流转换为一个 MCP 服务器,使得 AI 客户端可以发现、管理和执行这些工作流。
+- **AI 代理 (AI Agent)**: 能够理解指令、规划行动、使用工具并与环境交互以实现目标的智能系统,通常由大型语言模型驱动。
+- **工作流 (Workflow)**: 在 n8n 中,由一系列相互连接的节点组成的自动化流程,用于执行特定任务或自动化业务逻辑。
+- **节点 (Node)**: n8n 工作流的基本组成单元,代表一个特定的操作或与一个应用程序的集成。
+- **MCP 触发器 (MCP Trigger)**: n8n MCP 服务器工作流模板中的一个核心节点,用于接收 MCP 客户端的请求并触发相关操作(如发现、管理或执行工作流)。
+- **“可用”工作流 (Available Workflows)**: 在 n8n MCP 服务器中,被明确允许 AI 代理访问和使用的 n8n 工作流集合,通常通过标签或其他过滤方式进行管理。
+- **Redis**: 一个开源的、内存中的数据结构存储,可用作数据库、缓存和消息代理。在 n8n MCP 服务器模板中,它被用作内存来跟踪“可用”工作流。
+- **Subworkflow 触发器 (Subworkflow Trigger)**: n8n 中的一种触发器节点,允许一个工作流作为另一个工作流的子流程被调用和执行,常用于模块化和参数传递。
+- **输入模式 (Input Schema)**: 定义工作流或节点预期接收的数据结构和数据类型,确保数据以正确的格式传入。
+- **直通方法 (Passthrough Method)**: 在 n8n 中,一种参数传递方式,表示当节点未明确设置参数时,将使用传入的数据作为默认值。
+- **API 密钥 (API Key)**: 应用程序编程接口密钥,一种用于验证用户、应用程序或服务的身份并授予其访问 API 权限的凭证。
+- **Claude Desktop**: 一种 MCP 客户端或 AI 代理,能够通过 MCP 协议与外部工具和数据源(如 n8n MCP 服务器)进行交互。
+- **LangChain**: 一个流行的开源框架,旨在帮助开发者构建由大型语言模型 (LLM) 驱动的应用程序和代理,它将 LLM 相关代码封装为可复用的组件。
+- **RAG (Retrieval-Augmented Generation)**: 检索增强生成,一种 AI 技术,通过从外部知识库中检索相关信息来增强大型语言模型的生成能力,使其能够提供更准确和实时的回答。
+- **HTTP Request**: 一种 n8n 节点,用于向任意 HTTP/HTTPS 端点发送请求,常用于与未直接集成的第三方服务进行交互。
+- **Code 节点 (Code Node)**: n8n 中的一种节点,允许用户在工作流中编写和执行自定义的 JavaScript 或 Python 代码,实现更复杂的逻辑或与特定库交互。
+- **私有部署 (Self-hosting)**: 用户在自己的服务器或基础设施上安装和运行软件,而不是使用云服务提供商提供的托管版本,通常出于隐私、安全或定制需求。
+- **低代码 (Low-code)**: 一种软件开发方法,通过最少量的手动编码实现应用程序的快速开发,通常依赖于图形用户界面和可视化工具。
+- **无代码 (No-code)**: 一种软件开发方法,允许非技术用户通过拖拽界面和预构建组件来创建应用程序和自动化流程,无需编写任何代码。
+- **Docker**: 一个用于开发、交付和运行应用程序的开源平台,通过容器化技术使应用程序及其依赖项能够打包在一起,并在任何环境中以相同方式运行。
+- **GitHub**: 一个基于 Web 的版本控制和协作平台,用于软件开发,允许开发者存储、管理和共享代码仓库。n8n 的许多工作流模板和社区节点都托管在 GitHub 上。
+
+
+## 5. n8n迷你Hackathon小组
+### 5.1 职能与支持
+- 技术支持:提供专业的技术支持,解决用户在使用n8n过程中遇到的问题。
+- 项目咨询:为用户提供项目规划、设计和实施的咨询服务,确保项目的顺利进行。
+- 培训服务:定期举办线上或线下的培训课程,帮助用户掌握n8n的使用技巧和最佳实践。
+- 社区建设:维护和管理社区资源,促进用户之间的交流与合作,共同推动n8n的发展。
+### 5.2 加入我们的方式
+扫码加入群聊:
+
diff --git a/docs/assets/images/二维码.jpg b/docs/assets/images/二维码.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..833425303cf6a15ff871010bd5864283cb0c31eb
GIT binary patch
literal 158690
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