이 글에서는 가장 효율적인 n8n 설치 방법을 통해 반복적인 업무를 자동화하고 데이터 주권을 확보하는 과정을 안내합니다. 오픈소스 자동화 툴 n8n을 직접 서버에 설치(셀프 호스팅)하면 Zapier와 같은 SaaS 툴의 월 구독료를 절감하고, 모든 데이터를 외부 노출 없이 안전하게 관리할 수 있습니다. 이 가이드는 설치 전 준비사항부터 로컬 PC 설치(npm, Docker), 실제 운영을 위한 서버 배포, 초기 설정 및 보안 팁까지 모든 과정을 상세히 다루어, 누구나 자신만의 강력한 자동화 엔진을 구축할 수 있도록 돕습니다.
목차
- 1. n8n 환경 구축 방법: 설치 전 준비사항
- 2. 방법 1: npm으로 5분 만에 n8n 설치하기 (로컬 테스트용)
- 3. 방법 2: Docker를 활용한 n8n 도커 설치 가이드 (강력 추천)
- 4. 방법 3: Docker Compose 기반 n8n 서버 환경 구축 방법
- 5. 방법 4: 클라우드/VPS에 배포하는 n8n 서버 호스팅
- 6. n8n 초기 설정 후 필수 체크리스트
- 7. FAQ: 자주 묻는 질문과 문제 해결
- 8. 결론: 자동화의 시작, 이제 당신의 서버에서
1. n8n 환경 구축 방법: 설치 전 준비사항
본격적인 설치에 앞서, 자신의 환경에 맞는 최적의 설치 방법을 선택하고 필요한 시스템 사양을 미리 파악하는 것이 중요합니다. 이 섹션은 성공적인 n8n 환경 구축 방법의 기초를 다지는 단계로, 하드웨어부터 소프트웨어, 네트워크까지 꼼꼼히 체크하여 시행착오를 줄일 수 있도록 돕습니다.
1.1. 시스템 요구사항 체크리스트
n8n을 원활하게 운영하기 위한 최소 및 권장 사양입니다. 개인 테스트용과 실제 팀 운영용은 요구사항이 다르므로, 목적에 맞게 준비해야 합니다.
- 하드웨어
- 최소 사양 (개인 테스트용): 1 vCPU, 1GB RAM, 10GB SSD. 간단한 워크플로우 1~2개를 테스트하는 용도입니다.
- 권장 사양 (소규모 팀 운영): 2 vCPU 이상, 4GB RAM 이상, 20GB SSD 이상. 가장 일반적인 n8n 서버 호스팅 환경으로, 안정적인 운영이 가능합니다.
- 대규모 운영 환경: 4 vCPU, 8GB RAM 이상. 동시에 수십 개의 워크플로우를 실행하거나 데이터 처리량이 많을 때 권장됩니다.
- 소프트웨어
- Node.js: npm으로 설치할 경우 필요하며, 안정성을 위해 18.x 버전 이상의 LTS(Long-Term Support) 버전을 권장합니다.
- Docker & Docker Compose: 이 글에서 가장 추천하는 n8n 도커 설치 가이드를 따라 하려면 필수입니다. Windows/macOS용 Docker Desktop 또는 Linux용 Docker Engine을 미리 설치해야 합니다.
- 네트워크 및 도메인
- 방화벽 설정: 외부에서 n8n에 접속하려면 서버의 5678번 TCP 포트에 대한 인바운드 규칙을 허용해야 합니다.
- 도메인:
n8n.mycompany.com처럼 나만의 주소로 접속하고 웹훅(Webhook) 기능을 제대로 사용하려면 개인 도메인 또는 서브도메인이 필요합니다.
1.2. 나에게 맞는 설치 방법 선택하기
n8n 설치 방법은 다양하며, 각기 다른 장단점과 추천 대상이 있습니다. 아래 표를 통해 자신의 기술 수준과 운영 목적에 가장 적합한 방법을 선택하세요. 이 가이드에서는 모든 시나리오를 다루지만, 실제 운영 환경에서는 Docker Compose 방식이 가장 표준적입니다.
| 설치 방법 | 장점 | 단점 | 추천 대상 |
|---|---|---|---|
| npm 설치 | 가장 빠르고 간단하게 로컬 테스트 가능 | 데이터 영속성 관리 및 업데이트가 번거로워 서버 운영에는 부적합 | n8n을 처음 맛보고 싶은 사용자 |
| Docker 단일 컨테이너 | 격리된 환경에서 쉽고 깔끔하게 설치 가능. 데이터 영속화가 용이 | 재시작 설정, DB 연동 등 복잡한 설정은 번거로움 | 개인 프로젝트, 개발 환경에서 사용할 개발자 |
| Docker Compose (강력 추천) | 설정 파일 기반으로 n8n, DB 등을 한번에 관리. 업데이트/재시작이 매우 편리 | Docker 및 YAML 파일에 대한 기초적인 이해 필요 | 실제 업무용, 팀 단위 프로덕션 환경 |
| n8n Cloud | 설치 및 관리 전혀 불필요. 가입 즉시 사용 가능 | 월 구독료 발생, 데이터 외부 저장 | 인프라 관리 인력이 없는 팀, 빠른 PoC 필요시 |

