반응형
로컬에서 실행 중인 n8n을 외부에서 접근하려면 ngrok을 통해 터널링을 해야 합니다.
하지만 매번 재부팅 후 ngrok을 다시 실행해야 하는 번거로움을 겪고 있다면,
작업 스케줄러 + PM2를 활용해 자동 실행되는 환경을 만들어 보세요!
🛠 작업 순서
1️⃣ 작업 스케줄러(Task Scheduler) 등록
- Win + R → taskschd.msc 입력 후 실행
- 좌측 메뉴에서 "작업 만들기" 클릭
- 이름은 자유롭게 설정 (Auto Ngrok, ngrok boot, 등)
- 보안 옵션에서 가장 높은 권한으로 실행 체크
2️⃣ 트리거 설정
- 탭에서 [트리거] → 새로 만들기
- 작업 시작 조건: 로그온할 때 선택
- 확인 클릭
3️⃣ 동작 설정
- [동작] → 새로 만들기 클릭
- 프로그램/스크립트:
- 아래 명령어로 pm2의 경로를 확인합니다:
where pm2
- 가장 마지막 경로 선택 (예: C:\Users\...\AppData\Roaming\npm\pm2.cmd)
- 아래 명령어로 pm2의 경로를 확인합니다:
- 인수 추가:
start ngrok.exe --name ngrok -- http 5678 --domain=<ngrok url>.app
- 시작 위치:
- ngrok.exe가 위치한 경로 지정 (예: C:\Users\...\Downloads)
4️⃣ 재부팅 후 확인
- 컴퓨터를 재부팅하면 cmd 창이 자동으로 열리면서 ngrok이 실행됩니다.
- 도메인(Ngrok)에 접속해 정상 작동 확인
❗ 문제 발생: PM2 status 실행 시 오류
- cmd창에서 pm2 status 확인시 Error 발생
Error: connect EPERM //./pipe/rpc.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1636:16)
Emitted 'error' event on ReqSocket instance at:
at Socket.<anonymous> (C:\Users\kiimy\AppData\Roaming\npm\node_modules\pm2\node_modules\pm2-axon\lib\sockets\sock.js:201:49)
at Socket.emit (node:events:518:28)
at emitErrorNT (node:internal/streams/destroy:170:8)
at emitErrorCloseNT (node:internal/streams/destroy:129:3)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
errno: -4048,
code: 'EPERM',
syscall: 'connect',
address: '//./pipe/rpc.sock'
}
원인:
- PowerShell의 스크립트 실행 정책(Execution Policy) 이 너무 제한적으로 설정되어 있어
.ps1 형식의 스크립트 실행이 차단됨
✅ 해결 방법: 실행 정책 완화
- 관리자 PowerShell 실행
- 아래 명령어 입력:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
📌 설명
- RemoteSigned: 로컬 작성 스크립트는 실행 가능
- Scope=CurrentUser: 현재 사용자에만 적용 (시스템 전체 X)
🏁 마무리
- 다시 PowerShell에서 pm2 status 실행
- ngrok 프로세스가 online 상태로 정상 실행되었는지 확인
이제 재부팅해도 자동으로 ngrok이 실행되며 외부에서 n8n에 접근할 수 있습니다.
pm2 + 작업 스케줄러 조합은 다른 Node.js 기반 스크립트 실행에도 유용하니 적극 활용해보세요!
728x90
'IT 개인학습 > Memo' 카테고리의 다른 글
💡 Node.js와 PM2로 ngrok을 상시 실행하는 방법 (0) | 2025.05.09 |
---|---|
n8n + OpenAI Chat Model 연동 시 발생한 오류 해결기 (1) | 2025.05.09 |
n8n에서 Webhook 사용하기, Docker + Ngrok (0) | 2025.05.09 |
n8n Self Hosting with Docker (Window) (0) | 2025.05.08 |
n8n에서 웹훅(Webhook)이 필요한 이유는 뭘까? (0) | 2025.05.07 |
댓글