本地服务器部署自动化工具n8n +ngrok一键守护实现https 解锁所有功能

适合新手小白入门,所有步骤依次执行即可完成 n8n 基础环境、部署、HTTPS 通信配置、ngrok 自动化更新管理。


一、基础环境配置 (Ubuntu Server)

1.1 更新系统
sudo apt update && sudo apt upgrade -y
1.2 安装 Docker + docker-compose
sudo apt install -y docker.io docker-compose unzip curl jq
sudo systemctl enable docker --now
1.3 验证是否安装成功
docker --version
docker-compose --version

二、部署 n8n (Docker 版)

2.1 创建目录
mkdir -p /root/n8n && cd /root/n8n
2.2 编辑 docker-compose.yml
nano docker-compose.yml

内容填写:

version: "3.7"
services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=yourpassword
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - WEBHOOK_URL=https://placeholder.ngrok-free.app
      - WEBHOOK_TUNNEL_URL=https://placeholder.ngrok-free.app
      - TZ=Asia/Shanghai
    volumes:
      - /root/n8n/n8n_data:/home/node/.n8n

请把 yourpassword 换成你自己设置的密码

2.3 启动 n8n
cd /root/n8n
docker-compose up -d
2.4 正常启动后,访问地址:
http://<Ubuntu IP>:5678

输入你的 admin 账号密码登陆。


三、安装 ngrok 实现 HTTPS
3.1 下载 ngrok
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-stable-linux-amd64.zip -O ngrok.zip
unzip ngrok.zip
mv ngrok /usr/local/bin/
chmod +x /usr/local/bin/ngrok
3.2 注册并访问 dashboard
3.3 配置 token
ngrok config add-authtoken <备份你的 token>
3.4 启动 ngrok 管道 (http)
ngrok http 5678 > /root/ngrok.log 2>&1 &

四、查看当前 ngrok URL

4.1 显示 ngrok URL 的命令
curl -s http://127.0.0.1:4040/api/tunnels | grep -o 'https://[a-zA-Z0-9.-]*.ngrok-free.app' | head -n 1
4.2 将命令简化成 ngrok-url
echo 'curl -s http://127.0.0.1:4040/api/tunnels | grep -o "https://[a-zA-Z0-9.-]*.ngrok-free.app" | head -n 1' > /usr/local/bin/ngrok-url
chmod +x /usr/local/bin/ngrok-url

既可:

ngrok-url

五、自动更换 ngrok 地址脚本 + 重启 n8n

5.1 新建脚本 /root/n8n/update_ngrok_and_restart.sh
nano /root/n8n/update_ngrok_and_restart.sh

填入:

#!/bin/bash
set -e
COMPOSE_FILE="/root/n8n/docker-compose.yml"
NGROK_API="http://127.0.0.1:4040/api/tunnels"

NGROK_URL=$(curl -s $NGROK_API | grep -o 'https://[a-zA-Z0-9.-]*.ngrok-free.app' | head -n 1)

if [[ -z "$NGROK_URL" ]]; then
  echo "\ud83d\udeab \u65e0\u6cd5\u83b7\u53d6 ngrok \u5730\u5740"
  exit 1
fi

echo "\u2705 \u5f53\u524d ngrok \u5730\u5740:$NGROK_URL"

sed -i "s|WEBHOOK_TUNNEL_URL=.*|WEBHOOK_TUNNEL_URL=$NGROK_URL|" "$COMPOSE_FILE"
sed -i "s|WEBHOOK_URL=.*|WEBHOOK_URL=$NGROK_URL|" "$COMPOSE_FILE"

cd /root/n8n
docker-compose down
docker-compose up -d

echo "\ud83c\udf89 n8n \u91cd\u542f\u5b8c\u6210,ngrok 地\u5740已更新\uff01"
5.2 设置权限 + 执行
chmod +x /root/n8n/update_ngrok_and_restart.sh
/root/n8n/update_ngrok_and_restart.sh

六、一键完整操作流程

cd /root/n8n
nohup ngrok http 5678 > /root/ngrok.log 2>&1 &
sleep 2
/root/n8n/update_ngrok_and_restart.sh

这样会自动获取 ngrok HTTPS 地址,并替换到 docker-compose.yml 里面,重启 n8n

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top