라즈베리파이에 n8n 셀프 호스팅하기

2026. 5. 20. 20:18·Infra

들어가며

이전 글에서 라즈베리파이 5 초기 설정을 마쳤다. 이번 글에서는 Docker를 설치하고 n8n을 셀프 호스팅하는 과정을 정리한다.

n8n은 노코드 워크플로우 자동화 도구다. Zapier나 Make와 비슷하지만, 셀프 호스팅이 가능해서 비용 부담 없이 사용할 수 있다.


Docker 설치

1. 시스템 업데이트

sudo apt update && sudo apt upgrade -y

2. Docker 설치

공식 설치 스크립트를 사용하면 간단하게 설치할 수 있다.

curl -fsSL https://get.docker.com | sh

3. 현재 사용자를 docker 그룹에 추가

기본적으로 docker 명령어는 root 권한이 필요하다. 매번 sudo를 입력하지 않으려면 현재 사용자를 docker 그룹에 추가한다.

sudo usermod -aG docker $USER

4. 재로그인

그룹 변경 사항을 적용하려면 SSH 연결을 끊고 다시 접속해야 한다.

exit

다시 SSH로 접속한 후 현재 사용자가 docker 그룹에 추가되었는지, Docker가 정상 작동하는지 확인한다.

groups

docker --version

 

버전 정보가 출력되면 설치 완료다.


n8n 설치

1. 프로젝트 폴더 생성

docker-compose.yml 파일을 저장할 폴더를 만든다.

mkdir -p ~/_projects/n8n
cd ~/_projects/n8n

2. docker-compose.yml 작성

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Seoul
      - TZ=Asia/Seoul
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

주요 설정:

  • 127.0.0.1:5678:5678: localhost에서만 접속 가능 (외부 직접 접속 차단)
  • GENERIC_TIMEZONE, TZ: 타임존을 서울로 설정
  • n8n_data: 워크플로우 데이터를 Docker 볼륨에 저장

3. n8n 실행

docker compose up -d

-d 옵션은 백그라운드 실행이다. 컨테이너 상태를 확인하려면:

docker ps

n8n 컨테이너가 실행 중이면 성공이다.


n8n 접속

문제: Secure Cookie 에러

처음에 http://라즈베리파이IP:5678로 접속하니 다음 에러가 나왔다.

 

Your n8n server is configured to use a secure cookie, however you are either visiting this via an insecure URL, or using Safari.

 

n8n은 기본적으로 HTTPS 접속을 요구한다. HTTP로 접속하면 보안 쿠키 문제로 로그인이 안 된다.

해결 방법들

Secure Cookie 에러를 해결하는 방법은 크게 세 가지로 나눌 수 있다.

1. HTTPS 설정

실제로 HTTPS를 적용하는 방법이다. 외부에서 n8n에 접속하거나, GitHub/Stripe 같은 외부 서비스의 웹훅을 받아야 한다면 이 방법을 사용해야 한다.

방법 난이도 요구사항
Cloudflare Tunnel ⭐ 쉬움 도메인 필요 (무료 도메인 가능)
Tailscale ⭐ 쉬움 계정만 있으면 됨
Nginx + Let's Encrypt ⭐⭐ 보통 도메인 + 포트포워딩
Traefik ⭐⭐⭐ 복잡 도메인 + 포트포워딩

2. 보안 기능 비활성화

n8n의 Secure Cookie 기능 자체를 끄는 방법이다.

방법 난이도 요구사항
N8N_SECURE_COOKIE=false ⭐ 쉬움 없음

docker-compose.yml의 environment에 추가하면 된다. 간단하지만 보안 기능을 끄는 것이므로 권장하지 않는다.

3. SSH 터널링

localhost로 접속해서 Secure Cookie 검사를 우회하는 방법이다.

방법 난이도 요구사항
SSH 터널링 ⭐ 쉬움 SSH 접속 가능

보안 기능을 유지하면서 추가 설정 없이 사용할 수 있다.

내 상황

나는 집 안 로컬 네트워크에서만 n8n에 접속한다. 외부에서 접속할 일이 없으니 HTTPS 설정까지는 필요 없었다.

왜 SSH 터널링인가?

N8N_SECURE_COOKIE=false로 설정하면 가장 간단하지만, 보안 기능을 끄는 것이라 찝찝했다. SSH 터널링은 보안 기능을 유지하면서도 추가 설정 없이 바로 사용할 수 있어서 선택했다.

SSH 터널링으로 접속하기

데스크탑에서 다음 명령어를 실행한다. (Git Bash 또는 터미널)

ssh -L 5678:localhost:5678 사용자이름@라즈베리파이IP

이 명령어는:

  • 데스크탑의 localhost:5678을
  • 라즈베리파이의 localhost:5678로 연결한다

SSH 연결이 유지된 상태에서 브라우저로 접속한다.

http://localhost:5678

localhost로 접속하면 n8n이 HTTPS로 인식해서 Secure Cookie 에러가 발생하지 않는다.

왜 127.0.0.1로 바인딩했나?

docker-compose.yml에서 포트를 127.0.0.1:5678:5678로 설정한 이유는 보안 때문이다.

설정 접속 범위
5678:5678 같은 네트워크의 모든 기기에서 접속 가능
127.0.0.1:5678:5678 라즈베리파이 자체에서만 접속 가능

SSH 터널링을 통해서만 접속할 수 있게 하면, 같은 네트워크에 있는 다른 기기에서 임의로 접속하는 것을 막을 수 있다.


마치며

라즈베리파이에 n8n 셀프 호스팅을 완료했다. 정리하면:

  1. Docker 공식 스크립트로 설치
  2. docker-compose.yml로 n8n 컨테이너 실행
  3. SSH 터널링으로 Secure Cookie 문제 해결
  4. 127.0.0.1 바인딩으로 외부 직접 접속 차단

셀프 호스팅의 장점

n8n은 클라우드 버전도 있지만, 셀프 호스팅하면 몇 가지 장점이 있다.

항목 클라우드 셀프 호스팅
비용 월 $24~ (Starter 기준) 무료
실행 횟수 플랜별 제한 무제한
데이터 저장 n8n 서버 내 라즈베리파이
커스터마이징 제한적 자유로움

 

라즈베리파이는 저전력으로 24시간 구동이 가능하니, 개인용 자동화 서버로 딱 맞는 조합이다.

 

다음 글에서는 이렇게 구축한 n8n으로 실제 자동화 워크플로우를 만들어본다. 

'Infra' 카테고리의 다른 글

라즈베리파이에 셀프호스팅한 n8n으로 매일 아침 뉴스 요약 받기  (0) 2026.05.21
라즈베리파이 5 초기 설정 가이드  (0) 2026.05.20
'Infra' 카테고리의 다른 글
  • 라즈베리파이에 셀프호스팅한 n8n으로 매일 아침 뉴스 요약 받기
  • 라즈베리파이 5 초기 설정 가이드
onebrotravel
onebrotravel
  • onebrotravel
    매일을 여행처럼
    onebrotravel
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Embedded
      • Language
        • C
      • OS
      • Network N
      • DSA
      • DevTools
      • Infra
      • Projects
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
onebrotravel
라즈베리파이에 n8n 셀프 호스팅하기
상단으로

티스토리툴바