Self-hosted n8n 설치
Self-hosted n8n 설치

Self-hosted n8n 설치

Published
June 29, 2025
Tags
selfhost
n8n

개요

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

제한사항

본 글은 기본적으로
  • MacOS에서 설치하는 상황을 다룬다.
  • Docker desktop을 사용하고 있다.
  • 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
docker-compose.yml
환경변수들은 위 파일을 작성한 경로에 .env 파일을 만들고 다음과 같이 채워넣으면 된다.
이메일 기능을 사용하지 않을 예정이라면, EMAIL - SMTP 주석 이하의 모든 환경변수들을 삭제한다.
N8N_HOST=my-n8n.example.domain N8N_SMTP_HOST=...
.env
두 파일을 적당한 위치에 생성했으면 해당 경로에서 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

컨테이너가 실행중이고, 도메인에 접근이 가능하다면 최초 로그인에 대한 관리자 설정 화면을 만나볼 수 있다.
notion image
로그인 후에는 무료 라이센스 키를 받아보겠냐고 물어보는데, 이게 없으면 얼마 안되는 기능마저 사용하기가 어려워지므로 꼭 신청해서 받도록 하자.
notion image
자, 그러면 이제 설치가 완료되었다.
notion image

맺음말

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