n8n 셀프호스팅 완전 무료 설치 방법 (Zapier 갈아탄 후기)


Zapier 결제 내역 보고 멈칫했던 날, n8n을 깔았다

자동화 워크플로우를 Zapier로 돌리다가 어느 달 청구서를 열어보니 89달러가 찍혀 있었다. 하루 100건짜리 이메일 분류 자동화 하나 때문이었다. Task 기반 과금 구조라 건수가 늘수록 요금이 수직으로 올랐다. 그날 바로 n8n 공식 문서를 펼쳤다.

n8n은 오픈소스 워크플로우 자동화 플랫폼이다. Docker로 내 서버에 직접 설치하면 실행 횟수 제한 없이 완전 무료다. Zapier가 하는 일을 거의 다 하면서, OpenAI·Claude·Gemini 같은 LLM을 워크플로우에 직접 연결하는 AI 에이전트 기능까지 붙어 있다. 설치부터 첫 워크플로우 실행까지 직접 밟은 전 과정을 그대로 공개한다.



1. n8n이란 무엇이고 왜 셀프호스팅을 선택해야 하는가

n8n은 독일에서 시작된 오픈소스 워크플로우 자동화 플랫폼이다. 드래그 앤 드롭으로 노드를 연결해 “A가 발생하면 B를 실행해”라는 규칙을 만든다. 400개 이상의 앱과 서비스를 연결할 수 있고, 필요하면 JavaScript·Python 코드 블록을 직접 삽입해 커스터마이징이 가능하다. 2026년 기준으로는 LangChain을 네이티브로 통합해 AI 에이전트 파이프라인을 시각적으로 설계하는 기능까지 제공한다. [web:18]

n8n에는 두 가지 실행 방식이 있다. 클라우드 버전은 월 €20부터 시작하고, 셀프호스팅은 Docker만 있으면 완전 무료에 실행 횟수 제한도 없다. [web:23] 데이터가 내 서버 안에서만 움직이므로 보안이 중요한 업무에도 쓸 수 있다. 오늘 설치하는 방식은 셀프호스팅이다.

2. Docker로 n8n 설치하기 (Windows·Mac 공통)

사전 준비: Docker Desktop 설치

Docker가 없다면 docker.com에서 Docker Desktop을 먼저 설치한다. Windows는 WSL2 백엔드를 활성화해야 하는데, 설치 마법사가 자동으로 안내해준다. 설치 후 터미널에서 de>docker –version을 입력해 버전 정보가 뜨면 준비 완료다.

n8n 실행 — 명령어 한 줄

터미널을 열고 아래 명령어를 실행한다. 데이터를 영구 보존하기 위해 볼륨 마운트를 반드시 포함해야 한다. 컨테이너를 삭제해도 워크플로우 데이터가 사라지지 않는다.

de>docker run -d \
  --name n8n \
  --restart unless-stopped \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e GENERIC_TIMEZONE="Asia/Seoul" \
  -e TZ="Asia/Seoul" \
  docker.n8n.io/n8nio/n8n

명령어를 실행하면 Docker가 n8n 이미지를 자동으로 내려받고 컨테이너를 시작한다. 30초 정도 기다린 뒤 브라우저에서 de>http://localhost:5678에 접속하면 n8n 대시보드가 열린다. 이메일과 비밀번호로 첫 계정을 만들면 바로 사용할 수 있다.

컨테이너 관리 명령어 모음

de># n8n 중지
docker stop n8n

# n8n 재시작
docker start n8n

# n8n 버전 업데이트
docker pull docker.n8n.io/n8nio/n8n
docker stop n8n && docker rm n8n
# 위의 docker run 명령어 다시 실행

# 실행 상태 확인
docker ps

3. 첫 워크플로우 만들기: Gmail 수신 → AI 분류 → 텔레그램 알림

새 메일이 오면 GPT가 중요도를 판단하고, 중요한 메일만 텔레그램으로 알려주는 워크플로우다. Zapier에서 동일한 자동화를 돌리면 하루 100건 기준 월 89달러가 나왔던 바로 그 워크플로우다. n8n 셀프호스팅에서는 0원이다.

1단계: Gmail 트리거 노드 추가

