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

DigitalOcean에서 n8n 호스팅#

이 호스팅 가이드는 DigitalOcean droplet에 n8n을 직접 호스팅하는 방법을 보여줍니다. 다음을 사용합니다:

  • Caddy (리버스 프록시)로 인터넷에서 Droplet에 접근할 수 있게 합니다. Caddy는 n8n 인스턴스에 대한 SSL / TLS 인증서를 자동으로 생성하고 관리합니다.
  • Docker Compose로 애플리케이션 구성 요소를 생성하고 정의하고 이들이 어떻게 함께 작동하는지를 설명합니다.

자체 호스팅 사전 요구 사항

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

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

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

최신 및 차기 버전

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

현재 latest: 1.77.3
현재 next: 1.78.0

Droplet 생성하기#

  1. 로그인하여 DigitalOcean에 접속합니다.
  2. Droplet을 호스팅할 프로젝트를 선택하거나 새 프로젝트 생성합니다.
  3. 프로젝트에서 Manage 메뉴에서 Droplets를 선택합니다.
  4. 새 Droplet 생성을 클릭하여 Marketplace 탭에서 사용 가능한 Docker 이미지를 사용합니다.

Droplet 리소스

Droplet을 생성할 때 DigitalOcean은 요금제를 선택하라고 요청합니다. 대부분의 사용 레벨에는 기본 공유 CPU 요금제가 충분합니다.

SSH 키 또는 비밀번호

DigitalOcean은 SSH 키와 비밀번호 기반 인증 중에서 선택할 수 있게 해줍니다. SSH 키는 더 안전한 것으로 간주됩니다.

Droplet에 로그인하고 새 사용자 생성하기#

이 가이드의 나머지 부분은 SSH를 사용하여 터미널로 Droplet에 로그인해야 하는 요구 사항이 있습니다. 더 많은 정보는 SSH로 Droplets에 연결하는 방법를 참조하세요.

새 사용자를 생성하여 root 사용자로 작업하지 않도록 하세요:

  1. root로 로그인합니다.
  2. 새 사용자 생성:
    1
    adduser <username>
    
  3. CLI에서 제공하는 안내에 따라 사용자를 생성합니다.
  4. 새 사용자에게 관리자 권한 부여:
    1
    usermod -aG sudo <username>
    
    이제 명령어 앞에 sudo를 붙여 슈퍼유저 권한으로 명령을 실행할 수 있습니다.
  5. 새 사용자에 대한 SSH 설정 단계 진행: 공개 키 인증 추가.
  6. Droplet에서 로그아웃합니다.
  7. 새 사용자로 SSH를 사용하여 로그인합니다.

구성 리포지토리 복제하기#

Docker Compose, n8n, Caddy는 일련의 폴더와 구성 파일이 필요합니다. 이 리포지토리에서 Droplet에 로그인한 사용자의 홈 폴더로 이를 복제할 수 있습니다. 다음 단계에서는 어떤 파일을 변경하고 무엇을 변경해야 하는지 알려줍니다.

다음 명령어로 리포지토리를 복제합니다:

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

복제한 리포지토리의 루트로 디렉터리를 변경합니다:

1
cd n8n-docker-caddy

기본 폴더 및 파일#

호스트 운영 체제(디지털오션 드롭릿)는 생성한 두 개의 폴더를 도커 컨테이너에 복사하여 도커에서 사용할 수 있도록 합니다. 두 개의 폴더는 다음과 같습니다:

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

도커 볼륨 생성#

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

1
sudo docker volume create caddy_data

n8n 데이터를 위한 도커 볼륨을 생성합니다:

1
sudo docker volume create n8n_data

DNS 설정#

n8n은 일반적으로 서브도메인에서 작동합니다. 제공업체에서 서브도메인에 대한 DNS 레코드를 생성하고 해당 레코드를 드롭릿의 IP 주소로 포인팅합니다. 이 과정의 구체적인 단계는 DNS 제공업체에 따라 다르지만, 일반적으로 n8n 서브도메인을 위한 새로운 "A" 레코드를 생성해야 합니다. 디지털오션에서는 DNS 용어, 구성 요소 및 개념 소개를 제공합니다.

포트 열기#

n8n은 웹 애플리케이션으로 실행되므로 드롭릿은 비보안 트래픽을 위한 80 포트와 보안 트래픽을 위한 443 포트에서 수신할 수 있도록 허용해야 합니다.

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

1
2
sudo ufw allow 80
sudo ufw allow 443

n8n 구성#

n8n은 도커 컨테이너에서 실행되는 애플리케이션에 전달하기 위해 설정해야 할 몇 가지 환경 변수가 필요합니다. 예제 .env 파일에는 자신만의 값으로 교체해야 할 자리 표시자가 포함되어 있습니다.

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

1
nano .env

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

n8n 환경 변수 세부 정보는 환경 변수를 참조하십시오.

도커 컴포즈 파일#

도커 컴포즈 파일(docker-compose.yml)은 애플리케이션이 필요로 하는 서비스를 정의하며, 이 경우 Caddy와 n8n입니다.

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

도커 컴포즈 파일은 .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
    }
}

automate.example.com을 사용하고자 했다면, Caddyfile은 다음과 유사할 것입니다:

1
2
3
4
5
automate.example.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Docker Compose 시작#

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

1
sudo 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 트렌드를 격주로 만나보세요!