콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

Hetzner 클라우드에서 n8n 호스팅하기#

이 호스팅 가이드는 Hetzner 클라우드 서버에서 n8n을 자체 호스트하는 방법을 보여줍니다. 사용되는 도구는 다음과 같습니다:

  • Caddy (역방향 프록시) : 서버에 인터넷으로 접근할 수 있도록 허용합니다.
  • Docker Compose : 애플리케이션 구성 요소를 생성하고 이들이 어떻게 함께 작동하는지를 정의합니다.

자체 호스팅 사전 요구 사항

n8n을 자체 호스팅하려면 다음과 같은 기술적 지식이 필요합니다:

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

n8n은 전문가 수준의 사용자에게 자체 호스팅을 권장합니다. 실수로 인해 데이터 손실, 보안 문제, 서비스 중단이 발생할 수 있습니다. 서버 관리 경험이 부족한 경우, n8n은 n8n Cloud 사용을 추천합니다.

최신 및 차기 버전

n8n은 대부분의 주에 새로운 마이너 버전을 출시합니다. latest 버전은 프로덕션 환경에서 사용하도록 설계된 안정적인 버전입니다. next 버전은 가장 최근에 출시된 버전으로, 베타 버전으로 간주해야 하며 불안정할 수 있습니다. 문제를 발견하면 포럼에서 보고해 주세요.

현재 latest: 1.77.3
현재 next: 1.78.0

서버 생성하기#

  1. 로그인하여 Hetzner Cloud Console에 접속합니다.
  2. 서버를 호스팅할 프로젝트를 선택하거나, + NEW PROJECT를 선택하여 새 프로젝트를 만듭니다.
  3. 추가할 프로젝트 타일에서 + CREATE SERVER를 선택합니다.

대부분의 설정은 필요에 맞게 변경할 수 있지만, 이 가이드에서는 애플리케이션을 실행하기 위해 Docker를 사용하므로 Image 섹션에서 APPS 탭에서 "Docker CE"를 선택해야 합니다.

유형

서버를 생성할 때 Hetzner는 요금제를 선택할 것을 요청합니다. 대부분의 사용 수준에서는 CPX11 유형이면 충분합니다.

SSH 키

Hetzner는 SSH와 비밀번호 기반 인증 중에서 선택할 수 있게 해줍니다. SSH가 더 안전합니다. 이 가이드의 나머지 부분은 SSH를 사용하고 있다고 가정합니다.

서버에 로그인하기#

이 가이드의 나머지 부분은 SSH가 있는 터미널을 사용하여 서버에 로그인해야 합니다. 더 많은 정보는 SSH/rsync/BorgBackup으로 접근하기를 참조하십시오. 프로젝트에 있는 서버 목록에서 공개 IP를 찾을 수 있습니다.

Docker Compose 설치하기#

Hetzner Docker 앱 이미지는 Docker Compose가 설치되어 있지 않습니다. 다음 명령으로 설치합니다:

1
2
apt update && apt -y upgrade
apt install docker-compose-plugin

설정 저장소 클론하기#

Docker Compose, n8n, 및 Caddy는 일련의 폴더와 설정 파일을 필요로 합니다. 이들은 이 저장소에서 서버의 루트 사용자 폴더로 클론할 수 있습니다. 다음 단계는 어떤 파일을 변경하고 어떤 변경을 해야 하는지를 알려줄 것입니다.

다음 명령으로 저장소를 클론합니다:

1
git clone https://github.com/n8n-io/n8n-docker-caddy.git

클론한 저장소의 루트로 디렉토리를 변경합니다:

1
cd n8n-docker-caddy

기본 폴더 및 파일#

호스트 운영체제(서버)는 Docker 컨테이너에 배포하기 위해 생성한 두 개의 폴더를 복사합니다. 두 폴더는 다음과 같습니다:

  • caddy_config: Caddy 설정 파일을 보관합니다.
  • local_files: n8n을 사용하여 업로드하거나 추가한 파일을 위한 폴더입니다.

