免费云端部署 n8n:完整指南
想要拥有一个完全属于自己的工作流自动化平台吗?本指南将手把手教您如何零成本在云端部署 n8n,结合 Hugging Face Spaces 的强大计算能力和 Supabase 的稳定数据库服务,打造一个完整AI自动化工作工具。
🎯 为什么选择这套方案?
技术架构优势
n8n + Hugging Face Spaces + Supabase 这个组合具有以下突出优势:
- 💰 零成本起步:Hugging Face和Supabase都提供一定的免费额度
- 🔒 完全掌控:N8N自托管方案,数据完全可控
- ⚡ 高可用性:企业级基础设施支撑
- 📈 易扩展:需求增长时可平滑升级
适用场景
- 个人自动化需求(邮件处理、数据同步)
- 小团队协作工具集成
- AI 工作流实验和原型开发
- 学习和测试自动化技术
📋 核心组件介绍
n8n:开源工作流自动化平台
n8n 是一个功能强大的可视化工作流编辑器,支持:
- 400+ 预置节点:覆盖主流应用和服务
- 可视化编辑:拖拽式工作流设计
- 代码扩展:支持自定义节点和函数
- AI 集成:原生支持GPT、Claude等AI 模型
Hugging Face Spaces:AI 应用托管平台
- Docker 支持:灵活的容器化部署
- 免费计算资源:适合中小型应用
- AI 生态接入:便于集成 HF 模型
- 简单易用:提供类似GitHub操作体验
Supabase:现代化后端服务
- PostgreSQL 数据库:功能完整的关系型数据库
- 自动 API 生成:支持REST和 GraphQL 接口
- 实时功能:WebSocket支持
- 认证服务:支持多种登录方式
🚀 部署步骤
步骤 1:创建 Supabase 项目
-
注册并登录 Supabase
-
创建新项目
- 点击 “New Project”
- 选择组织
- 项目名称:
n8n-backend
- 设置数据库密码(请牢记!)
- 选择就近的区域
- 选择免费计划
-
获取连接信息
- 项目创建完成后,进入 “Project Settings”
- 选择 “Database” 选项卡
- 记录以下连接参数:
参数 说明 示例 Host 数据库主机地址 db.xxx.supabase.co
Database 数据库名称 postgres
User 用户名 postgres
Password 您设置的密码 your_password
Port 端口号 5432

