n8n + Ollama: 홈서버에서 굴리는 월 0원 AI 자동화 파이프라인
💡 글의 핵심 3줄 요약
- n8n(워크플로우 엔진)과 Ollama(로컬 LLM 런타임)를 홈서버에 함께 올리면, 외부 API 비용 없이 전기요금만으로 AI 자동화를 무제한 돌릴 수 있습니다.
- 이메일 분류, RSS 피드 요약, 문서 자동 태깅처럼 "매일 반복되는 자잘한 판단 작업"이 로컬 AI 자동화의 가장 실속 있는 적용처입니다.
- 시작은 Docker Compose 서비스 두 개면 충분하며, 무거운 모델보다 작고 빠른 모델로 시작해 필요할 때만 키우는 것이 홈서버 환경의 정답입니다.
n8n + Ollama: 홈서버에서 굴리는 월 0원 AI 자동화 파이프라인
혹시 매일 아침 이런 일로 10분씩 쓰고 계시지 않나요? 밤사이 쌓인 메일을 훑으며 광고를 지우고, 뉴스레터를 나중에 읽을 폴더로 옮기고, 급한 메일만 골라내는 일 말입니다. 하나하나는 몇 초짜리 판단이지만, 모이면 하루 20~30분이 사라집니다. 그리고 이런 "자잘한 판단이 필요한 반복 작업"이야말로 요즘 로컬 AI 자동화가 가장 잘하는 영역입니다.
클라우드 자동화 서비스에 AI 기능을 붙이면 되지 않느냐고요? 됩니다. 다만 실행 횟수마다 과금되는 요금제와, 내 메일 전문이 외부 API로 흘러가는 구조를 감수해야 하죠. 홈서버를 운영하고 계시다면 훨씬 매력적인 선택지가 있습니다. 오픈 소스 워크플로우 엔진 n8n과 로컬 LLM 런타임 Ollama를 같은 서버에 올리는 조합입니다. 2026년 셀프호스팅 커뮤니티에서 사실상 표준처럼 자리 잡은 이 조합은, 비유하자면 집에 24시간 상주하는 무급 비서를 들이는 것과 같습니다. 월급은 전기요금이 전부입니다.
오늘은 이 스택을 홈서버에 올리는 방법부터, 제가 실제로 유용하다고 느낀 워크플로우 패턴, 그리고 운영하면서 부딪히는 현실적인 문제들까지 순서대로 풀어보겠습니다.
왜 n8n과 Ollama 조합인가요?
먼저 두 도구의 역할 분담부터 정리하겠습니다. n8n은 "무슨 일이 생기면(트리거), 무엇을 한다(액션)"를 노드 연결로 짜는 워크플로우 엔진입니다. Zapier나 Make의 셀프호스팅 대안으로 유명하지만, 결정적 차이는 실행 횟수 제한이 없다는 점입니다. 클라우드 자동화 서비스와 비교하면 비용 차이가 10배 이상 벌어진다는 계산도 흔히 나옵니다.
Ollama는 로컬에서 LLM을 돌리는 가장 손쉬운 방법입니다. 모델 이름 하나로 내려받아 바로 API 서버로 쓸 수 있죠. 그리고 n8n에는 Ollama를 호출하는 AI 노드가 내장되어 있어서, 두 도구는 설정 몇 줄로 연결됩니다.
이 조합의 진짜 강점은 세 가지입니다.
- 비용: 워크플로우가 하루에 천 번을 돌아도 추가 비용이 없습니다. 토큰 단가를 계산하며 프롬프트를 줄이는 스트레스에서 해방됩니다.
- 프라이버시: 메일 본문, 개인 문서, 가계부 데이터가 집 밖으로 나가지 않습니다. "이 데이터를 외부 API에 보내도 되나?"라는 고민 자체가 사라집니다.
- 통제권: 모델 업데이트로 어느 날 갑자기 동작이 바뀌는 일이 없습니다. 내가 바꾸기 전까지는 어제와 같은 모델이 같은 방식으로 동작합니다.
Docker Compose로 10분 만에 올리기
홈서버에 Docker가 이미 있다면 준비는 끝났습니다. 서비스 두 개를 추가하는 것이 전부입니다.
services:
n8n:
image: n8nio/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Seoul
volumes:
- ./n8n-data:/home/node/.n8n
ollama:
image: ollama/ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ./ollama-data:/root/.ollama
기동 후 모델 하나를 내려받습니다. 처음에는 욕심내지 말고 작은 모델부터 시작하는 것을 권합니다.
docker compose up -d
docker exec -it <ollama 컨테이너명> ollama pull llama3.2:3b
n8n 웹 화면(5678 포트)에서 Ollama 노드를 추가하고 주소를 http://ollama:11434로 지정하면 연결 끝입니다. 같은 Compose 네트워크 안에 있으니 서비스 이름으로 바로 통신됩니다.
여기서 홈서버 특유의 현실 하나를 짚고 가겠습니다. GPU가 없는 미니 PC라도 3B급 모델은 충분히 굴러갑니다. 분류나 요약처럼 답이 짧은 작업은 응답이 몇 초 안에 나오고, 자동화는 사람이 채팅하듯 기다리는 작업이 아니라서 10초가 걸려도 체감 문제가 없습니다. 반대로 GPU 없이 20B급 모델을 올리면 응답이 분 단위로 늘어지니, 모델 크기는 "워크플로우가 허용하는 지연 시간"에 맞춰 고르시면 됩니다.
실전 워크플로우 3가지 패턴
설치보다 중요한 것은 "무엇을 시킬 것인가"입니다. 로컬 모델은 프런티어 모델만큼 똑똑하지 않으니, 어려운 창작보다는 판단이 단순하고 반복이 잦은 작업에 붙이는 것이 요령입니다. 커뮤니티에서 검증된 대표 패턴 세 가지를 소개합니다.
1. 이메일 자동 분류함
IMAP 트리거로 새 메일을 받아 제목과 본문 일부를 Ollama에 넘기고, "긴급/일반/뉴스레터/광고 중 하나로만 답하라"는 프롬프트로 분류시킨 뒤, 결과에 따라 라벨을 붙이거나 폴더로 옮깁니다. 포인트는 출력 형식을 강하게 제약하는 것입니다. 자유 서술을 허용하면 후속 노드에서 파싱이 깨지기 쉬우니, 선택지를 못 박고 그 외 답변은 "일반"으로 처리하는 방어 로직을 넣어두면 안정적으로 돌아갑니다.
2. RSS 피드 요약 브리핑
관심 블로그와 뉴스 사이트의 RSS를 n8n이 주기적으로 확인하고, 새 글이 올라오면 본문을 로컬 모델로 3줄 요약해서 아침 8시에 텔레그램이나 Discord로 묶어 보내줍니다. 출근 전에 커피 한 잔과 함께 업계 소식을 훑는 브리핑이 완성되죠. 외부 API였다면 긴 본문을 통째로 넣는 것이 부담스러웠겠지만, 로컬이니 토큰 걱정 없이 전문을 밀어 넣을 수 있습니다.
3. 문서·사진 자동 태깅
Paperless-ngx나 Nextcloud를 쓰고 계시다면, 새 문서가 들어올 때 n8n이 내용을 읽어 태그 후보를 뽑고 메타데이터로 붙여주는 워크플로우도 좋은 출발점입니다. 수동 정리를 미루다 폴더가 쓰레기장이 되는 패턴, 다들 겪어보셨죠? 완벽하지 않은 자동 태깅이라도 "나중에 검색이 되는 상태"를 유지해 주는 것만으로 값어치를 합니다.
운영하면서 알아두면 좋은 것들
몇 가지 현실적인 팁을 덧붙입니다.
첫째, 프롬프트도 코드처럼 관리하세요. n8n 워크플로우는 JSON으로 내보낼 수 있으니, 잘 동작하는 워크플로우는 Git 저장소에 백업해 두는 것이 좋습니다. 모델을 바꾸면 같은 프롬프트도 결과가 달라질 수 있어서, 어떤 모델·어떤 프롬프트 조합이었는지 기록이 남아 있어야 롤백이 쉽습니다.
둘째, 실패를 조용히 삼키지 않게 하세요. LLM 노드는 가끔 예상 밖의 출력을 냅니다. 워크플로우의 에러 브랜치를 만들어 실패 시 알림을 받도록 해두면, "한 달째 안 돌고 있었는데 몰랐다"는 상황을 막을 수 있습니다.
셋째, 확장은 필요가 생겼을 때 하세요. 검색 증강(RAG)이 필요해지면 그때 Qdrant나 pgvector를 붙이고, 모델이 아쉬우면 그때 GPU를 고민하면 됩니다. 처음부터 풀 스택을 갖추려다 지쳐서 접는 것보다, 워크플로우 하나가 매일 돌아가는 상태를 먼저 만드는 것이 훨씬 중요합니다.
결론: 작은 자동화 하나가 홈서버의 체감 가치를 바꿉니다
정리하겠습니다. n8n과 Ollama 조합은 Docker 서비스 두 개로 시작할 수 있고, 실행 횟수 제한도 외부 데이터 유출 걱정도 없는 AI 자동화 기반을 홈서버에 만들어 줍니다. 핵심은 거창한 AI 비서를 꿈꾸기보다, 이메일 분류나 RSS 요약처럼 매일 반복되는 작은 판단 작업 하나를 자동화하는 데서 시작하는 것입니다.
홈서버의 가치는 결국 "내 시간을 얼마나 돌려주느냐"로 증명됩니다. 미디어 서버와 파일 동기화까지는 구축하신 분이 많을 텐데, 다음 단계로 판단하는 자동화를 하나 들여보시면 어떨까요? 이번 주말, 가장 귀찮은 반복 작업 하나를 골라 워크플로우로 옮겨보시길 권합니다. 한 번 맛을 보면 다음 자동화 아이디어가 줄을 설 겁니다.
이 글은 AI 도구의 도움을 받아 작성한 뒤 직접 검토·편집했습니다.