AI & 자동화/n8n

n8n 시작하기

안드레날린 2026. 4. 29. 21:57

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