Tao
Tao

免费云端部署 n8n:完整指南

想要拥有一个完全属于自己的工作流自动化平台吗?本指南将手把手教您如何零成本在云端部署 n8n,结合 Hugging Face Spaces 的强大计算能力和 Supabase 的稳定数据库服务,打造一个完整AI自动化工作工具。

n8n + Hugging Face Spaces + Supabase 这个组合具有以下突出优势:

  • 💰 零成本起步:Hugging Face和Supabase都提供一定的免费额度
  • 🔒 完全掌控:N8N自托管方案,数据完全可控
  • ⚡ 高可用性:企业级基础设施支撑
  • 📈 易扩展:需求增长时可平滑升级
  • 个人自动化需求(邮件处理、数据同步)
  • 小团队协作工具集成
  • AI 工作流实验和原型开发
  • 学习和测试自动化技术

n8n 是一个功能强大的可视化工作流编辑器,支持:

  • 400+ 预置节点:覆盖主流应用和服务
  • 可视化编辑:拖拽式工作流设计
  • 代码扩展:支持自定义节点和函数
  • AI 集成:原生支持GPT、Claude等AI 模型
  • Docker 支持:灵活的容器化部署
  • 免费计算资源:适合中小型应用
  • AI 生态接入:便于集成 HF 模型
  • 简单易用:提供类似GitHub操作体验
  • PostgreSQL 数据库:功能完整的关系型数据库
  • 自动 API 生成:支持REST和 GraphQL 接口
  • 实时功能:WebSocket支持
  • 认证服务:支持多种登录方式

  1. 注册并登录 Supabase

  2. 创建新项目

    • 点击 “New Project”
    • 选择组织
    • 项目名称:n8n-backend
    • 设置数据库密码(请牢记!)
    • 选择就近的区域
    • 选择免费计划
  3. 获取连接信息

    • 项目创建完成后,进入 “Project Settings”
    • 选择 “Database” 选项卡
    • 记录以下连接参数:
    参数 说明 示例
    Host 数据库主机地址 db.xxx.supabase.co
    Database 数据库名称 postgres
    User 用户名 postgres
    Password 您设置的密码 your_password
    Port 端口号 5432
supabase

创建一个N8N的 Dockerfile

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来配置

  1. 登录 Hugging Face

  2. 创建 Space

    • 点击头像 → “New Space”
    • Space 名称:my-n8n-instance
    • SDK:选择 “Docker”
    • 可见性:根据需要选择Public
  3. 上传 Dockerfile

    bash

    # 克隆 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

在 Space 的 “Settings” → “Repository secrets” 中添加以下环境变量:

bash

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

bash

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

bash

# 生成加密密钥(重要!)
N8N_ENCRYPTION_KEY=你的32位随机字符串

# 基础认证(可选)
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=你的管理密码
N8N_USER_MANAGEMENT_DISABLED=true

bash

WEBHOOK_URL=https://你的用户名-space名称.hf.space
GENERIC_TIMEZONE=Asia/Shanghai
TZ=Asia/Shanghai

🔐 安全提示N8N_ENCRYPTION_KEY 用于加密存储的凭证,请使用强随机字符串(可用 openssl rand -hex 32 生成),并妥善保管。


由于使用免费服务,部署docker n8n应用需要一点时间来完成启动,需要你耐心等待。

部署成功后会有log日志输出如下: n8n-deploy

部署完成后,访问您的 Space URL: https://你的用户名-space名称.hf.space

如果启用了基础认证

  • 浏览器会弹出登录框
  • 输入您设置的用户名和密码

如果使用 n8n 用户管理

  • 首次访问会要求创建管理员账户
  • 设置邮箱、用户名和密码

设置完成后你的邮箱会收到一封激活n8n提示的邮件,根据邮件提供的激活链接进行激活。

  1. 创建测试工作流

    • 新建工作流
    • 添加 “Manual Trigger” 节点
    • 添加 “Set” 节点设置一些数据
    • 连接节点并保存
  2. 执行测试

    • 手动触发工作流
    • 检查执行结果
    • 刷新页面确认数据持久化
  3. 检查日志

    • 在 Space 的 “Logs” 选项卡查看运行日志
    • 确认没有错误信息

症状:无法访问 n8n 界面

  • 检查 Space 状态是否为 “Running”
  • 确认 N8N_PORT=7860 设置正确
  • 查看 Logs 选项卡中的错误信息

症状:数据库连接失败

  • 验证 Supabase 连接参数是否正确
  • 确认数据库密码输入无误
  • 检查网络连接和防火墙设置

症状:无法登录

  • 确认基础认证配置正确
  • 检查用户名密码是否匹配
  • 尝试清除浏览器缓存

症状:工作流执行缓慢

  • 优化工作流逻辑减少复杂度
  • 考虑升级到付费计划

  • 定期轮换 N8N_ENCRYPTION_KEY
  • 启用 Supabase 行级安全策略
  • 使用强密码和双因素认证
  • 合理设计工作流减少资源消耗
  • 使用n8n的队列功能处理大量任务
  • 监控资源使用情况

通过本指南,您已经成功搭建了完整的自托管 n8n平台。这个方案的核心优势包括:

  • 零成本启动:充分利用各平台免费额度
  • 完全自主:数据和配置完全在您掌控之下
  • AI自动化:通过利用AI+workflow完成自动户工作
  • 易于维护:基于容器的现代化部署方式

现在您可以开始创建自己的自动化工作流,提升工作效率,探索AI驱动的全新自动化!


开始您的自动化之旅吧!如有问题,欢迎在评论区交流。

相关内容