使用 Huggingface Space 托管 n8n

如果您没有云实例或域名,自托管 n8n 可能会有些困难。

我只想分享一个极其简单且完全免费的方式来部署您自己的 n8n 实例,并附带一个免费、用户友好的域名! 如果您一直在寻找一种经济高效且直接的自动化工作流解决方案,那么就是它了。

我一直在尝试将 Huggingface Spaces 用于托管,将 Supabase 用于数据库,结果非常棒。即使您不是专业人员,也能惊讶地发现它启动和运行起来非常简单。

为什么这种组合很棒

  • 免费托管 (Huggingface Spaces):您可以利用 Huggingface 的免费套餐来运行您的 n8n 实例, 非常适合像 n8n 这样的 Web 应用程序,并且为您提供一个 your-username-your-space-name.hf.space 形式的域名。
  • 免费数据库 (Supabase):Supabase 提供了一个强大的 PostgreSQL 数据库,拥有非常慷慨的免费套餐,对于大多数个人和小型 n8n 部署来说绰绰有余。
  • 简易设置:如果您遵循正确的步骤,无需复杂的服务器配置或 Docker 部署,就能完成部署。

您需要准备什么(全部是免费账户)

  1. 一个 Huggingface 账户
  2. 一个 Supabase 账户

使用 Supabase 作为数据库

根据 huggingface space 文档 , 如果 Space 长期不使用,它会“进入休眠状态”并停止执行。为了避免这种情况,我们可以使用 Supabase 作为数据库。

  1. https://supabase.com/dashboard/sign-up 注册一个免费账户。

  2. 创建一个新项目并填写表格。保存数据库密码以备后用。

    supabase create project
    supabase project setting

  3. 点击左上角导航栏的 Connect 按钮,查看数据库连接信息。

    supabase project

  4. 选择 SQLAlchemy 作为连接字符串,并找到 Transaction pooler 部分。

    supabase connection
    supabase connection transaction pooler

  5. 保存连接信息以备后用:主机 (host)、端口 (port)、用户 (user)、数据库名 (dbname)。

使用 Huggingface Space 部署 n8n

Huggingface Space 提供一个免费套餐,包含 16GB 内存、2 个 CPU 核心和 50GB(非持久性)磁盘空间。这足以托管 n8n。

硬件GPU 显存CPU内存磁盘每小时价格
CPU 基础版-2 vCPU16 GB50 GB免费!

使用空间https://huggingface.co/spaces/tomowang/n8n 以简单的方式复制和部署 n8n。

  1. https://huggingface.co/join 注册一个免费账户并配置 profile name。例如,https://huggingface.co/tomowang 中的 tomowang 就是 profile name。记住此名字以备后用。

  2. 访问 https://huggingface.co/spaces/tomowang/n8n ,点击右上角的菜单下拉列表, 然后选择 Duplicate this space(复制此空间)。

    hf duplicate space

  3. 在弹出的表单中填写或更改变量和密钥,然后点击 Duplicate(复制)。

    hf space env

    变量
    DB_POSTGRESDB_PASSWORDSupabase 数据库密码
    DB_POSTGRESDB_USERSupabase 数据库连接 user
    DB_POSTGRESDB_HOSTSupabase 数据库连接 host
    DB_POSTGRESDB_PORT6543
    N8N_ENCRYPTION_KEY随机字符串。使用 openssl rand -base64 32 生成
    WEBHOOK_URL示例 https://<profile>-n8n.hf.space/
    N8N_EDITOR_BASE_URL示例 https://<profile>-n8n.hf.space/
    GENERIC_TIMEZONE根据需求配置
    TZ根据需求配置
  4. 点击 Duplicate Space(复制空间)并等待部署完成。您可以查看如下日志:

    hf space deploy start

  5. 部署完成后,您可以找到在 N8N_EDITOR_BASE_URL 变量中配置的 URL。

    hf space deploy done

现在您可以使用该 URL 访问 n8n 了。

n8n 使用 helmet 来设置 HTTP 相关的安全头。在生产模式下,它会将 X-Frame-Options 设置为 sameorigin,这会导致 n8n 站点无法在 Huggingface Space 的 iframe 中渲染。 (代码见 https://github.com/n8n-io/n8n/blob/master/packages/cli/src/server.ts#L401-L402 )。