Docker는 다음과 같은 장점을 제공합니다:
- n8n을 깔끔한 환경에 설치.
- 선호하는 데이터베이스 설정 용이.
- Docker가 일관된 시스템을 제공하여 운영 체제 차이로 인한 문제 방지.
- 운영 체제 및 도구의 차이로 인한 호환성 문제 방지.
- 새로운 호스트나 환경으로의 마이그레이션 간소화.
n8n 자가 호스팅에는 서버 및 컨테이너 설정/구성, 애플리케이션 리소스 관리 및 확장, 서버 및 애플리케이션 보안, n8n 구성 등 기술 지식이 필요합니다. n8n은 전문가 사용자에게 자가 호스팅을 권장합니다. 오류 발생 시 데이터 손실, 보안 문제, 서비스 중단이 발생할 수 있습니다. 서버 관리에 대한 경험이 없는 경우 n8n Cloud 사용을 권장합니다.
진행하기 전에 Docker Desktop을 설치하십시오. Linux 사용자는 Docker Engine과 Docker Compose를 각 배포판에 맞게 개별적으로 설치해야 합니다.
n8n은 매주 새로운 마이너 버전을 출시합니다. latest 버전은 프로덕션용이며, next는 최신 릴리스로 불안정할 수 있는 베타 버전입니다. 문제 보고는 포럼을 이용하십시오. 현재 latest 버전은 1.97.1, next 버전은 1.98.1입니다.
n8n 시작
터미널에서 다음 명령어를 실행합니다:docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
이 명령은 영구 데이터 저장을 위한 볼륨을 생성하고, 필요한 n8n 이미지를 다운로드하며, 컨테이너를 5678 포트로 노출하여 시작합니다. 컨테이너 재시작 시 작업 내용을 유지하기 위해 n8n_data 도커 볼륨을 로컬 데이터 경로에 마운트합니다. 실행 후 http://localhost:5678로 n8n에 접속할 수 있습니다.
PostgreSQL과 함께 사용
기본적으로 n8n은 SQLite를 사용하여 자격 증명, 이전 실행 및 워크플로우를 저장합니다. n8n은 환경 변수를 통해 PostgreSQL도 지원합니다. PostgreSQL 사용 시 /home/node/.n8n 폴더에 저장된 데이터를 유지하는 것이 중요합니다. 여기에는 n8n 사용자 데이터와 더 중요한 자격 증명 암호화 키가 포함됩니다. n8n 터널 사용 시 웹훅 이름도 여기에 포함됩니다. n8n이 시작 시 /home/node/.n8n 디렉토리를 찾지 못하면 자동으로 생성하며, 이 경우 다른 암호화 키로 저장된 기존 자격 증명은 더 이상 작동하지 않습니다. 참고: PostgreSQL과 함께 /home/node/.n8n 디렉토리를 유지하는 것이 권장되는 모범 사례이지만, 필수는 아닙니다. Docker 컨테이너 시작 시 N8N_ENCRYPTION_KEY 환경 변수를 전달하여 암호화 키를 제공할 수 있습니다. PostgreSQL과 n8n을 사용하려면 다음 명령어를 실행하고, 꺾쇠 괄호 안의 플레이스홀더를 실제 값으로 대체하십시오:docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \
-e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \
-e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \
-e DB_POSTGRESDB_USER=<POSTGRES_USER> \
-e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
-e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
PostgreSQL용 전체 docker-compose 파일은 n8n 호스팅 저장소에서 찾을 수 있습니다.
시간대 설정
n8n이 사용할 시간대를 정의하려면 GENERIC_TIMEZONE 환경 변수를 설정할 수 있습니다. 스케줄 기반 노드(예: Schedule Trigger 노드)는 이를 사용하여 올바른 시간대를 결정합니다. date와 같은 일부 스크립트 및 명령이 반환하는 시스템 시간대는 TZ 환경 변수를 사용하여 설정할 수 있습니다. 다음 예시는 두 변수에 동일한 시간대를 설정합니다:docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Europe/Berlin" \
-e TZ="Europe/Berlin" \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
업데이트
n8n을 업데이트하려면 Docker Desktop에서 이미지 탭으로 이동하여 컨텍스트 메뉴에서 Pull을 선택하여 최신 n8n 이미지를 다운로드합니다. 또는 다음 명령어를 사용하여 최신 버전 또는 특정 버전을 풀할 수 있습니다:# 최신 (안정) 버전 풀
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>
# 최신 버전 풀
docker compose pull
# 이전 버전 중지 및 제거
docker compose down
# 컨테이너 시작
docker compose up -d
터널 사용 n8n
경고: 터널 기능은 로컬 개발 및 테스트용으로만 사용하십시오. 프로덕션 환경에서는 안전하지 않습니다. GitHub와 같은 외부 서비스의 트리거 노드용 웹훅을 사용하려면 n8n이 웹에서 접근 가능해야 합니다. n8n은 n8n 서버에서 로컬 n8n 인스턴스로 요청을 리디렉션할 수 있는 터널 서비스를 실행합니다. --tunnel 옵션으로 n8n을 시작하려면 다음을 실행하십시오:docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n \
start --tunnel
다음 단계
n8n 구성 및 확장에 대해 더 알아보거나, Quickstarts를 통해 n8n 사용법을 살펴보십시오.
댓글
댓글 쓰기