InfoGrab Docs

Docker 설치

요약

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker Compose와 함께 Docker에서 n8n을 사용할 수도 있습니다. n8n 셀프 호스팅에는 다음을 포함한 기술적 지식이 필요합니다:

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker는 깔끔하고 격리된 환경을 제공하고, 운영 체제 및 툴링 비호환성을 방지하며, 데이터베이스 및 환경 관리를 더 간단하게 만들어 줍니다.

Docker Compose와 함께 Docker에서 n8n을 사용할 수도 있습니다. n8n-hosting 저장소에서 다양한 아키텍처에 대한 Docker Compose 구성을 찾을 수 있습니다.

셀프 호스팅 사전 지식 요구사항

n8n 셀프 호스팅에는 다음을 포함한 기술적 지식이 필요합니다:

  • 서버 및 컨테이너 설정 및 구성
  • 애플리케이션 리소스 관리 및 확장
  • 서버 및 애플리케이션 보안
  • n8n 구성

n8n은 전문 사용자에게 셀프 호스팅을 권장합니다. 실수하면 데이터 손실, 보안 문제, 다운타임이 발생할 수 있습니다. 서버 관리 경험이 없다면 n8n Cloud를 권장합니다.

동영상 가이드도 여기서 따라할 수 있습니다.

사전 요구 사항#

진행하기 전에 Docker를 설치하세요.

  • Docker Desktop은 Mac, Windows 및 Linux에서 사용할 수 있습니다. Docker Desktop에는 Docker Engine과 Docker Compose가 포함되어 있습니다.
  • Docker EngineDocker Compose는 Linux용 별도 패키지로도 제공됩니다. 그래픽 환경이 없는 Linux 머신이나 Docker Desktop UI가 필요 없을 때 사용하세요.
안정(Stable) 및 베타(Beta) 버전

n8n은 매주 새로운 마이너 버전을 릴리스합니다. stable 버전은 프로덕션 사용을 위한 것입니다. beta는 가장 최근 릴리스입니다. beta 버전은 불안정할 수 있습니다. 문제를 보고하려면 포럼을 이용하세요.

현재 stable: 2.14.2 현재 beta: 2.15.0

n8n 시작#

터미널에서 다음 명령어를 실행하고, 자리 표시자를 해당 시간대로 교체하세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

이 명령어는 영구 데이터를 저장할 볼륨을 생성하고, 필요한 n8n 이미지를 다운로드하며, 다음 설정으로 컨테이너를 시작합니다.

  • 호스트의 포트 5678을 매핑하고 노출합니다.
  • 컨테이너의 시간대를 설정합니다.
  • n8n 구성 파일에 대한 안전한 파일 권한을 적용합니다.
  • n8n에서 태스크를 실행하는 권장 방식인 태스크 러너를 활성화합니다.
  • 컨테이너 재시작 후에도 데이터가 유지되도록 n8n_data 볼륨을 /home/node/.n8n 디렉토리에 마운트합니다.

실행 후 다음 주소로 n8n에 접근할 수 있습니다. http://localhost:5678

PostgreSQL과 함께 사용#

기본적으로 n8n은 SQLite를 사용하여 자격 증명, 과거 실행 내역 및 워크플로를 저장합니다. n8n은 PostgreSQL도 지원하며, 아래에 자세히 설명된 환경 변수를 사용하여 구성할 수 있습니다.

`.n8n` 디렉토리 유지 권장

PostgreSQL을 사용할 때 n8n은 SQLite 데이터베이스 파일에 .n8n 디렉토리를 사용할 필요가 없습니다. 그러나 해당 디렉토리에는 암호화 키, 인스턴스 로그 및 소스 제어 기능 에셋과 같은 중요한 데이터가 여전히 포함되어 있습니다. 일부 요구 사항을 우회할 수 있지만(예: N8N_ENCRYPTION_KEY 환경 변수 설정), 잠재적인 문제를 방지하기 위해 해당 디렉토리에 영구 볼륨을 계속 매핑하는 것이 좋습니다.

