본문 바로가기
다양한 TIP

cloudways로 n8n 설치해보기

by 유기농프로그래밍 2025. 12. 8.
반응형

자동화를 위하여 n8n을 공부해서 사용해보기로 했습니다.

 

좀 더 돈이 덜아깝게 하려고 기존 블로그를 위해 구독하고 있는 cloudways를 사용하여 n8n을 설치하기로 했습니다.

n8n은 오픈소스이기 때문에 직접 설치하면 무료로 쭉 쓸 수 있습니다.

(무료로는 제약이 있고 좀 쓰면 유료로 해야하기 때문에 어차피 공간 많이 남는 구독한 서버를 썼습니다)

 

어쨌든 아래와 같이 cloudways에서 custom application을 생성합니다.

 

Add Application을 누르고, 사용중인 서버를 선택한 후에 Custom App을 선택합니다.

Application Name에 이름을 지어주고, 아래 퍼포먼스를 선택합니다.

(저는 그냥 Lightning Stack을 선택했습니다)

맨 마지막까지 설치해보니 이거 Lighting Stack 쓰면 안됩니다 Hybrid를 꼭 씁시다!! ㅠ_ㅠ

 

 

 

전 N8N이라는 이름으로 등록했는데요. 이제 Applications에 추가된 걸 볼 수 있습니다.

 

이제 Access Details에서 SSH/SFTP Details에서 사용할 계정을 추가합니다.

 

그리고 Application Settings에 들어가서 SSH Shell Access를 설정해줘야 ssh로 붙을 수 있습니다.

 

 

이제 ssh로 접속합니다.

 

이제 n8n을 설치해야하는데

그냥 설치하면 sudo권한이 막혀있기 때문에 다 실패합니다.

 

 

아래와 같이 명령어를 입력하면 설치가 됩니다.

[]:n8n$ mkdir -p .npm-cache
[]:n8n$ NPM_CONFIG_CACHE=$PWD/.npm-cache npm install --unsafe-perm n8n

 

 

이제 아래 명령어로 n8n이 보이면 설치가 완료됩니다.

 ls node_modules | grep n8n

 

이제 실행, 접속 단계만 남았는데요.

 

환경설정부터 만들어야합니다.

 

vi .env 를 눌러 아래 내용을 복사합니다.(비밀번호는 알아서)

# n8n가 들을 포트 (Cloudways Node.js 기본 포트 3000에 맞춤)
N8N_PORT=3000
N8N_HOST=0.0.0.0

# 기본 로그인 보안
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=강력한_비밀번호_여기로

# DB는 일단 SQLite로 (테스트/소규모용)
DB_TYPE=sqlite
DB_SQLITE_VACUUM_ON_STARTUP=true

 

여기서 아래를 누르면 되는데, 에러가 뜹니다.

NPM_CONFIG_CACHE=$PWD/.npm-cache npx n8n

 

NPM_CONFIG_CACHE=$PWD/.npm-cache npx n8n

Your Node.js version 18.17.1 is currently not supported by n8n. Please use a Node.js version that satisfies the following version range: >=20.19 <= 24.x

node js 버전이 n8n이 지원하는거에 맞지 않다는 것입니다.

20.19 이상은 써야한다는군요 ㅠ_ㅠ

 

Cloudways에서 업데이트 하기까기 기다리는건 무리이니 직접 node js 20버전을 설치해봅시다.

 

아까 n8n폴더로 이동합니다.

cd ~/public_html/n8n

 

NVM_DIR 환경변수를 현재 폴더 기준으로 바꿔 줍니다.

export NVM_DIR="$PWD/.nvm"

 

.nvm을 생성해줍니다.

mkdir -p .nvm

 

이제 nvm 설치를 합니다.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

 

설치가 되면 Node 20을 설치할건데요.

nvm 스크립트를 로드해줍니다.

source "$PWD/.nvm/nvm.sh"

 

이제 설치를 하고 나면 node -v로 20.x.x가 나오면 성공입니다.

nvm install 20
nvm use 20

 

저는 아래처럼 나왔습니다.

[]:n8n$ node -v
v20.19.6

 

이제 n8n 기존걸 지우고 새로 재설치합니다.

 

rm -rf node_modules package-lock.json
mkdir -p .npm-cache

NPM_CONFIG_CACHE=$PWD/.npm-cache npm install n8n --unsafe-perm

 

마지막 관문이 또 남았네요.

.n8n_data를 생성하는 권한이 없어서 실패했는데요.

source "$PWD/.nvm/nvm.sh"
nvm use 20
NPM_CONFIG_CACHE=$PWD/.npm-cache npx n8n
Now using node v20.19.6 (npm v10.8.2)
No encryption key found - Auto-generating and saving to: /home/1423276.cloudwaysapps.com/nyayknamcc/.n8n/config
No encryption key found - Auto-generating and saving to: /home/1423276.cloudwaysapps.com/nyayknamcc/.n8n/config
Error: EACCES: permission denied, mkdir '/home/1423276.cloudwaysapps.com/nyayknamcc/.n8n'
    at mkdirSync (node:fs:1372:26)
    at InstanceSettings.loadOrCreate (/home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/n8n-core/src/instance-settings/instance-settings.ts:212:12)
    at new InstanceSettings (/home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/n8n-core/src/instance-settings/instance-settings.ts:67:24)
    at ContainerClass.get (/home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/@n8n/di/src/di.ts:104:16)
    at CommunityPackagesModule.loadDir (/home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/n8n/src/modules/community-packages/community-packages.module.ts:37:30)
    at ModuleRegistry.loadModules (/home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/@n8n/backend-common/src/modules/module-registry.ts:97:20)
    at CommandRegistry.execute (/home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/n8n/src/command-registry.ts:43:3)
    at /home/1423276.cloudwaysapps.com/nyayknamcc/public_html/n8n/node_modules/n8n/bin/n8n:63:2

 

만들어봅시다.

mkdir -p .n8n_data

 

다시 로드합니다.

source "$PWD/.nvm/nvm.sh"
nvm use 20

 

 

N8N_USER_FOLDER를 현재 폴더 아래로 지정 + 실행

export N8N_USER_FOLDER="$PWD/.n8n_data"
NPM_CONFIG_CACHE=$PWD/.npm-cache npx n8n

 

이제 실행이 되었는데, 브라우저에서 붙지 않습니다.

 

진짜진짜 마지막인데요.

mod proxy로 3000번 포트를 연결해줘야하는데 안되는겁니다.

먼저 아래 명령어로 설정을 입력합니다.

 

vi ~/public_html/.htaccess
RewriteEngine On

# n8n 에디터와 API 모든 요청을 3000 포트로 프록시
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]

 

이제는 Cloudways에서 직접 해당 서버를 설정해줘야합니다.

이렇게 물어보면 답해줄겁니다.

 

근데도 잘 안되면 이렇게까지 물어보면 됩니다.

 

이제 다 끝났습니다.(드디어 ㅠㅠ)

반응형

댓글