n8n 대시보드에서 [New Workflow]를 클릭한다. 빈 캔버스 중앙의 + 버튼을 누르고 Gmail Trigger 노드를 검색해 추가한다. [Credential] 항목에서 구글 계정을 OAuth2로 연동하고, [Poll Times]를 1분으로 설정하면 매 1분마다 새 메일을 확인한다.

2단계: OpenAI 노드로 AI 중요도 분류

Gmail 노드 오른쪽에 OpenAI 노드를 연결한다. [Resource]는 Chat, [Model]은 gpt-4o-mini를 선택한다. Prompt 입력창에 아래 내용을 입력한다. de>{{ $json.subject }}와 de>{{ $json.snippet }}은 Gmail에서 넘어온 데이터를 그대로 참조하는 n8n 표현식이다.

de>다음 이메일의 중요도를 판단하세요.
제목: {{ $json.subject }}
내용 미리보기: {{ $json.snippet }}

반드시 아래 중 하나만 출력하세요: 중요 / 일반 / 스팸

3단계: IF 노드로 분기 처리 후 텔레그램 발송

OpenAI 노드 뒤에 IF 노드를 연결한다. 조건을 de>{{ $json.message.content }} contains de>중요로 설정한다. True 분기에 이전 글에서 만든 Telegram 노드를 연결하고 메시지를 아래처럼 구성하면 완성이다.

de>📬 중요 메일 도착
제목: {{ $('Gmail Trigger').item.json.subject }}
발신: {{ $('Gmail Trigger').item.json.from.value[0].address }}

오른쪽 상단 [Save] 후 [Activate] 토글을 켜면 워크플로우가 백그라운드에서 상시 동작한다. 이제 중요 메일이 오면 1분 안에 텔레그램으로 알림이 온다.

4. 직접 맞은 에러 2가지와 해결법

에러 ① PC를 껐더니 워크플로우가 멈춤

노트북을 닫고 이튿날 켰더니 Gmail 트리거가 멈춰 있었다. Docker 컨테이너는 살아있었지만 워크플로우 실행 이력을 보니 PC를 끈 시간대에 공백이 있었다. 당연한 이야기지만 셀프호스팅 n8n은 내 PC가 켜져 있어야만 돌아간다. 24시간 안정적으로 운영하려면 항상 켜두는 서버나 클라우드 VPS가 필요하다. 월 5달러짜리 Hetzner VPS에 n8n을 올기기니 이 문제가 완전히 해결됐다. [web:22]

에러 ② Gmail OAuth 인증이 계속 실패

Gmail 노드에 구글 계정을 연결하려고 OAuth2 인증을 시도했는데 de>redirect_uri_mismatch 에러가 났다. Google Cloud Console의 OAuth 앱 설정에서 승인된 리디렉션 URI에 de>http://localhost:5678/rest/oauth2-credential/callback을 추가해야 한다는 것을 나중에 알았다. 이 URI를 추가하고 다시 시도하니 깔끔하게 연결됐다. 외부 도메인으로 n8n을 배포했다면 localhost 대신 해당 도메인 주소로 바꿔야 한다.

5. Zapier·Make·n8n 비용 실전 비교

하루 100건 자동화 기준 세 플랫폼의 월 비용과 특성을 정리했다. [web:27]

항목 Zapier Make n8n 셀프호스팅
월 비용 (하루 100건) 약 89달러 약 19달러 0원 (VPS 비용 별도)
과금 기준 Task 수 Operation 수 실행 횟수 무제한
AI 연동 AI Agent (베타) AI Agent (정식) LangChain 네이티브, LLM 완전 지원
난이도 쉬움 (15분) 보통 (30분) 높음 (45분+, Docker 지식 필요)
데이터 주권 클라우드 전용 클라우드 전용 내 서버에서 완전 관리

빠르게 시작하고 기술 지식이 없다면 Zapier, 시각적 플로우와 가성비를 원한다면 Make, 비용 제로에 AI 에이전트까지 원한다면 n8n 셀프호스팅이 답이다. [web:21] 설치에 한 시간을 투자하면 매달 수만 원짜리 구독을 끊을 수 있다. 나한테는 그 계산이 명확했다.