步骤 2:准备 Dockerfile
创建一个N8N的 Dockerfile
:
FROM node:18-alpine
# Set user to root for installation
USER root
# Arguments that can be passed at build time
ARG N8N_PATH=/usr/local/lib/node_modules/n8n
ARG BASE_PATH=/root/.n8n
ARG DATABASE_PATH=$BASE_PATH/database
ARG CONFIG_PATH=$BASE_PATH/config
ARG WORKFLOWS_PATH=$BASE_PATH/workflows
ARG LOGS_PATH=$BASE_PATH/logs
ARG N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=$N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS
ARG N8N_HOST=$N8N_HOST
ARG N8N_PORT=$N8N_PORT
ARG N8N_PROTOCOL=https
ARG N8N_EDITOR_BASE_URL=$N8N_EDITOR_BASE_URL
ARG WEBHOOK_URL=$WEBHOOK_URL
ARG GENERIC_TIMEZONE=$GENERIC_TIMEZONE
ARG TZ=$TZ
ARG N8N_ENCRYPTION_KEY=$N8N_ENCRYPTION_KEY
ARG DB_TYPE=$DB_TYPE
ARG DB_POSTGRESDB_SCHEMA=$DB_POSTGRESDB_SCHEMA
ARG DB_POSTGRESDB_HOST=$DB_POSTGRESDB_HOST
ARG DB_POSTGRESDB_DATABASE=$DB_POSTGRESDB_DATABASE
ARG DB_POSTGRESDB_PORT=$DB_POSTGRESDB_PORT
ARG DB_POSTGRESDB_USER=$DB_POSTGRESDB_USER
ARG DB_POSTGRESDB_PASSWORD=$DB_POSTGRESDB_PASSWORD
# Install system dependencies
RUN apk add --no-cache \
git \
python3 \
py3-pip \
make \
g++ \
build-base \
cairo-dev \
pango-dev \
chromium \
postgresql-client \
ffmpeg \
yt-dlp
# Set environment variables
ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# Install n8n globally
RUN npm install -g [email protected]
# Create necessary directories
RUN mkdir -p $DATABASE_PATH $CONFIG_PATH $WORKFLOWS_PATH $LOGS_PATH \
&& chmod -R 777 $BASE_PATH
# Set working directory
WORKDIR /data
# Start n8n
CMD ["n8n", "start"]
重点说明:Hugging Face Spaces 要求应用监听7860端口,我们通过环境变量
N8N_PORT=7860
来配置,而不是在 Dockerfile 中硬编码。
也可以直接copy别人的Hugging Face Space,直接在浏览器输入https://huggingface.co/spaces/baoyin2024/n8n-free/blob/main/Dockerfile?duplicate=true 根据弹窗提示输入相关的配置 信息。如果通过这种方式可以忽略步骤3,直接根据步骤4来配置
步骤 3:创建 Hugging Face Space
-
登录 Hugging Face
-
创建 Space
- 点击头像 → “New Space”
- Space 名称:
my-n8n-instance
- SDK:选择 “Docker”
- 可见性:根据需要选择Public
-
上传 Dockerfile
# 克隆 Space 仓库 git clone https://huggingface.co/spaces/YOUR_USERNAME/my-n8n-instance cd my-n8n-instance # 添加 Dockerfile # 将前面创建的 Dockerfile 复制到此目录 # 推送到仓库 git add Dockerfile git commit -m "Add n8n Dockerfile" git push
步骤 4:配置环境变量
在 Space 的 “Settings” → “Repository secrets” 中添加以下环境变量:
数据库连接配置
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=你的Supabase主机名
DB_POSTGRESDB_USER=postgres
DB_POSTGRESDB_PASSWORD=你的数据库密码
DB_POSTGRESDB_DATABASE=postgres
DB_POSTGRESDB_PORT=6543
DB_POSTGRESDB_SCHEMA=public
n8n 基础配置
N8N_PROTOCOL=https
N8N_EDITOR_BASE_URL=https://accoutname-spaceanem.hf.space
WEBHOOK_URL=https://accoutname-spaceanem.hf.space
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
NOTION_MARKDOWN_CONVERSION=true
N8N_ENCRYPTION_KEY=yourkey
安全配置
# 生成加密密钥(重要!)
N8N_ENCRYPTION_KEY=你的32位随机字符串
# 基础认证(可选)
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=你的管理密码
N8N_USER_MANAGEMENT_DISABLED=true
其他配置
WEBHOOK_URL=https://你的用户名-space名称.hf.space
GENERIC_TIMEZONE=Asia/Shanghai
TZ=Asia/Shanghai
🔐 安全提示:
N8N_ENCRYPTION_KEY
用于加密存储的凭证,请使用强随机字符串(可用openssl rand -hex 32
生成),并妥善保管。
由于使用免费服务,部署docker n8n应用需要一点时间来完成启动,需要你耐心等待。
✅ 部署验证
访问 n8n 界面
部署完成后,访问您的 Space URL:
https://你的用户名-space名称.hf.space
首次配置
如果启用了基础认证:
- 浏览器会弹出登录框
- 输入您设置的用户名和密码
如果使用 n8n 用户管理:
- 首次访问会要求创建管理员账户
- 设置邮箱、用户名和密码
激活免费license
设置完成后你的邮箱会收到一封激活n8n提示的邮件,根据邮件提供的激活链接进行激活。
功能测试
-
创建测试工作流
- 新建工作流
- 添加 “Manual Trigger” 节点
- 添加 “Set” 节点设置一些数据
- 连接节点并保存
-
执行测试
- 手动触发工作流
- 检查执行结果
- 刷新页面确认数据持久化
-
检查日志
- 在 Space 的 “Logs” 选项卡查看运行日志
- 确认没有错误信息
🔧 常见问题解决
连接问题
症状:无法访问 n8n 界面
- 检查 Space 状态是否为 “Running”
- 确认
N8N_PORT=7860
设置正确 - 查看 Logs 选项卡中的错误信息
症状:数据库连接失败
- 验证 Supabase 连接参数是否正确
- 确认数据库密码输入无误
- 检查网络连接和防火墙设置
认证问题
症状:无法登录
- 确认基础认证配置正确
- 检查用户名密码是否匹配
- 尝试清除浏览器缓存
性能问题
症状:工作流执行缓慢
- 优化工作流逻辑减少复杂度
- 考虑升级到付费计划
📈 进阶优化
安全加固
- 定期轮换
N8N_ENCRYPTION_KEY
- 启用 Supabase 行级安全策略
- 使用强密码和双因素认证
性能优化
- 合理设计工作流减少资源消耗
- 使用n8n的队列功能处理大量任务
- 监控资源使用情况
🎉 总结
通过本指南,您已经成功搭建了完整的自托管 n8n平台。这个方案的核心优势包括:
- 零成本启动:充分利用各平台免费额度
- 完全自主:数据和配置完全在您掌控之下
- AI自动化:通过利用AI+workflow完成自动户工作
- 易于维护:基于容器的现代化部署方式
现在您可以开始创建自己的自动化工作流,提升工作效率,探索AI驱动的全新自动化!
📚 延伸资源
开始您的自动化之旅吧!如有问题,欢迎在评论区交流。