Self-hosted n8n 설치

노코드 툴로 잘 알려진 n8n의 설치형 버전을 맥 미니에 설치해서 사용해보고자 한다.

Self-hosted n8n 설치
Photo by Kelly Sikkema / Unsplash

개요

노코드 툴로 잘 알려진 n8n의 설치형 버전을 맥 미니에 설치해서 사용해보고자 한다.

먼 옛날에 Apache NiFi를 사용했었는데, 굉장히 유사한 경험을 제공하고 있다. 이것보다는 좀 더 코드를 볼 일이 적은 편이고 다양한 노드가 존재하며, AI 기능을 빠르게 추가해주는 점들이 크게 다른 것 같다. Apache Airflow도 워크플로우를 관리할 수 있지만, 이건 좀 더 코드 영역에서 동작하고 python을 꽤 알아야 하는 점도 부담스럽다. 최근의 경쟁 제품으로는 make가 있는 것 같고, 개인적으로는 kestra 라는 제품과 비교하면서 살펴보고 있다.

제한사항

본 글은 기본적으로

  • MacOS에서 설치하는 상황을 다룬다.
  • Docker desktop을 사용하고 있다.
  • cloudflare tunnel을 이용하여 n8n 서버에 도메인을 추가한 상황에서의 설치를 다룬다.
  • SMTP 설정을 추가하여 이메일 기능을 활성화 하는 것을 가정한다.
  • DB 의존성 없이 파일 기반의 sqlite에 워크플로우가 저장되도록 설치한다.

설치

설치는 아래의 docker-compose.yml 파일을 사용한다.

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    pull_policy: always
    ports:
      - "5678:5678"
    volumes:
      - ./data:/home/node/.n8n
    environment:
      NODE_ENV: production
      GENERIC_TIMEZONE: Asia/Seoul
      WEBHOOK_URL: <https://$>{N8N_HOST}
      N8N_HOST: ${N8N_HOST}
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      EXECUTIONS_TIMEOUT: 600
      # EMAIL - SMTP
      N8N_EMAIL_MODE: smtp
      N8N_SMTP_HOST: ${N8N_SMTP_HOST}
      N8N_SMTP_PORT: ${N8N_SMTP_PORT}
      N8N_SMTP_USER: ${N8N_SMTP_USER}
      N8N_SMTP_PASS: ${N8N_SMTP_PASS}
      N8N_SMTP_SENDER: ${N8N_SMTP_SENDER}
      N8N_SMTP_SSL: true

환경변수들은 위 파일을 작성한 경로에 .env 파일을 만들고 다음과 같이 채워넣으면 된다.

이메일 기능을 사용하지 않을 예정이라면, EMAIL - SMTP 주석 이하의 모든 환경변수들을 삭제한다.

N8N_HOST=my-n8n.example.domain
N8N_SMTP_HOST=...

두 파일을 적당한 위치에 생성했으면 해당 경로에서 docker 명령을 통해 컨테이너를 시작하자.

docker compose up -d

그리고 컨테이너가 정상적으로 실행중인지 확인한다.

docker ps

CONTAINER ID   IMAGE                     COMMAND                  CREATED      STATUS      PORTS                                         NAMES
06aee9cbebd4   docker.n8n.io/n8nio/n8n   "tini -- /docker-ent…"   8 days ago   Up 8 days   0.0.0.0:5678->5678/tcp, [::]:5678->5678/tcp   n8n

컨테이너가 실행중이고, 도메인에 접근이 가능하다면 최초 로그인에 대한 관리자 설정 화면을 만나볼 수 있다.

로그인 후에는 무료 라이센스 키를 받아보겠냐고 물어보는데, 이게 없으면 얼마 안되는 기능마저 사용하기가 어려워지므로 꼭 신청해서 받도록 하자.

자, 그러면 이제 설치가 완료되었다.

맺음말

Docker 컨테이너를 이용해서 빠르게 n8n을 설치해보았다. n8n을 처음 사용해본 소감은, 초기 이해도가 낮아서 워크플로우 생성이 까다롭고, 뭘 해야할지 잘 모르겠다는 것이다. 또한, 워크플로우 자체가 굉장히 개인화되기 때문에 이걸로 향후 여러 사람이 같이 사용할 수 있는 마땅한 방법이 있을지 잘 모르겠다. 좀 더 시간을 들여 살펴봐야 할 것 같다.