개발/개발관련

[개발관련] n8n 셀프 호스팅하기_ node.js npm

mabb 2023. 5. 17. 14:04
반응형

▶n8n이란

 

Welcome | n8n Docs

Welcome This is the documentation for n8n, a fair-code licensed node-based workflow automation tool. It covers everything from setup to usage and development. It is a work in progress and all contributions are welcome. Where to start Quickstarts Jump in wi

docs.n8n.io

n8n은 오픈소스 워크플로우 도구이다.
다양한 애플리케이션 및 시스템을 이용하는 워크플로우를 만들어 업무를 자동화하는데 사용할 수 있다.

 

▶n8n 로컬PC를 이용한 셀프 호스팅 방법 파악

개략적인 방법은 phind.com 을 참조한다.
1. node.js 에서 npm패키지 관리자를 통해 n8n을 설치한다.
2. n8n을 start하면 localhost:5678, 5678포트로 프로세스 접근이 가능하다.
3. background프로세스로 사용하려면 pm2가 필요하다.
4. https를 적용하려면 nginx 리버스 프록시 세팅이 필요하다.
5. n8n 인증을 하려면 OAuth2 또는 JWT(Json Web Tocken)이 필요하다.

https://www.phind.com/search?cache=b49c4d21-0978-46ea-bdae-f6ded6801b81

 

▶nodeJS npm을 이용한 n8n 설치

docs.n8n.io

npm 또는 Docker 사용 플랫폼에 n8n을 설치한다.

 

docs.n8n.io

▼n8n 셀프 호스팅을 위한 요구 지식
-서버와 컨테이너 설치 및 설정
-애플리캐이션 자원 관리 및 스케일링
-서버 및 애플리케이션 보안
-n8n 설정

▶npm

출처: n8n

npm은 n8n을 나의 로컬PC에서 시작하는 빠른 방법. Node.js 설치가 필요하다.

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

Node는 자바스크립트 런타임(실행환경) , 브라우저가 아닌 곳에서 자바스크립트를 실행시켜준다.
설치 후 cmd에서 "node" 라고 입력 후 javascript 코드를 작성하여 테스트해볼 수 있다.
VS코드에서 JS파일을 만들고 VS 터미널에서 실행하여 사용하면 될 것 같다.

 

▷npx를 이용해 설치없이 n8n을 이용하는 것도 가능하다. npx는 npm(Node Package Module)의 도구.

▷npm을 통한 전역설치

설치가 되는 모습



n8n폴더로 CD한 후에 start n8n을 하라는 의미

디렉토리 경로를 .n8n으로 변경해준다.

 

o를 누르면 테스트페이지인 http://localhost:5678로 브라우저가 실행된다.
Not logged In
http://localhost:5678에 로그인 화면이 켜진다.

 

로그인 정보 변경

▶n8n PM2 설치

pm2는 ProcessManager2 nodeJS 프로세스를 관리하는 패키지
nodeJS용 데몬 프로세스 관리자.

npm install pm2@latest -g

pm2 monit

 

▶n8n 설정

환경변수를 사용하여 n8n 설정을 변경할 수 있다.
CLI를 이용한 환경변수 세팅
파일을 이용한 환경변수 세팅

my-config.json 과 my-start-config.bat 생성

.n8n 경로에 컨피그파일(my-config.json)과 환경변수 세팅 및 n8n 실행 스크립트(my-start-config.bat)을 생성하고 내용을 다음과 같이 저장한다.

my-config.json


{
 "executions": {
  "process": "main",
  "saveDataOnSuccess": "none"
 },
 "generic": {
  "timezone": "Asia/Seoul"
 },
 "security": {
  "basicAuth": {
   "active": true,
   "user": "mbk1991",
   "password": "some-secure-password"
  }
 },
 "nodes": {
  "exclude": "[\"n8n-nodes-base.executeCommand\",\"n8n-nodes-base.writeBinaryFile\"]"
 }
}



my-start-config.bat

SET N8N_CONFIG_FILES=C:\Users\user\.n8n\my-config.json
SET NODE_FUNCTION_ALLOW_BUILTIN=*
SET NODE_FUNCTION_ALLOW_EXTERNAL=*
SET EXECUTIONS_TIMEOUT=900
SET EXECUTIONS_TIMEOUT_MAX=900
SET N8N_LOG_LEVEL=info
SET N8N_LOG_OUTPUT=file
SET N8N_LOG_FILE_LOCATION=C:\Users\user\.n8n\AutoCheck\n8n.log
C:\Users\user\AppData\Roaming\npm\n8n

 

환경변수 참조

 

 

Environment variables reference | n8n Docs

Hosting n8n Environment variables Configuration environment variables File-based configuration You can provide a configuration file for n8n. You can also append _FILE to certain variables to provide their configuration in a separate file. Variables that su

docs.n8n.io

 

 

https://docs.n8n.io/hosting/authentication/

 

 

ㄴ. 로컬 로그인이 안됨. (원인 파악 중)

반응형