Lazy loaded image
技术分享
使用supabase和northflank免费搭建你自己的n8n
00 分钟
2024-9-2
2024-12-27
type
status
date
slug
summary
tags
category
icon
password

前言

前段时间逛推特的时候,看到 大帅老猿 发推特 bot 的帖子,于是想弄一个 workflow,发布博客以后,自动发送推文以及使用 telegram bot 发送消息到 tg 频道中。一开始想用 IFTTT,因为很早之前就听说过这个工具了,但是注册以后发现它发送推文的那个 applet 必须要充钱才能用,不想花钱的我开始找替代方案,于似乎有了这篇记录。

n8n

n8n 是一个开源的自动化工作流平台,官网提供了很多 template,比如订阅 rss 发送邮件,发送 tg 消息等;n8n 官方提供了云服务,不过没有免费额度,所以需要我们自己搭建一套环境。

环境准备

容器部署平台: northflank(账号需要VISA卡或者万事达卡验证)
数据库:supabase
域名以及DNS:cloudflare
Github 仓库: n8n-on-northflank

数据库

数据库选择 supabase,supabase 是 firebase 的开源替代品,以 postgres 作为存储后端。有免费额度,托管在云上也省去自己运维,加上我自己也就对 pg 用的多一些,熟一些,这完美符合我的需求了。
  • supabase 官网,用 Github 账号登录就行。
  • 创建一个 project,命名为 n8n,创建时需要填写 Database Password,把数据库密码保存好,后面需要用到。地区随便选一个吧,自己用影响不大,我直接用的默认的。
  • 创建好以后,进入刚创建的 project,侧边栏左下角有 Project settins,进入以后选择 Database,此时就可以看到数据库的各种连接信息了。

n8n

首先 fork 该仓库 n8n-on-northflank
登录 northflank。同样,也创建一个 Project,选择 Free 计划。
  • 进入刚创建的 Project,然后点击 Service,创建 Service
  • 选择第一个框,Build and deploy a Git repo ,Repository 处选择前面 fork 的仓库
  • Build options 的 Build type 选择 Dockerfile
northflank 会自动识别 Dockerfile 中的端口号,所以点击 Create service 即可。

配置环境变量

n8n 还需要配置一系列环境变量,包括数据库连接信息等等。
  • 进入刚才创建的 service
  • 左边选择 Environment
  • 把下面的环境变量挨个拷贝进去
VUE_APP_URL_BASE_API 填写刚才创建的 service 提供的外网域名,是一个类似 p01--n8n--xxcjc64rt64j.code.run 的域名。 WEBHOOK_URL 也填写跟 VUE_APP_URL_BASE_API 一样的域名。
DB_POSTGRESDB_PASSWORD 是前面在 supabase 中创建 project 时填写的数据库密码。
DB_POSTGRESDB_HOSTDB_POSTGRESDB_USER 在 supabase 的 Database 设置页面可以查到。
添加完环境变量以后重启 service,耐心等待一会就可以访问啦
上一篇
突破网络封锁!无障碍拉取镜像
下一篇
使用k6压测web服务器