n8n Self-hosting 완벽 가이드 (2025)
목표: 이 글에서는 오픈소스 자동화 도구인 n8n을 로컬 환경에서 Docker로 직접 설치(Self-hosted) 하는 방법을 가장 쉽게 설명합니다. 개발자, 마케터, 운영자 누구나 따라할 수 있도록 구성했습니다.
🔍 n8n이란?
n8n은 노코드(No-code) 기반의 워크플로우 자동화 플랫폼입니다. 다양한 API를 연결하거나 반복 작업을 자동화할 수 있으며, 아래와 같은 특징을 가지고 있습니다:
- 시각적 인터페이스로 자동화 구성 가능
- Slack, Gmail, Google Sheet, OpenAI 등 수백 개의 서비스 연동
- JavaScript 코드 삽입 가능 (하이브리드 자동화도 가능)
👉 공식 사이트: https://n8n.io
n8n.io - a powerful workflow automation tool
n8n is a free and source-available workflow automation tool
n8n.io
✅ 설치 방법 비교
설치 방식특징
n8n 클라우드 | 공식 유료 서비스 (빠른 시작 가능) |
n8n Self-hosted | 직접 환경 구축 (무료, 유연성 높음) |
이 포스트는 Self-hosted 방식, 그 중에서도 Docker를 활용한 로컬 설치 방법에 집중합니다.
🛠️ n8n Self-hosted 설치 준비
- 운영체제: Windows 11
- 설치 방식: Docker + Docker Compose
2025.05.31 - [개발/IT 기타] - Docker Desktop 설치 완벽 가이드 (2025)
Docker Desktop 설치 완벽 가이드 (2025)
🐳 Docker 설치 가이드🔹 Windows (WSL2 포함 환경 지원)Docker는 n8n을 Self-hosted 방식으로 설치하기 위해 반드시 필요한 도구입니다. 이 섹션에서는 Windows 환경에서 Docker Desktop을 설치하고 설정하는 방
tradeforge.tistory.com
1. Docker 설치
- 최신 Docker Desktop 설치
2. Docker Volume 생성
docker volume create n8n_data
n8n의 설정 및 데이터가 저장될 볼륨입니다. 컨테이너 삭제 시에도 데이터는 유지됩니다.
3. n8n 이미지 다운로드 및 실행
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
- 브라우저에서 http://localhost:5678로 접속
- 초기 계정 정보 입력 (Email, Password 등)
📸 실행 화면 PowerShell 예시
PS C:\Users\user> docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Permissions 0644 for n8n settings file /home/node/.n8n/config are too wide. This is ignored for now, but in the future n8n will attempt to change the permissions automatically. To automatically enforce correct permissions now set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (recommended), or turn this check off set N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false.
User settings loaded from: /home/node/.n8n/config
Initializing n8n process
n8n ready on 0.0.0.0, port 5678
There is a deprecation related to your environment variables. Please take the recommended actions to update your configuration:
- N8N_RUNNERS_ENABLED -> Running n8n without task runners is deprecated. Task runners will be turned on by default in a future version. Please set `N8N_RUNNERS_ENABLED=true` to enable task runners now and avoid potential issues in the future. Learn more: https://docs.n8n.io/hosting/configuration/task-runners/
[license SDK] Skipping renewal on init because renewal is not due yet or cert is not initialized
Version: 1.94.1
Editor is now accessible via:
http://localhost:5678
Press "o" to open in Browser.
🛠️ 번외 - 서버 호스팅 방법
서버 호스팅 시 아래와 같은 오류가 발생할 수 있습니다. (HTTPS/TLS 오류)
✅ 해결 방안
🔐 서버 내 ssl 키 생성
mkdir -p ~/n8n-certs
cd ~/n8n-certs
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout server.key \
-out server.crt \
-subj "/CN=localhost"
🔐 TLS 설정 및 HTTPS 세팅
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-v ~/n8n-certs:/files \
-e N8N_SECURE_COOKIE=false \
-e N8N_PROTOCOL=https \
-e N8N_SSL_KEY=/files/server.key \
-e N8N_SSL_CERT=/files/server.crt \
docker.n8n.io/n8nio/n8n
/path/to/ssl/을 SSL 키/인증서 파일을 저장하는 실제 경로로 변경하여, HTTPS가 활성화되고 쿠키 문제가 해결됩니다.
📦 docker-compose로 환경 설정하기
n8n은 도메인, 타임존 등 다양한 설정을 docker-compose.yml로 구성할 수 있습니다.
1. 작업 폴더 생성
예시: C:\devtool\n8n
2. .env 파일 생성
DOMAIN_NAME=selfhosted.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Asia/Seoul
이 설정은 도메인 주소와 타임존을 정의합니다.
3. docker-compose.yml 파일 생성
version: "3.7"
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "80:80"
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=80
- N8N_PROTOCOL=http
- NODE_ENV=production
- WEBHOOK_URL=http://${SUBDOMAIN}.${DOMAIN_NAME}
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_SECURE_COOKIE=false
env_file:
- .env
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
external: true
4. 실행하기
docker-compose up -d
정상적으로 실행되면 http://n8n.selfhosted.com 으로 접속 가능해야 합니다.
5. 로컬 호스트 파일 수정 (Windows)
C:\Windows\System32\drivers\etc\hosts 파일을 열어 아래 한 줄 추가:
127.0.0.1 n8n.selfhosted.com
관리자 권한으로 편집기 실행 필수!
🚀 설치 완료 후 할 수 있는 일
- 웹에서 워크플로우 시각적으로 만들기
- OpenAI, Telegram, Gmail 등과 연동 테스트
- Node.js Function 노드를 활용한 고급 자동화 구성
🔖 요약
단계 | 설명 |
1 | Docker Desktop 설치 |
2 | n8n 볼륨 생성: docker volume create n8n_data |
3 | 이미지로 실행: docker run ... |
4 | .env, docker-compose.yml 생성 후 docker-compose up -d 실행 |
5 | hosts 파일 수정 후 도메인 접속 |
💬 마무리
n8n은 개발자뿐 아니라 비개발자도 활용 가능한 강력한 자동화 플랫폼입니다.
직접 설치(Self-hosting)를 통해 비용을 아끼고, 더 높은 자유도로 자신만의 자동화 서버를 구축해보세요!
질문이 있다면 댓글로 남겨주세요. 다음에는 n8n 워크플로우 실전 예제로 찾아뵙겠습니다.
이 글이 도움이 되셨다면 공감 ❤️ 과 궁금하셨던 점들을 댓글로 ✍️ 부탁드립니다.
감사합니다 🙌