Docker 볼륨 생성하기#

Caddy 캐시를 재시작 간에 유지하고 시작 시간을 단축하기 위해, 재시작 간에 Docker가 재사용하는 Docker 볼륨을 생성합니다:

1
docker volume create caddy_data

n8n 데이터용 Docker 볼륨을 생성합니다:

1
sudo docker volume create n8n_data

DNS 설정#

n8n은 일반적으로 서브도메인에서 운영됩니다. 제공업체에 서브도메인에 대한 DNS 레코드를 생성하고 이를 서버의 IP 주소로 지정하세요. 이 과정은 DNS 제공업체에 따라 다르지만, 일반적으로 n8n 서브도메인에 대한 새 "A" 레코드를 생성해야 합니다. DigitalOcean은 DNS 용어, 구성 요소 및 개념 소개를 제공합니다.

포트 열기#

n8n은 웹 응용 프로그램으로 실행되므로, 서버는 비보안 트래픽에 대해 포트 80과 보안 트래픽에 대해 포트 443에 대한 들어오는 액세스를 허용해야 합니다.

다음 두 명령어를 실행하여 서버의 방화벽에서 다음 포트를 엽니다:

1
2
sudo ufw allow 80
sudo ufw allow 443

n8n 구성#

n8n은 Docker 컨테이너에서 실행 중인 응용 프로그램에 전달할 환경 변수가 설정되어야 합니다. 예제 .env 파일에는 당신이 직접 교체해야 할 자리 표시자가 포함되어 있습니다.

다음 명령어로 파일을 엽니다:

1
nano .env

파일에는 변경해야 할 내용을 알 수 있도록 인라인 주석이 포함되어 있습니다.

n8n 환경 변수의 자세한 내용은 환경 변수를 참조하세요.

Docker Compose 파일#

Docker Compose 파일(docker-compose.yml)은 이 응용 프로그램이 필요로 하는 서비스, 즉 Caddy와 n8n을 정의합니다.

  • Caddy 서비스 정의는 사용되는 포트와 컨테이너에 복사할 로컬 볼륨을 정의합니다.
  • n8n 서비스 정의는 사용되는 포트, n8n이 실행되기 위해 필요한 환경 변수(일부는 .env 파일에 정의됨), 및 컨테이너에 복사할 볼륨을 정의합니다.

Docker Compose 파일은 .env 파일에 설정된 환경 변수를 사용하므로, 내용을 변경할 필요는 없지만 확인하려면 다음 명령어를 실행하세요:

1
nano docker-compose.yml

Caddy 구성#

Caddy는 어떤 도메인을 제공해야 할지와 외부에 노출할 포트를 알아야 합니다. caddy_config 폴더에서 Caddyfile 파일을 편집합니다.

1
nano caddy_config/Caddyfile

자리 표시자 서브도메인을 당신의 것으로 변경하세요. 서브도메인 이름을 n8n으로 설정하는 절차를 따랐다면, 전체 도메인은 n8n.example.com과 비슷합니다. reverse_proxy 설정의 n8n은 Caddy에게 docker-compose.yml 파일에 정의된 서비스 정의를 사용하라고 지시합니다:

1
2
3
4
5
n8n.<domain>.<suffix> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Docker Compose 시작하기#

다음 명령어로 n8n과 Caddy를 시작합니다:

1
docker compose up -d

몇 분 정도 소요될 수 있습니다.

설정 테스트#

브라우저에서 이전에 정의된 서브도메인과 도메인 이름으로 형성된 URL을 엽니다. 이전에 정의한 사용자 이름과 비밀번호를 입력하면 n8n에 접근할 수 있어야 합니다.

n8n과 Caddy 중지하기#

다음 명령어로 n8n과 Caddy를 중지할 수 있습니다:

1
sudo docker compose stop

업데이트#

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

1
2
3
4
5
6
7
8
# Pull latest version
docker compose pull

# Stop and remove older version
docker compose down

# Start the container
docker compose up -d

다음 단계#

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!