之前因为工作用了一段时间coze,对于所谓的AI工作流有了一点了解,后来coze收费,很多人大叹可惜。实际上coze的平替很多,特别是n8n。
关于什么是n8n不赘述了,之前即刻大佬评论尸写过一篇非常好的《简单易懂的现代魔法 – n8n 中文使用教程》,很长,如果有兴趣做一些工作流,又不知道选什么,可以参考教程,这里把自己的一点实践(坑)记下来。
n8n的几种部署方式中,纯本地是无法和第三方服务调用的,所以不考虑。在NAS上部署本质上和All-in-one的个人主机是一样的,评论尸提到群辉的外放访问是个坑,我试着结合Cloudflare Tunnel的服务试试能不能尽量保证安全接入公网。
周末试了下,在mac上的安装和官网上写的没什么差别,先拉取镜像安装:
docker run -d --restart always --name n8n-cf -p 5678:5678 -v ~/n8n-data-cf:/home/node/.n8n -e GENERIC_TIMEZONE="Asia/Shanghai" n8nio/n8n
安装完成后,访问http://localhost:5678应该就能看到n8n界面,注意Mac不能用Safari打开,会报错,看不到安装界面。
Cloudflare Tunnel是Cloudflare的免费服务,简单说就是CF充当反向代理和网关,让本地运行的应用程序或服务暴露到互联网上,而无需在防火墙上打开任何入站端口,也无需拥有公共静态 IP 地址,通过cloudflared配置实现。
Cloudflare Tunnel的安装网站很详细,如果嫌麻烦也可以直接问AI,打开https://github.com/cloudflare/cloudflared/releases下载最新版对应文件,mac是pkg文件,安装然后验证下安装状态。
cloudflared --version
接下来登录CF授权cloudflared使用域名,在终端中输入命令后会自动跳转网页,用自己的账号登录CF网站。
cloudflared tunnel login
在弹出的页面中选择对应的域名,点击授权。
接下来为n8n创建tunnel,CF 会返回一个 Tunnel 的 UUID 和一个 JSON 凭证文件的路径 (通常会自动保存在 ~/.cloudflared/
cloudflared tunnel create n8n-server
接下来把服务和dns绑定到一起,UUID是上面获得的,下面的是域名要用的地址,配置成功后显示添加到域名CNAME记录。
cloudflared tunnel route dns UUID n8n.yourdomain.com
最后创建 cloudflared 的配置文件,如果找不到配置文件就新建一个。
mkdir -p ~/.cloudflared
touch ~/.cloudflared/config.yml
配置内容如下:
tunnel: <UUID>
credentials-file: /Users/username/.cloudflared/UUID.json # 具体路径看情况设置
ingress:
- hostname: n8n.yourdomain.com # 替换为您在第五步中配置的子域名
service: http://localhost:5678 # 指向您本地 n8n 服务的地址和端口
- service: http_status:404 # 默认规则,对于其他未匹配的请求返回 404
注意检查Yaml文档的格式,特别是ingress的部分,第二个service没有横杠。都没问题可以运行n8n了,输入下列命令启动。
cloudflared tunnel run UUID
运行成功后,打开域名地址就能在公网访问n8n,账号密码要好好记录,私有部署忘记了只能删号重来。
为了运行不出错,要保持cloudflared运行,也就是这个终端窗口不能关闭,有点扯,还得进一步把cloudflared添加为系统服务,官方文档在这里,太长不看mac版:
cloudflared service install # 安装服务
sudo launchctl load /Library/LaunchDaemons/com.cloudflare.cloudflared.plist #载入服务
sudo launchctl start com.cloudflare.cloudflared # 启动服务
sudo launchctl list | grep cloudflared #检查启动状态
另外,可以在 Cloudflare Zero Trust 仪表板配置n8n域名的 Access策略,进一步增强安全性,以后再说了。
我可以在 n8n 的教程上转载你这篇文章,并附上原文链接吗?
当然没问题!受宠若惊哈哈~正在逐步跟着你的教程探索n8n