2. 방법 1: npm으로 5분 만에 n8n 설치하기 (로컬 테스트용)
가장 빠르게 n8n을 경험해볼 수 있는 방법입니다. 복잡한 설정 없이 단 몇 개의 명령어로 내 PC에서 n8n을 바로 실행할 수 있어, n8n의 기능을 간단히 테스트하고 싶을 때 가장 이상적인 n8n 설치 방법입니다.
2.1. Node.js 설치 확인
먼저 터미널(macOS/Linux) 또는 명령 프롬프트(CMD, Windows)를 열어 Node.js와 npm이 설치되어 있는지 확인합니다. n8n은 Node.js 18 버전 이상을 권장합니다.
node --version
npm --version만약 설치되어 있지 않거나 버전이 낮다면, Node.js 공식 웹사이트에서 LTS 버전을 다운로드하여 설치하세요.
2.2. n8n 글로벌 설치 명령어
다음 명령어를 실행하여 n8n을 PC 전역(global)에 설치합니다. 이렇게 하면 터미널 어디에서든 n8n 명령어를 사용할 수 있게 됩니다.
npm install -g n8n팁: 만약 권한 오류(EACCES: permission denied)가 발생한다면, Linux나 macOS에서는 명령어 앞에
sudo를 붙여sudo npm install -g n8n으로 실행하세요. Windows 사용자는 PowerShell이나 CMD를 ‘관리자 권한으로 실행’한 뒤 명령어를 입력하면 됩니다.
2.3. n8n 실행 및 n8n 초기 설정
설치가 완료되면, 터미널에 다음 명령어를 입력하여 n8n을 시작합니다.
n8n start이제 웹 브라우저를 열고 주소창에 http://localhost:5678을 입력하면 n8n 시작 화면이 나타납니다. 여기서 관리자로 사용할 계정의 이메일, 이름, 비밀번호를 입력하여 n8n 초기 설정을 완료하고 첫 워크스페이스를 생성하면 모든 준비가 끝납니다.
3. 방법 2: Docker를 활용한 n8n 도커 설치 가이드 (강력 추천)
npm 설치는 간단하지만, PC를 재부팅하면 n8n이 꺼지고 워크플로우 데이터가 사라질 위험이 있습니다. n8n 도커 설치 가이드는 이러한 문제를 해결하는 가장 확실한 방법입니다. Docker를 사용하면 n8n을 독립된 환경에 설치하고, 데이터를 영구적으로 보존하며, 서버가 재시작되어도 자동으로 실행되게 할 수 있습니다.
3.1. Docker 설치 확인
PC에 Docker가 설치되어 있는지 확인합니다. Windows와 macOS 사용자는 Docker Desktop을, Linux 사용자는 Docker Engine을 설치하면 됩니다. 터미널에 아래 명령어를 입력하여 설치 여부와 버전을 확인하세요.
docker --version3.2. Docker 단일 컨테이너 실행 (데이터 저장 포함)
다음 Docker run 명령어를 터미널에 복사하여 실행하세요. 이 명령어 한 줄로 n8n 실행, 데이터 영구 저장, 자동 재시작, 시간대 설정까지 모두 해결됩니다.
docker run -d --restart always --name n8n \
-p 5678:5678 \
-e TZ=Asia/Seoul \
-v n8n_data:/home/node/.n8n \
n8nio/n8n명령어 옵션 상세 설명:
-d: 컨테이너를 백그라운드에서 실행합니다. 터미널을 닫아도 n8n은 계속 실행됩니다.--restart always: Docker가 시작되거나 예기치 않게 종료되었을 때, 컨테이너를 자동으로 재시작합니다.--name n8n: 컨테이너에 ‘n8n’이라는 식별하기 쉬운 이름을 부여합니다.-p 5678:5678: 내 PC의 5678번 포트와 컨테이너 내부의 5678번 포트를 연결(매핑)합니다.-e TZ=Asia/Seoul: n8n의 시간대를 서울 기준으로 설정합니다. 워크플로우 예약 실행(schedule)이 정확한 시간에 동작하기 위해 필수적인 설정입니다.-v n8n_data:/home/node/.n8n:n8n_data라는 Docker 볼륨을 생성하고, n8n의 데이터가 저장되는 컨테이너 내부 폴더(/home/node/.n8n)와 연결합니다. 이 설정 덕분에 컨테이너를 삭제하고 새로 만들어도 워크플로우와 설정이 그대로 유지됩니다.
3.3. 접속 및 초기 설정
컨테이너 실행 후, npm 방식과 동일하게 웹 브라우저에서 http://localhost:5678로 접속합니다. n8n 초기 설정 화면에서 관리자 계정을 생성하면 바로 n8n을 안정적으로 사용할 수 있습니다.

