n8n 시작하기
1. n8n 개요
n8n은 워크플로우 자동화 도구로 여러 앱이나 서비스를 연결해서 반복 작업을 자동으로 처리해주는 오픈소스 플랫폼이다.
2. n8n 설치
n8n은 셀프 호스팅(Self-hosting) 환경에서 Docker 사용을 권장 한다.
즉, 사전 준비 사항으로 Docker가 설치 되어 있어야 한다.
2.1 기본 설치 #1 (SQLite 기반)
n8n은 기본적으로 SQLite를 사용하여 자격 증명(credentials), 실행 이력(past executions), 워크 플로(workflows)를 저장한다.
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Asia/Seoul" \
-e TZ="Asia/Seoul" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
- GENERIC_TIMEZONE : Schedule Trigger 노드와 같은 스케줄 기반 노드의 시간 설정 및 실행 기준에 영향을 준다.
- TZ : date와 같은 스크립트 및 명령어의 출력 결과에 영향을 준다.
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS : 설정 파일의 권한을 엄격하게 체크, 보안 강화 옵션 (default: true)
- N8N_RUNNERS_ENABLED : 워크플로우 실행을 분리된 실행기(Runner)로 처리하도록 활성화하는 옵션 (default: false)
2.2 기본 설치 #2 (PostgreSQL 사용)
n8n은 PostgreSQL도 지원하며, 환경 변수를 통해 설정할 수 있다.
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Asia/Seoul" \
-e TZ="Asia/Seoul" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \
-e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \
-e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \
-e DB_POSTGRESDB_USER=<POSTGRES_USER> \
-e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
-e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
2.3 기본 설치 #3 (Docker Compose 기반 설치)
# ======================================================================
# 🚀 Stack: n8n + open-webui
# 📄 File: docker-compose.yml
# 📍 Full Path: $HOME/ai-services/docker-compose.yml
# 🎯 Purpose: AI automation service stack
#
# 💾 Persistent Storage (Docker-managed volumes)
#
# n8n_data:
# host location → /var/lib/docker/volumes/ai-services_n8n_data/_data
# purpose → n8n workflows, credentials, executions
#
# open_webui_data:
# host location → /var/lib/docker/volumes/ai-services_open_webui_data/_data
# purpose → chat history, configs, user data
#
# 🚀 운영 명령어
#
# 서비스 실행 / 관리
# cd $HOME/ai-services
# docker compose up -d # 서비스 실행 (백그라운드)
# docker compose down # 서비스 중지
# docker compose restart # 전체 재시작
#
# 상태 확인
# docker compose ps # 컨테이너 상태 확인
#
# 로그 확인
# docker compose logs -f # 전체 로그 실시간
# docker compose logs -f n8n # n8n 로그만 보기
# docker compose logs -f open-webui # open-webui 로그만 보기
#
# ======================================================================
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Seoul
- TZ=Asia/Seoul
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RUNNERS_ENABLED=true
# 🔥 리버스 프록시 필수 설정
- N8N_HOST=n8n.ahndrenaline.com
- N8N_PROTOCOL=https
# 🌐 외부 API(Webhook) 기준 주소
# → Slack, GitHub, Stripe 등 외부 서비스가 n8n을 호출할 때 사용하는 기본 URL
# → 모든 webhook URL 생성 기준이 됨
- WEBHOOK_URL=https://n8n.ahndrenaline.com/
# 🖥️ n8n 웹 UI(브라우저) 기준 주소
# → 로그인, 워크플로우 편집기, 실행 결과 링크 등 사용자 화면에서 사용하는 기본 URL
# → UI 내부에서 생성되는 모든 링크의 기준이 됨
- N8N_EDITOR_BASE_URL=https://n8n.ahndrenaline.com/
# 🔥 프록시 뒤에 있음을 명시 (중요)
- N8N_PROXY_HOPS=1
volumes:
- n8n_data:/home/node/.n8n
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "127.0.0.1:3000:8080"
environment:
- CORS_ALLOW_ORIGIN=*
volumes:
- open_webui_data:/app/backend/data
volumes:
n8n_data:
open_webui_data:
3. 더 많은 항목에 대하여
n8n의 추가 환경 변수 및 상세 설명은 아래 문서를 참고하면 된다.
셀프 호스팅 관련 문서: https://docs.n8n.io/hosting/
n8n Hosting Documentation and Guides | n8n Docs
Self-hosting n8n This section provides guidance on setting up self-hosted n8n. All self-hosted installations use the same core product. Without a license key, n8n runs as the free Community edition. Adding a Business or Enterprise license key enables those
docs.n8n.io