시놀로지 2베이 NAS DS218+ 본체를 비스듬히 찍은 제품 사진

시놀로지 n8n 설치, Docker Compose로 갈아탄 기록

“쉽게 시작하고, 불편해지면 갈아타기 – 시놀로지 n8n 설치 기록”

시놀로지 n8n 설치 과정을 정리해 두려 합니다.

처음에는 Web Station 방식으로 설치했습니다. 그런데 환경 변수를 추가하려 할 때마다 복제 기능으로 새 컨테이너를 만들어야 했습니다. 이게 불편해서 Docker Compose(프로젝트) 방식으로 바꾸었습니다.

이 글에는 두 방법을 순서대로 모두 적어 둡니다. n8n이 어떤 도구인지는 앞서 쓴 n8n이란? 글에 정리해 두었습니다.

요약하자면 — Web Station 방식은 화면만으로 쉽게 설치됩니다. 다만 환경 변수를 추가할 때마다 컨테이너를 복제해야 합니다. Docker Compose 방식은 설정을 docker-compose.yml 파일 한 장에 모아 관리합니다.

“시놀로지 n8n 설치, 길은 두 갈래였습니다”

시놀로지에 n8n을 올리는 방법은 크게 두 가지인 듯합니다.

하나는 DSM 화면에서 설정하는 Web Station 방식이고, 다른 하나는 설정을 코드 파일에 담는 Docker Compose 방식입니다.

시놀로지 n8n 설치 방법 비교 - Web Station 방식과 Docker Compose 방식의 장단점
두 가지 설치 방식 한눈에 비교

Web Station 방식은 복잡한 설정 파일 없이 그래픽 화면(GUI)만으로 대부분의 설정이 가능합니다. 초보자에게 가장 친숙한 방법입니다.

하지만 데이터베이스가 파일 기반(SQLite)으로 동작합니다. 워크플로우가 많아지거나 복잡해지면 성능 저하와 안정성 문제가 생길 수 있습니다.

그래서 운영 환경보다는 테스트나 개인용 간단한 자동화에 어울립니다.

첫 번째 방법 – Web Station 활용 (초보자용)

먼저, 시놀로지 패키지 두 가지를 설치합니다.

  1. Container Manager
  2. Web Station

두 번째는, Container Manager에서 n8n 이미지를 받는 일입니다.

  • Container Manager > 레지스트리에서 “n8n”을 검색하고, n8nio/n8n을 더블 클릭해 내려받습니다. 버전은 맨 위의 latest를 고릅니다.
  • Container Manager > 이미지에서 n8nio/n8n을 오른쪽 클릭하고 [실행]을 누릅니다.

세 번째는, 컨테이너 설정입니다.

  • 자동 재시작을 활성화합니다. NAS가 재부팅되면 n8n이 자동으로 실행되는 옵션입니다.
  • “Web Station을 통한 웹 포털 설정”을 반드시 활성화합니다. 포트 등 다른 값은 바꾸지 않습니다.
  • 볼륨 설정에서 [폴더 추가]로 n8n을 설치한 폴더를 고르고, [파일 추가]를 누른 뒤 /home/node/.n8n을 입력합니다.
  • n8n 폴더의 권한 설정도 함께 챙겨야 합니다.

환경 변수는 아래처럼 입력합니다.

변수값비고
N8N_HOSTn8n.XXXX.synology.me내 시놀로지 주소 앞에 n8n.을 붙임
N8N_PROTOCOLhttps
WEBHOOK_URLhttps://n8n.XXXX.synology.mehttps로 시작하는 점에 유의
N8N_PORT5678
PUID1000또는 내 시놀로지 계정의 UID
PGID100시놀로지 기본 users 그룹의 GID

네 번째는, Web Station을 실행해 포털을 연결하는 일입니다.

  • 서비스는 앞서 실행한 n8n(n8nio/n8n) 이미지를 고릅니다.
  • 포털 유형은 이름 기반입니다.
  • 호스트 이름에는 환경 변수에 넣은 주소 n8n.XXXX.synology.me를 반드시 그대로 입력합니다. (https는 빼고 씁니다.)
  • 나머지는 모두 기본값으로 둡니다.

이제 웹 브라우저에서 n8n.XXXX.synology.me로 접속합니다.

“왜 굳이 갈아탔을까?”

환경 변수 때문입니다.

위 방식에서는 환경 변수를 추가하려 할 때마다 복제 기능으로 새 컨테이너를 만들어야 했습니다.

그래서 설정을 파일 한 장으로 관리하는 Docker Compose(프로젝트) 기능으로 전환했습니다.

두 번째 방법 – Docker Compose로 시놀로지 n8n 설치하기

1단계: 기존 컨테이너 완전히 삭제하기

기존 n8nio-n8n-1 컨테이너가 켜져 있으면 포트와 도메인이 충돌합니다. 그래서 먼저 정리해야 합니다.

Container Manager에서 n8nio-n8n-1 컨테이너를 고르고 [작업] > [삭제]를 누릅니다.