4. 방법 3: Docker Compose 기반 n8n 서버 환경 구축 방법
실제 업무 환경이나 팀 단위로 n8n을 운영할 때는 Docker Compose를 사용하는 것이 가장 표준적인 n8n 환경 구축 방법입니다. docker-compose.yml이라는 설정 파일 하나로 n8n의 버전, 포트, 볼륨, 환경 변수 등 모든 설정을 체계적으로 관리하고, 향후 데이터베이스 연동이나 스케일업에도 유연하게 대처할 수 있습니다.
4.1. docker-compose.yml 파일 작성
먼저 n8n-server와 같이 프로젝트를 위한 폴더를 하나 만듭니다. 그 안에 docker-compose.yml 파일을 생성하고 아래 내용을 그대로 복사하여 붙여넣으세요. YAML 파일은 들여쓰기가 매우 중요하므로, 공백 하나도 틀리지 않게 주의해야 합니다.
version: '3.7'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=Asia/Seoul
volumes:
- ./n8n_data:/home/node/.n8n보안 팁: 위 설정에서
ports를127.0.0.1:5678:5678로 설정한 이유가 중요합니다. 이는 n8n 컨테이너가 서버 외부(0.0.0.0)가 아닌, 서버 내부(127.0.0.1)에서만 접근 가능하도록 제한하는 보안 설정입니다. 외부 접속은 다음 단계에서 설정할 안전한 웹서버(리버스 프록시)를 통해서만 허용하게 됩니다.
4.2. .env 파일로 설정 분리
같은 폴더에 .env 파일을 만들고, 자신의 도메인 정보를 아래와 같이 입력합니다. 이 파일을 사용하면 도메인 같은 민감하거나 자주 바뀌는 정보를 docker-compose.yml 파일과 분리하여 안전하고 편리하게 관리할 수 있습니다.
# .env
DOMAIN_NAME=example.com
SUBDOMAIN=n8n4.3. Docker Compose 실행
이제 docker-compose.yml 파일이 있는 폴더의 터미널에서 아래 명령어를 실행합니다. Docker가 .env 파일과 yml 파일을 읽어 정의된 대로 n8n 컨테이너를 백그라운드에서 실행합니다.
docker compose up -d이제 n8n은 서버 내부에서 안정적으로 실행 중입니다. 아직 외부에서는 접속할 수 없으며, 다음 n8n 서버 호스팅 단계에서 도메인 연결 및 외부 접속 설정을 완료하게 됩니다.
5. 방법 4: 클라우드/VPS에 배포하는 n8n 서버 호스팅
지금까지는 내 PC에서 n8n을 실행했지만, 실제 자동화 워크플로우는 24시간 안정적으로 동작해야 합니다. 이를 위해 AWS, Google Cloud 같은 클라우드 서비스나 VPS(가상 사설 서버)에 n8n을 배포하고 개인 도메인을 연결하는 최종 n8n 서버 호스팅 가이드를 안내합니다. 이 단계를 마치면 언제 어디서든 나만의 n8n에 접속하고 웹훅을 사용할 수 있습니다.
5.1. 클라우드 서버 준비 및 Docker 설치
AWS Lightsail, Google Cloud, Oracle Cloud 등 원하는 클라우드 서비스에서 Ubuntu 22.04 LTS 사양의 가상 서버를 생성합니다. (권장 사양: 2vCPU, 4GB RAM) 서버에 SSH로 접속한 뒤, Docker와 Docker Compose를 설치합니다.
5.2. 리버스 프록시(Nginx) 설정으로 HTTPS 적용
리버스 프록시는 외부의 인터넷 요청(https)을 내부에서 실행 중인 n8n 컨테이너(http)로 안전하게 전달해주는 문지기 역할을 합니다. 여기서는 가장 널리 쓰이는 Nginx를 사용합니다.
Nginx 설치:
sudo apt update
sudo apt install nginx -ySSL 인증서 발급 (Certbot 사용):
Let’s Encrypt의 SSL 인증서를 무료로 발급하고 자동으로 갱신해주는 Certbot을 설치합니다. n8n.example.com 부분은 자신의 도메인으로 변경하세요.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d n8n.example.comNginx 설정 파일 수정:
Certbot이 생성한 설정 파일(예: /etc/nginx/sites-available/default)을 열고, location / 블록 안에 아래 리버스 프록시 설정을 추가합니다. 이 설정은 n8n.example.com으로 들어온 모든 요청을 내부 n8n 컨테이너(127.0.0.1:5678)로 전달합니다.
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Connection '';
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_request_buffering off;
}Nginx 재시작:
설정을 저장한 후, Nginx를 재시작하여 변경사항을 적용합니다.
sudo systemctl restart nginx5.3. 최종 접속 확인
이제 웹 브라우저에서 https://n8n.example.com으로 접속해보세요. 자물쇠 아이콘과 함께 안전한 HTTPS가 적용된 n8n 초기 설정 화면을 만날 수 있다면, 성공적으로 모든 배포 과정이 완료된 것입니다.