n8n을 PostgreSQL과 함께 사용하려면 다음 명령어를 실행하고, 꺾쇠 괄호 안의 자리 표시자(예: )를 실제 값으로 교체하세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE= \
 -e DB_POSTGRESDB_HOST= \
 -e DB_POSTGRESDB_PORT= \
 -e DB_POSTGRESDB_USER= \
 -e DB_POSTGRESDB_SCHEMA= \
 -e DB_POSTGRESDB_PASSWORD= \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

PostgreSQL을 위한 전체 docker-compose 파일은 n8n hosting 저장소에서 찾을 수 있습니다.

업데이트#

n8n을 업데이트하려면 Docker Desktop에서 Images 탭으로 이동하고 컨텍스트 메뉴에서 Pull을 선택하여 최신 n8n 이미지를 다운로드하세요.

Docker Desktop

명령줄을 사용하여 최신 버전 또는 특정 버전을 가져올 수도 있습니다.

# 최신(안정) 버전 가져오기
docker pull docker.n8n.io/n8nio/n8n

# 특정 버전 가져오기
docker pull docker.n8n.io/n8nio/n8n:1.81.0

# 다음(불안정) 버전 가져오기
docker pull docker.n8n.io/n8nio/n8n:next

업데이트된 이미지를 가져온 후 n8n 컨테이너를 중지하고 다시 시작하세요. 명령줄을 사용할 수도 있습니다. 아래 명령어의 <container_id>를 첫 번째 명령어에서 찾은 컨테이너 ID로 교체하세요.

# 컨테이너 ID 찾기
docker ps -a

# `<container_id>`를 사용하여 컨테이너 중지
docker stop <container_id>

# `<container_id>`를 사용하여 컨테이너 제거
docker rm <container_id>

# 컨테이너 시작
docker run --name=<container_name> [options] -d docker.n8n.io/n8nio/n8n

Docker Compose 업데이트#

Docker Compose 파일을 사용하여 n8n을 실행하는 경우 다음 단계에 따라 n8n을 업데이트하세요:

# docker compose 파일이 있는 디렉토리로 이동
cd </path/to/your/compose/file/directory>

# 최신 버전 pull
docker compose pull

# 이전 버전 중지 및 제거
docker compose down

# 컨테이너 시작
docker compose up -d

터널을 사용한 n8n#

Warning

로컬 개발 및 테스트용으로만 사용하세요. 프로덕션 환경에서는 사용하지 않는 것이 안전합니다.

개발 도구

터널 기능은 로컬 개발을 위한 편의 도구입니다. 내부 구현은 n8n 버전 간에 변경될 수 있습니다.

GitHub 같은 외부 서비스의 트리거 노드에 웹훅을 사용하려면, n8n이 웹에서 접근 가능해야 합니다. n8n은 cloudflared를 이용한 터널 서비스를 제공하여 웹의 요청을 로컬 n8n 인스턴스로 리다이렉트합니다. 터널이 작동하려면 Docker가 설치되어 있어야 합니다.

n8n 실행 방법에 따라 터널을 사용하는 두 가지 방법이 있습니다:

풀 스택#

이 방법으로 n8n과 cloudflared를 컨테이너에서 함께 실행합니다. 터널 URL은 시작 시 출력되며 모든 것이 자동으로 연결됩니다.

pnpm stack --tunnel

서비스만 실행#

pnpm dev 또는 pnpm start로 n8n을 로컬에서 실행하는 것을 선호한다면 cloudflared를 독립 실행형 서비스로 시작할 수 있습니다.

# 터미널 1: cloudflared 터널 서비스 시작
pnpm --filter n8n-containers services --services cloudflared

# 터미널 2: n8n 로컬 실행
pnpm dev

services 명령어는 다음을 수행합니다.

  1. host.docker.internal:5678(로컬 n8n)을 가리키는 cloudflared를 시작합니다.
  2. cloudflared의 메트릭 엔드포인트에서 공개 터널 URL을 가져옵니다.
  3. WEBHOOK_URLN8N_PROXY_HOPS=1이 포함된 .env 파일을 packages/cli/bin/.env에 작성합니다.
  4. pnpm devpnpm start가 dotenv를 통해 해당 .env를 자동으로 읽어 들입니다.

작업 완료 후 정리:

pnpm --filter n8n-containers services:clean

다음 단계#

Docker 설치

