n8n 설치 방법 Docker 및 클라우드 가이드

n8n을 직접 셀프‑호스팅하면 보안·비용·확장성을 모두 확보할 수 있습니다. Node.js·Docker·클라우드 PaaS 중 원하는 방식으로 설치하고, 기본 인증·HTTPS·데이터 백업을 적용하면 안전하게 운영됩니다. 이 가이드를 따라 하면 오늘 바로 자동화 워크플로를 구축할 수 있습니다.

목차

1. 서론 – n8n이 무엇이고 왜 셀프‑호스팅이 중요한가?

n8n은 오픈소스 워크플로 자동화 툴로, 캔버스 위에 노드를 끌어다 놓아 다양한 서비스와 데이터를 시각화합니다. Zapier·Make에 비해 보안·비용·커스터마이징 면에서 큰 장점을 제공합니다.

  • 완전 셀프‑호스팅: 사내 서버·클라우드 어디든 직접 설치 가능
  • 비용 효율: 핵심 기능 무료, 사용량 제한 없음
  • 확장성: 커스텀 노드·플러그인으로 복잡한 로직 구현 가능
  • 데이터 주권: 모든 로그·워크플로가 내부 인프라에 보관돼 외부 유출 위험 최소화

2. 사전 준비 – 설치 전 반드시 확인해야 할 필수 사항

2.1 시스템 요구사항

  • Node.js ≥ 18 (LTS) 또는 Docker Engine ≥ 20
  • 최소 2 vCPU / 2 GB RAM, 저장공간 20 GB 이상 (팀 운영 시 4 vCPU/8 GB 권장)

2.2 포트·네트워크

  • 기본 포트 5678 (역방향 프록시 사용 시 80/443 매핑)
  • 프록시 도메인에 맞춰 N8N_HOST, N8N_PORT, N8N_PROTOCOL 설정

2.3 OS별 권한 설정

  • Linux: 전용 n8n 사용자·systemd 서비스 권장
  • macOS: nvm 이용 글로벌 설치 권장
  • Windows: WSL2 + Docker 조합이 가장 안정적

고해상도 사진-실사 사무실 설정, 디지털 스크린에 n8n 흐름도

3. n8n 설치 방법 – 3가지 시나리오

3.1 Node.js(베어‑메탈) 설치

전역 설치:

npm install n8n -g

기본 실행:

n8n start

환경 변수 예시:

export N8N_HOST=automation.example.com
export N8N_PORT=5678
export N8N_PROTOCOL=https
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=StrongPass!123
n8n start

systemd 서비스 파일 (/etc/systemd/system/n8n.service):

[Unit]
Description=n8n automation
After=network.target

[Service]
Type=simple
User=n8n
Environment=N8N_HOST=automation.example.com
Environment=N8N_PORT=5678
Environment=N8N_PROTOCOL=https
Environment=N8N_BASIC_AUTH_ACTIVE=true
Environment=N8N_BASIC_AUTH_USER=admin
Environment=N8N_BASIC_AUTH_PASSWORD=StrongPass!123
ExecStart=/usr/bin/n8n start
Restart=on-failure

[Install]
WantedBy=multi-user.target

교실 또는 회의실 화이트보드에 설치 전제 조건 체크리스트

3.2 n8n Docker 설치 가이드 (Docker Compose)

이미지 다운로드:

docker pull n8nio/n8n

docker-compose.yml 기본 템플릿:

version: '3.8'
services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - DB_TYPE=sqlite
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=StrongPass!123
      - N8N_HOST=automation.example.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
    volumes:
      - ./n8n-data:/home/node/.n8n
    restart: unless-stopped

배포:

docker compose up -d

데이터 영속성·백업 예시:

tar czf /backup/n8n-$(date +%Y%m%d).tar.gz ./n8n-data

파노라마 콜라주: Node.js, Docker, Cloud PaaS 설치 시나리오

3.3 클라우드 PaaS 셀프‑호스팅 (Railway·Render·Fly.io)

공통 요구 사항: N8N_HOST, N8N_BASIC_AUTH_* 등 환경 변수 비밀 관리 및 볼륨 마운트로 데이터 영속성 확보.

예시 표:

서비스 배포 단계 비용 포인트
Railway GitHub 연동 → Docker 자동 빌드 → 포트 5678 노출 무료 플랜 제한적, 프로 플랜 권장
Render New Web Service → Docker 이미지 지정 → Persistent Disk 초기 0 USD, 사용량에 따라 과금
Fly.io fly launch → Volume 생성 → 이미지 배포 1 GB·월 5 USD 수준, 글로벌 리전 선택 가능

