메인 항목으로

설치

시놀로지에 n8n + Postgres DB Docker를 설치하는Portainer을 활용한 설치 방법을 설명합니다. Portainer를 사용하지 않을 시 yaml 파일 생성해 설치하시면 됩니다.


  1. Nginx Proxy Manager 같은 역방향 프록시를 설정합니다.
  2. 볼륨을 Mapping할 "n8n"과 하위에 "data", "db", "files" 3개의 디렉토리를 생성합니다. 제 경우 "/volume1/docker/"하위에 생성을 하였습니다.

    n8n1.jpgn8n2.jpg

  3. 생성한 "n8n" 속성 (오른쪽 마우스 클릭)에 들어가 "권한" 탭으로 이동 후 "고급옵션"에서 "상속된 권한을 명시적으로 만들기"를 선택하고 "저장"을 누릅니다.

    n8n3.jpg

  4. 목록에서 "Everyone"의 "편집"을 선택하고, "읽기", "쓰기"의 모든 옵션을 체크 합니다.

    n8n5.jpg

  5. "이 폴더, 하위 폴더 및 파일에 적용"을 선택하고 "저장"을 누릅니다.

    n8n6.jpg

Portainer의 "Stacks"로 이동하여, "Add stack"을 선택 합니다.

n8n7.jpg

n8n8.jpg

"Name"에 원하시는 컨테이너 이름을 입력하고, "Web editor"를 선택해 yaml 문장을 작성 합니다.

n8n9.jpg

version: "3.ㄹㅇㅎㄹㅇ9"
services:
  db:
    image: postgres
    container_name: n8n-DB
    hostname: n8n-db
    mem_limit: 512m
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "n8n", "-U", "n8n"]
      timeout: 45s
      interval: 10s
      retries: 10
    volumes:
      - /volume1/docker/n8n/db:/var/lib/postgresql/data:rw
    environment:
      TZ: Asia/Seoul
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: DB_PASSWORD //원하시는 DB패스워드를 입력합니다.
    restart: on-failure:5

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    hostname: n8n
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    ports:
      - 5678:5678
    volumes:
      - /volume1/docker/n8n/data:/home/node/.n8n:rw
      - /volume1/docker/n8n/files:/files:rw
    environment:
      N8N_HOST: n8n_도메인주소 //사용하실 n8n 도메인을 입력하고, http는 생략합니다.
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      NODE_ENV: production
      WEBHOOK_URL: https://n8n_도메인주소 //사용하실 n8n 도메인을 입력합니다.
      GENERIC_TIMEZONE: Asia/Seoul
      TZ: Asia/Seoul
      DB_TYPE: postgresdb
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_HOST: n8n-db
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: DB_PASSWORD //위에서 설정한 DB패스워드를 입력합니다.
    restart: on-failure:5
    depends_on:
      db:
        condition: service_healthy

 yaml 작성이 완료 됐으면 "Deploy the stack"을 눌러 컨테이너를 생성 합니다.

n8n10.jpg


4.