걱정은 접어 두셔도 됩니다. 볼륨이 /volume1/docker/n8n에 연결되어 있으므로, 컨테이너를 지워도 데이터는 그대로 남습니다.

2단계: 프로젝트 만들고 코드 붙여넣기

Container Manager 왼쪽의 [프로젝트] 탭에서 [생성]을 누르고, 다음과 같이 입력합니다.

  • 프로젝트 이름: n8n-prod (원하는 이름)
  • 경로: 적절한 폴더 (예: docker 폴더)
  • 소스: docker-compose.yml 생성

오른쪽 코드 입력창의 기존 내용을 모두 지우고, 아래 코드를 붙여 넣습니다. XXXX 자리에는 내 시놀로지 주소를 넣습니다.

version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8nio-n8n-1
    restart: always
    network_mode: host
    volumes:
      - /volume1/docker/n8n:/home/node/.n8n:rw
    environment:
      - NODE_ENV=production
      - N8N_HOST=n8n.XXXX.synology.me
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.XXXX.synology.me
      - N8N_PORT=5678
      - PUID=1000
      - PGID=100
      - N8N_PROXY_HOPS=1
      # [추가된 이력 자동 삭제 설정]
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=168 # 168시간(7일) 보관 후 자동 삭제
      - EXECUTIONS_DATA_PRUNE_TIMEOUT=3600

마지막 세 줄은 덤(?)입니다. 실행 이력을 168시간, 즉 7일 동안 보관한 뒤 자동으로 삭제하는 설정입니다. 보관 시간은 원하는 값으로 바꿀 수 있습니다.

3단계: 실행하고 마무리하기

코드를 붙여 넣은 뒤 [다음]을 눌러 마법사를 끝냅니다.

빌드가 끝나면 기존 데이터와 설정 그대로 n8n이 다시 실행됩니다.

이제 환경 변수를 추가할 때는 컨테이너를 복제하지 않고 docker-compose.yml 안에서 관리합니다.

외부 접속을 위한 마지막 점검 두 가지

먼저, 공유기 포트포워딩입니다. 사용 중인 공유기(ipTIME, 통신사 공유기 등) 관리자 페이지에 접속해 아래 규칙을 추가합니다.

서비스 이름외부 포트내부 IP내부 포트프로토콜
n8n HTTP80시놀로지 NAS의 내부 IP80TCP
n8n HTTPS443시놀로지 NAS의 내부 IP443TCP

인터넷 서비스 제공업체(ISP)가 80·443 포트를 차단한 경우라면, 외부 포트를 다른 번호(예: 5678, 8443)로 정하고 n8n.XXXX.synology.me:5678처럼 접속해야 할 수도 있습니다.

두 번째는, 시놀로지 Web Station 최종 확인입니다. 공유기 설정을 마친 뒤 시놀로지 안에서도 포털(도메인) 매핑이 정확한지 확인해야 합니다.

  • Web Station > 웹 포털로 이동합니다.
  • 만들어 둔 n8n.XXXX.synology.me 포털 설정을 확인합니다.
  • 포털의 내부 목적지가 n8n 컨테이너가 쓰는 로컬 포트(기본값 5678)로 정확히 연결되어 있는지 확인합니다.

여기까지의 흐름을 한 장으로 정리하면 다음과 같습니다.

Docker Compose 전환 3단계와 외부 접속 점검 2가지 - 컨테이너 삭제, 프로젝트 생성, 실행, 포트포워딩, 웹 포털 확인
전환 3단계 + 외부 접속 점검 2가지

자주 묻는 질문

컨테이너를 삭제하면 n8n 데이터도 사라집니까?

볼륨이 /volume1/docker/n8n에 연결되어 있다면 컨테이너를 지워도 데이터는 남습니다. 그래서 Docker Compose로 전환할 때 기존 컨테이너를 먼저 삭제해도 됩니다.

통신사가 80·443 포트를 막아 두었다면 어떻게 합니까?

외부 포트를 5678이나 8443 같은 다른 번호로 지정하고, 주소 뒤에 포트 번호를 붙여 접속해야 할 수도 있습니다.

실행 이력이 계속 쌓이지 않습니까?

EXECUTIONS_DATA_PRUNE=true와 EXECUTIONS_DATA_MAX_AGE=168을 넣으면 168시간(7일)이 지난 이력은 자동으로 삭제됩니다.

마치며

요약하자면, 순서는 이랬습니다.

Web Station으로 쉽게 설치했고, 환경 변수를 추가할 때마다 컨테이너를 복제하는 게 불편해 Docker Compose로 옮겼습니다. 데이터는 /volume1/docker/n8n에 그대로 남아 있었습니다.

쉬운 길로 시작해서, 불편해지면 갈아타면 되는 듯합니다.

자동화도 결국 한 걸음씩입니다…

대표 이미지: Photo by Claudio Schwarz on Unsplash

Similar Posts

답글 남기기

댓글을 작성하면 개인정보 처리방침에 따라 이름·이메일·IP 주소가 수집되는 것에 동의한 것으로 봅니다.

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다