원문 보기
요약

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker Compose와 함께 Docker에서 n8n을 사용할 수도 있습니다. n8n 셀프 호스팅에는 다음을 포함한 기술적 지식이 필요합니다:

n8n은 대부분의 셀프 호스팅 요구 사항에 Docker 사용을 권장합니다. Docker는 깔끔하고 격리된 환경을 제공하고, 운영 체제 및 툴링 비호환성을 방지하며, 데이터베이스 및 환경 관리를 더 간단하게 만들어 줍니다.

Docker Compose와 함께 Docker에서 n8n을 사용할 수도 있습니다. n8n-hosting 저장소에서 다양한 아키텍처에 대한 Docker Compose 구성을 찾을 수 있습니다.

셀프 호스팅 사전 지식 요구사항

n8n 셀프 호스팅에는 다음을 포함한 기술적 지식이 필요합니다:

  • 서버 및 컨테이너 설정 및 구성
  • 애플리케이션 리소스 관리 및 확장
  • 서버 및 애플리케이션 보안
  • n8n 구성

n8n은 전문 사용자에게 셀프 호스팅을 권장합니다. 실수하면 데이터 손실, 보안 문제, 다운타임이 발생할 수 있습니다. 서버 관리 경험이 없다면 n8n Cloud를 권장합니다.

동영상 가이드도 여기서 따라할 수 있습니다.

사전 요구 사항#

진행하기 전에 Docker를 설치하세요.

  • Docker Desktop은 Mac, Windows 및 Linux에서 사용할 수 있습니다. Docker Desktop에는 Docker Engine과 Docker Compose가 포함되어 있습니다.
  • Docker EngineDocker Compose는 Linux용 별도 패키지로도 제공됩니다. 그래픽 환경이 없는 Linux 머신이나 Docker Desktop UI가 필요 없을 때 사용하세요.
안정(Stable) 및 베타(Beta) 버전

n8n은 매주 새로운 마이너 버전을 릴리스합니다. stable 버전은 프로덕션 사용을 위한 것입니다. beta는 가장 최근 릴리스입니다. beta 버전은 불안정할 수 있습니다. 문제를 보고하려면 포럼을 이용하세요.

현재 stable: 2.14.2 현재 beta: 2.15.0

n8n 시작#

터미널에서 다음 명령어를 실행하고, 자리 표시자를 해당 시간대로 교체하세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

이 명령어는 영구 데이터를 저장할 볼륨을 생성하고, 필요한 n8n 이미지를 다운로드하며, 다음 설정으로 컨테이너를 시작합니다.

  • 호스트의 포트 5678을 매핑하고 노출합니다.
  • 컨테이너의 시간대를 설정합니다.
  • n8n 구성 파일에 대한 안전한 파일 권한을 적용합니다.
  • n8n에서 태스크를 실행하는 권장 방식인 태스크 러너를 활성화합니다.
  • 컨테이너 재시작 후에도 데이터가 유지되도록 n8n_data 볼륨을 /home/node/.n8n 디렉토리에 마운트합니다.

실행 후 다음 주소로 n8n에 접근할 수 있습니다. http://localhost:5678

PostgreSQL과 함께 사용#

기본적으로 n8n은 SQLite를 사용하여 자격 증명, 과거 실행 내역 및 워크플로를 저장합니다. n8n은 PostgreSQL도 지원하며, 아래에 자세히 설명된 환경 변수를 사용하여 구성할 수 있습니다.

`.n8n` 디렉토리 유지 권장

PostgreSQL을 사용할 때 n8n은 SQLite 데이터베이스 파일에 .n8n 디렉토리를 사용할 필요가 없습니다. 그러나 해당 디렉토리에는 암호화 키, 인스턴스 로그 및 소스 제어 기능 에셋과 같은 중요한 데이터가 여전히 포함되어 있습니다. 일부 요구 사항을 우회할 수 있지만(예: N8N_ENCRYPTION_KEY 환경 변수 설정), 잠재적인 문제를 방지하기 위해 해당 디렉토리에 영구 볼륨을 계속 매핑하는 것이 좋습니다.

