n8n은 https://n8n.io/ 에서 가입하면 일정 기간 무료로 사용할 수 있습니다. 하지만, 시간 제약이 있으니 고급 사용자들은 자신의 컴퓨팅 환경에 설치해서 사용합니다. 여기서는 Linux가 설치된 Mini PC에 설정하는 그 내용에 대해서 정리 합니다.

1. 사전 준비 (Prerequisites)

설치를 시작하기 전, Mini PC에 다음 요소들이 준비되어 있어야 합니다.

  • OS: Ubuntu 22.04 LTS 또는 데비안 계열 리눅스 권장 (Windows/macOS도 가능)
  • 사양: CPU 2코어, RAM 4GB 이상 권장
  • Docker 설치: 도커와 도커 컴포즈(Docker Compose)가 설치되어 있어야 합니다.

2. Docker Compose를 이용한 설치 단계

Docker Compose를 사용하면 n8n 설정뿐만 아니라, 데이터를 저장할 데이터베이스까지 한 번에 관리할 수 있습니다.

단계 1: 작업 디렉토리 생성

터미널을 열고 n8n 설정 파일을 저장할 폴더를 만듭니다.

mkdir n8n-local && cd n8n-local

단계 2: docker-compose.yml 파일 작성

텍스트 에디터(nano 또는 vi)를 사용하여 설정 파일을 만듭니다.

nano docker-compose.yml

아래 내용을 복사해서 붙여넣으세요:

version: "3"
services:
  n8n:
    container_name: n8n-server
    # ... 기존 설정 ...
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=my-n8n.duckdns.org
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - N8N_EDITOR_BASE_URL=https://my-n8n.duckdns.org
      - WEBHOOK_URL=https://my-n8n.duckdns.org
      - N8N_PROXY_HOPS=1
      - NODE_ENV=production
      - GENERIC_TIMEZONE=Asia/Seoul
      - N8N_SECURE_COOKIE=false # (외부 https로만 쓸 거면 최종적으로 true 권장)
    volumes:
      - ~/.n8n:/home/node/.n8n

단계 3: 컨테이너 실행

설정을 마쳤다면 다음 명령어로 n8n을 실행합니다.

docker compose up -d

이 명령어는 백그라운드에서 n8n을 실행하며, 필요한 이미지를 자동으로 다운로드합니다.

3. n8n 접속 및 초기 설정

  1. Mini PC의 브라우저(또는 같은 네트워크의 다른 PC)에서 다음 주소로 접속합니다.
    • http://localhost:5678 (Mini PC 본체인 경우)
    • http://[Mini-PC-IP주소]:5678 (외부 기기인 경우)
  2. 처음 접속 시 관리자 계정(이메일 및 비밀번호)을 생성하는 화면이 나옵니다.
  3. 계정 생성 후 n8n 대시보드에 진입하면 설치가 완료됩니다!

4. 외부 접속을 위한 도메인 연결(SSL 설정)

외부 연결은 여기서는 상세히 다루지는 않습니다. 단지, 필요한 설정 내용만 언급합니다.

  • Wireless AP에서 https를 위한 Port Forwarding 설정
  • DDNS를 설정 (e.g. duckdns)
  • Nginx Proxy Manager에 Domain 이름, SSL 그리고 내부 서비스 연결 설정

마무리 하며

같은 도메인명에 Custom Location으로 설정하는데 반나절 정도를 사용했었다. 주요 이슈는 2가지였습니다.

 

하나는 custom location에 n8n 명을 추가하면 인식이 되지 않는 것이었습니다. docker-compose.yml에 이 내용을 추가하는 것으로 local 테스트를 했지만, 성공하지 못하고 동작하지 않는 것을 확인하는 수준이었습니다. rewrite하는 방법으로 n8n 명을 추가하는 것까지는 성공하였다. 하지만 다른 문제가 있었습니다.

 

두 번째는 Supabase의 KONG과 충돌 난다는 것이었습니다. local에서 동작하는 부분을 확인하고 ChatGPT와 curl 명령을 이용해서 접근하는 방법을 디버깅했습니다. 이 때, Supabase와 KONG과 충돌을 파악하고 도메인을 분리 접근하는 방법으로 해결하였습니다.

+ Recent posts