6. n8n 초기 설정 후 필수 체크리스트
설치를 성공적으로 마쳤다고 해서 모든 것이 끝난 것은 아닙니다. 안정적이고 안전한 운영을 위해 반드시 확인해야 할 몇 가지 필수 체크리스트가 있습니다. 이 간단한 작업들은 향후 발생할 수 있는 데이터 유실이나 보안 문제를 예방하는 중요한 n8n 환경 구축 방법의 마무리 단계입니다.
6.1. 관리자 계정 보안 강화
n8n 초기 설정 시 생성한 관리자 계정은 여러분의 모든 자동화 워크플로우와 민감한 인증 정보를 관리하는 핵심 키입니다. 따라서, 다른 서비스에서 사용하지 않는 복잡하고 추측하기 어려운 강력한 비밀번호를 사용했는지 다시 한번 확인하고, 필요하다면 즉시 변경하세요.
6.2. 정기적인 업데이트 방법
오픈소스 프로젝트는 새로운 기능 추가와 보안 패치가 활발하게 이루어집니다. Docker Compose로 설치했다면 업데이트는 매우 간단합니다. docker-compose.yml 파일이 있는 폴더에서 아래 명령어 두 줄만 순서대로 실행하면, n8n을 최신 버전으로 안전하게 업데이트할 수 있습니다.
# 최신 n8n 이미지를 다운로드
docker compose pull
# 다운로드한 최신 이미지로 컨테이너를 다시 생성하고 실행
docker compose up -d6.3. 데이터 백업 전략
여러분의 모든 워크플로우, 인증 정보, 실행 기록은 Docker Compose 설정에서 volumes로 지정한 ./n8n_data 폴더에 저장됩니다. 이 폴더는 n8n의 심장과도 같습니다. 이 폴더를 zip이나 tar 등으로 주기적으로 압축하여 AWS S3와 같은 클라우드 스토리지나 다른 물리적 서버에 백업하는 정책을 반드시 수립하고 실행하세요.
7. FAQ: 자주 묻는 질문과 문제 해결
n8n을 설치하고 운영하다 보면 몇 가지 흔한 문제에 부딪힐 수 있습니다. 이 섹션에서는 초보자들이 자주 묻는 질문과 그에 대한 명확한 해결책을 제시하여, 문제 해결에 들이는 시간을 절약해 드립니다.
A1: 다른 프로그램이 이미 5678 포트를 사용하고 있다는 의미입니다. Docker 명령어의
-p 5678:5678부분을-p 5679:5678과 같이 사용하지 않는 다른 포트(예: 5679)로 변경하고,http://localhost:5679로 접속해보세요.A2: Docker 컨테이너를 실행할 때 자동 재시작 옵션을 빠뜨렸을 가능성이 높습니다. Docker
run명령어에--restart always옵션을 포함했는지 확인하세요. Docker Compose로 설치했다면restart: always정책이 기본적으로 포함되어 있어 별도 설정이 필요 없습니다.Q3: 시간 예약(Schedule)이 제가 원하는 시간에 동작하지 않아요.
A3: n8n 컨테이너의 시간대가 잘못 설정되었을 가능성이 큽니다. Docker 실행 시 환경 변수 옵션으로
-e TZ=Asia/Seoul을 추가했는지, 또는docker-compose.yml파일에GENERIC_TIMEZONE=Asia/Seoul환경 변수가 올바르게 설정되었는지 다시 한번 확인하세요.
8. 결론: 자동화의 시작, 이제 당신의 서버에서
이 글을 통해 우리는 다양한 n8n 설치 방법을 배우고, 각자의 목적에 맞는 최적의 n8n 환경 구축 방법을 선택하여 직접 실행해 보았습니다. 로컬 PC에서 간단히 테스트하는 npm 설치부터, 가장 권장되는 n8n 도커 설치 가이드, 그리고 실제 운영을 위한 n8n 서버 호스팅과 보안을 위한 HTTPS 설정까지 모든 과정을 완료했습니다.
이제 여러분은 월별 구독 비용과 외부 서비스에 대한 데이터 종속성으로부터 자유로운, 강력하고 유연한 자동화 엔진을 소유하게 되었습니다. 직접 구축한 이 n8n 서버는 앞으로 여러분의 반복적인 업무를 대신 처리하고, 다양한 서비스를 하나로 연결하며, 디지털 트랜스포메이션을 가속화하는 든든한 기반이 될 것입니다.
다음 글에서는 오늘 설치한 n8n을 활용하여 ‘첫 워크플로우 만들기: 슬랙과 구글 시트를 연동하여 데이터 자동화하기’ 예제를 함께 만들어보겠습니다. 기대해주세요