n8n을 PostgreSQL과 함께 사용하려면 다음 명령어를 실행하고, 꺾쇠 괄호 안의 자리 표시자(예: )를 실제 값으로 교체하세요.

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="" \
 -e TZ="" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -e N8N_RUNNERS_ENABLED=true \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE= \
 -e DB_POSTGRESDB_HOST= \
 -e DB_POSTGRESDB_PORT= \
 -e DB_POSTGRESDB_USER= \
 -e DB_POSTGRESDB_SCHEMA= \
 -e DB_POSTGRESDB_PASSWORD= \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

PostgreSQL을 위한 전체 docker-compose 파일은 n8n hosting 저장소에서 찾을 수 있습니다.

업데이트#

n8n을 업데이트하려면 Docker Desktop에서 Images 탭으로 이동하고 컨텍스트 메뉴에서 Pull을 선택하여 최신 n8n 이미지를 다운로드하세요.

Docker Desktop

명령줄을 사용하여 최신 버전 또는 특정 버전을 가져올 수도 있습니다.

# 최신(안정) 버전 가져오기
docker pull docker.n8n.io/n8nio/n8n

# 특정 버전 가져오기
docker pull docker.n8n.io/n8nio/n8n:1.81.0

# 다음(불안정) 버전 가져오기
docker pull docker.n8n.io/n8nio/n8n:next

업데이트된 이미지를 가져온 후 n8n 컨테이너를 중지하고 다시 시작하세요. 명령줄을 사용할 수도 있습니다. 아래 명령어의 <container_id>를 첫 번째 명령어에서 찾은 컨테이너 ID로 교체하세요.

# 컨테이너 ID 찾기
docker ps -a

# `<container_id>`를 사용하여 컨테이너 중지
docker stop <container_id>

# `<container_id>`를 사용하여 컨테이너 제거
docker rm <container_id>

# 컨테이너 시작
docker run --name=<container_name> [options] -d docker.n8n.io/n8nio/n8n

Docker Compose 업데이트#

Docker Compose 파일을 사용하여 n8n을 실행하는 경우 다음 단계에 따라 n8n을 업데이트하세요:

# docker compose 파일이 있는 디렉토리로 이동
cd </path/to/your/compose/file/directory>

# 최신 버전 pull
docker compose pull

# 이전 버전 중지 및 제거
docker compose down

# 컨테이너 시작
docker compose up -d

터널을 사용한 n8n#

Warning

로컬 개발 및 테스트용으로만 사용하세요. 프로덕션 환경에서는 사용하지 않는 것이 안전합니다.

개발 도구

터널 기능은 로컬 개발을 위한 편의 도구입니다. 내부 구현은 n8n 버전 간에 변경될 수 있습니다.

GitHub 같은 외부 서비스의 트리거 노드에 웹훅을 사용하려면, n8n이 웹에서 접근 가능해야 합니다. n8n은 cloudflared를 이용한 터널 서비스를 제공하여 웹의 요청을 로컬 n8n 인스턴스로 리다이렉트합니다. 터널이 작동하려면 Docker가 설치되어 있어야 합니다.

n8n 실행 방법에 따라 터널을 사용하는 두 가지 방법이 있습니다:

풀 스택#

이 방법으로 n8n과 cloudflared를 컨테이너에서 함께 실행합니다. 터널 URL은 시작 시 출력되며 모든 것이 자동으로 연결됩니다.

pnpm stack --tunnel

서비스만 실행#

pnpm dev 또는 pnpm start로 n8n을 로컬에서 실행하는 것을 선호한다면 cloudflared를 독립 실행형 서비스로 시작할 수 있습니다.

# 터미널 1: cloudflared 터널 서비스 시작
pnpm --filter n8n-containers services --services cloudflared

# 터미널 2: n8n 로컬 실행
pnpm dev

services 명령어는 다음을 수행합니다.

  1. host.docker.internal:5678(로컬 n8n)을 가리키는 cloudflared를 시작합니다.
  2. cloudflared의 메트릭 엔드포인트에서 공개 터널 URL을 가져옵니다.
  3. WEBHOOK_URLN8N_PROXY_HOPS=1이 포함된 .env 파일을 packages/cli/bin/.env에 작성합니다.
  4. pnpm devpnpm start가 dotenv를 통해 해당 .env를 자동으로 읽어 들입니다.

작업 완료 후 정리:

pnpm --filter n8n-containers services:clean

다음 단계#