서버룸 뷰, 랙에 락 심볼과 Grafana 대시보드

4. 셀프‑호스팅 후 보안·운영 최적화

  • 인증: N8N_BASIC_AUTH_ACTIVE=true 로 기본 인증 적용, 필요 시 Reverse Proxy에 OAuth2·SSO 연동
  • HTTPS: Let’s Encrypt + Nginx/Traefik 자동 인증·갱신 설정
  • DB 전환: 운영 단계에서는 DB_TYPE=postgresdb 로 PostgreSQL 마이그레이션 권장
  • 정기 백업: Docker 볼륨 압축 백업 + Cron 스케줄
  • 모니터링: Prometheus 메트릭 수집 → Grafana 대시보드 생성

고품질 도움말 데스크, 질문 표시와 FAQ 페이지가 보이는 노트북

5. 실전 워크플로 활용 예시 – 바로 적용 가능한 3가지 시나리오

5.1 GitHub → Slack 알림

  • 트리거: GitHub Webhook (Issues, PR)
  • 액션: Slack 메시지 전송
  • 핵심 포인트: N8N_HOST에 맞는 Webhook URL 비공개 설정

5.2 Google Sheet → MySQL 파이프라인

  • 트리거: Cron (매시간)
  • 소스: Google Sheets 읽기 → 데이터 정제 → MySQL UPSERT
  • 핵심 포인트: 작은 샘플로 테스트 후 전체 시트 적용

5.3 REST API 호출 → 이메일 오류 알림

  • 트리거: Cron (5분)
  • 액션: HTTP Request → IF 조건 분기 → Email 전송
  • 핵심 포인트: 의도적 실패 테스트로 오류 경로 검증

실제 흐름도: GitHub → Slack, Google Sheets → MySQL, REST API → Email

6. 문제 해결 FAQ

Q: npm i -g n8n 후 “command not found”

A: npm 글로벌 경로가 PATH에 포함됐는지 확인하고, `npm config get prefix` 결과를 쉘 PROFILE에 추가합니다.

Q: Docker 컨테이너가 바로 종료됨

A: `docker logs n8n`으로 로그 확인 → 환경 변수 누락·포트 충돌 여부 점검.

Q: 인증 없이 외부 접근 가능

A: `N8N_BASIC_AUTH_ACTIVE=true`와 사용자/비밀번호 설정을 검토하고, 프록시 방화벽에 IP 제한을 적용합니다.

Q: 데이터가 사라짐

A: Docker 볼륨 마운트(`./n8n-data:/home/node/.n8n`)가 올바른지 확인하고, 정기 백업 스크립트를 운영합니다.

7. 고급 확장 팁 – 기업 수준 스케일링

  • 멀티 인스턴스 로드밸런싱: Nginx + Docker Swarm/Kubernetes 로드밸런서와 PostgreSQL·Redis 공유
  • 커스텀 노드 개발: TypeScript 기반 노드 작성 → 사내 NPM 레지스트리 배포 (Custom Nodes 문서 참고)
  • 플러그인 마켓플레이스 활용: 커뮤니티 노드·템플릿 재사용, 내부 템플릿은 Git 버전 관리
  • Prometheus + Grafana 모니터링: 메트릭 수집 → 대시보드 시각화, 알림 규칙 설정

고급 기술 대시보드, n8n 인스턴스가 로드밸런서와 PostgreSQL·Redis에 연결된 모습

8. 마무리 & CTA

위 **n8n 설치 방법**을 그대로 따라 하면 오늘 바로 자동화 워크플로를 구축할 수 있습니다. 아래 PDF **‘n8n 셀프호스팅 체크리스트’**를 다운로드해 단계별 점검하고, 질문은 댓글로 남겨 주세요. 최신 자동화 사례와 고급 팁은 뉴스레터를 구독하면 받아볼 수 있습니다.

다운로드: n8n 셀프호스팅 체크리스트

9. 부록

9.1 용어 사전

  • Workflow: 트리거·노드가 연결된 자동화 흐름
  • Node: API 호출·DB 작업·조건 분기 등 개별 기능 블록
  • Trigger: 워크플로를 시작시키는 이벤트(웹훅·스케줄 등)
  • Webhook: 외부 서비스가 HTTP 요청으로 워크플로를 호출하는 방식

9.2 최신 버전 확인 방법

  • Node 설치형: n8n --version
  • Docker 설치형: docker pull n8nio/n8n:latest && docker images | grep n8n

9.3 참고 링크 (공식 문서)

랜딩 페이지 디자인, PDF 다운로드 버튼과 뉴스레터 구독 폼