0元部署私有n8n,免费的2CPU+16GB服务器,解锁无限制的工作流体验

大家好,我是MAI麦造
上次白嫖了 Hugging Face 的 2核16g服务器,只跑了个demo!
这次用它来整点实际的活。把 n8n 部署上去!
准备工作
私有部署n8n要用到的服务:
-
• Hugging Face: https://huggingface.co/
-
• Supabase: https://supabase.com/
-
• n8n
Hugging Face 上文已经介绍过了,不了解朋友的可以看:白嫖16G+2vCPU的服务器!超简单教程,有手就会
Supabase 不了解的可以继续看下去⬇️
什么是n8n

n8n 是一个强大的工作流自动化工具。
它通过一个可视化的、基于节点(Node-based)的界面,让您可以将不同的应用程序、数据库和在线服务(如钉钉、飞书、Gmail、数据库、各类API)连接起来,创建自动化的工作流程。
尽管 官方提供了云服务,但存在一定的费用和使用限制。
社区版本的可以自己部署,使用起来也没有什么限制。
唯一需要的就是服务器。
什么是 supabase

Supabase 提供一个完整的 PostgreSQL 数据库。你可以像使用传统数据库一样创建表、设置关系,拥有完全的控制权。
免费版本的 拥有 500MB 存储空间和完整的 PostgreSQL 功能,没有阉割。
用来做 n8n 的数据库完全够用
登录 Supabase 并创建新项目
1. 登陆/注册supabase 账号
这里具体过程不缀叙, 可以选择github 登陆。

2. 创建一个新的 project
- • 填入你的Project name 和 db 的密码。
建议使用 generate a password 创建。 密码强度比较高,也不会跟你的其它应用重复。 会比较安全,只需自行保存好这个密码即可。
-
• region 选择 West US
-
• 下面的设置都默认即可。
然后点击Greate new project

3. 获取数据库连接信息
-
• 项目创建成功后,进入项目主页。
-
• 点击导航栏的 connect 获取连接信息

你需要记下 Transaction pooler 里面的信息。
注意: 记住,一定是 Transaction pooler 里面的。 这是公网可以访问的地址。否则n8n会链接不上。

创建 Hugging Face Space
现在我们来创建 n8n 的运行环境。
1. 登录 Hugging Face 并创建新 Space
-
• 访问 Hugging Face 首页,点击右上角你的头像,选择 "New Space"。
-
• Space name: 给你的 Space 起一个名字,例如
my-n8n。 -
• License: 不用填。
-
• Select the Space SDK: 这是最关键的一步! 请选择 "Docker"。
-
• Docker template: 选择 "Docker Basic"。
-
• Space hardware: 免费的 "CPU basic" 就足够了。
-
• Public/Private: 建议选择 "Public",你可以通过公网的地址访问。且国内不用魔法
-
• 点击 "Create Space"。
2. 配置 Space 的 Secrets (环境变量)
创建完成后,你会进入 Space 的管理页面。
为了安全地存储数据库密码等敏感信息,我们需要使用 Hugging Face 的 "Secrets" 功能。
-
• 点击页面顶部的 "Settings" 选项卡。
-
• 找到 "Variables and secrets" 项分别创建
-
• 点击 "New secret" 按钮,逐一添加以下环境变量。请将 YOUR_..._VALUE 替换为你在第二步中从 Supabase 获取到的真实信息。
Public Variables (公开变量)
这些变量的值是公开可见的,适合存放非敏感的配置信息。
环境变量 (Variable Name) 建议值 (Value) 说明
DB_TYPE postgresdb 告诉 n8n 我们使用的是 PostgreSQL 数据库。
DB_POSTGRESDB_HOST [你的 Supabase Host] 从 Supabase 获取的数据库主机地址。
DB_POSTGRESDB_PORT 5432 PostgreSQL 的标准端口号。
DB_POSTGRESDB_DATABASE postgres 在 Supabase 中使用的数据库名。
N8N_PORT 5678 n8n 容器内部监听的端口。Hugging Face 会自动将外部的 443 端口映射到这里。
N8N_PROTOCOL https 告诉 n8n 它的公开访问协议是 HTTPS。
N8N_EDITOR_BASE_URL [你的 Space URL] 非常重要。n8n 的完整公开访问地址,例如 https://YourName-YourSpaceName.hf.space/。这能确保所有重定向、Webhook 和 OAuth 回调都使用正确的 URL。
DB_POSTGRESDB_SSL true 关键设置。强制 n8n 使用 SSL/TLS 加密连接 Supabase 数据库,Supabase 要求此项。
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS true 解决日志中关于文件权限的警告,让 n8n 自动管理其配置文件的权限。
Secrets (私密变量)
这些变量的值是加密存储的,用于存放密码、密钥等敏感信息。
环境变量 (Secret Name) 建议值 (Value) 说明
DB_POSTGRESDB_USER postgres Supabase 数据库的用户名。
DB_POSTGRESDB_PASSWORD [你的 Supabase 密码] 你在创建 Supabase 项目时设置的数据库密码。
N8N_ENCRYPTION_KEY [随机生成的长字符串] 极其重要。用于加密和解密 n8n 中存储的凭证(Credentials)。请务必备份好这个值!
WEBHOOK_URL [你的 Space URL] 与 N8N_EDITOR_BASE_URL 作用类似,用于确保 Webhook 能被正确触发。虽然有些冗余,但加上可以保证对旧版工作流的兼容性。
添加完成后,你的 Secrets 页面应该看起来像这样:

创建 n8n 的Dockerfile
现在,我们需要告诉 Hugging Face Space 如何运行 n8n。
这通过 Dockerfile 文件来完成
1. 进入 Space 的文件管理页面
-
• 点击页面顶部的 "Files" 选项卡。
-
• 点击 "Add file" -> "Create a new file"。
2. 将文件命名为 Dockerfile
Dockerfile 文件内容中,粘贴以下代码:
FROM n8nio/n8n没错,只需要这一行即可。
直接使用 n8n 官方提供的最新版 Docker 镜像作为我们的应用。
这个镜像已经包含了运行 n8n 所需的一切。
点击commit new file提交修改

3. 部署和验证
当你提交 Dockerfile 后,Hugging Face Spaces 会自动开始构建和部署你的应用。
查看部署日志
点击页面顶部的 "Logs" 选项卡。
你会看到系统正在拉取 Docker 镜像并启动容器。这个过程可能需要几分钟。

当你在日志中看到类似下面的信息时,说明 n8n 已经成功启动并连接到数据库了:

那么接下来你就可以通过 Space 的公开 URL 访问 n8n 了。
URL 通常在页面顶部,格式为 https://YourUsername-YourSpaceName.hf.space。
首次访问时,n8n 会要求你创建一个所有者(Owner)账号。请设置你的用户名和密码。

然后你就可以尽情的享用了:

最后补充一下
Hugging Face Spaces 的免费 CPU 套餐有休眠策略。
如果你的 Space 一段时间没有被访问,它会自动休眠。
解决方案是你可以弄一个 uptime 服务,定时的访问一下。
一来可以防止它休眠,二来可以监控服务状态是否正常。
一举两得~