InfoGrab DocsInfoGrab Docs

DigitalOcean에서 n8n 호스팅하기

요약

이 호스팅 가이드는 DigitalOcean 드롭릿에서 n8n을 셀프 호스팅하는 방법을 보여줍니다. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 드롭릿을 생성할 때 DigitalOcean은 플랜을 선택하도록 요청합니다.

이 호스팅 가이드는 DigitalOcean 드롭릿에서 n8n을 셀프 호스팅하는 방법을 보여줍니다. 다음을 사용합니다:

  • 인터넷에서 드롭릿에 접근할 수 있도록 해주는 리버스 프록시인 Caddy. Caddy는 n8n 인스턴스의 SSL / TLS 인증서도 자동으로 생성하고 관리합니다.
  • 애플리케이션 구성 요소를 생성하고 정의하며 이들이 함께 작동하는 방식을 정의하는 Docker Compose.
참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

드롭릿 생성#

  1. DigitalOcean에 로그인합니다.
  2. 드롭릿을 호스팅할 프로젝트를 선택하거나 새 프로젝트를 생성합니다.
  3. 프로젝트에서 Manage 메뉴의 Droplets를 선택합니다.
  4. Marketplace 탭에서 제공되는 Docker 이미지를 사용하여 새 드롭릿을 생성합니다.
Note

드롭릿 리소스

드롭릿을 생성할 때 DigitalOcean은 플랜을 선택하도록 요청합니다. 대부분의 사용 수준에서는 기본 공유 CPU 플랜으로 충분합니다.

Note

SSH 키 또는 비밀번호

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

드롭릿에 로그인하고 새 사용자 생성#

이 가이드의 나머지 부분에서는 SSH를 사용하는 터미널로 드롭릿에 로그인해야 합니다. 자세한 내용은 How to Connect to Droplets with SSH를 참조하세요.

root 사용자로 작업하지 않도록 새 사용자를 생성해야 합니다:

  1. root로 로그인합니다.
  2. 새 사용자를 생성합니다:
    adduser <username>
    
  3. CLI의 안내에 따라 사용자 생성을 완료합니다.
  4. 새 사용자에게 관리자 권한을 부여합니다:
    usermod -aG sudo <username>
    
    이제 명령어 앞에 sudo를 붙여서 슈퍼유저 권한으로 명령을 실행할 수 있습니다.
  5. 새 사용자를 위해 SSH를 설정하는 단계를 따릅니다: Add Public Key Authentication.
  6. 드롭릿에서 로그아웃합니다.
  7. 새 사용자로 SSH를 사용해 로그인합니다.

구성 리포지터리 클론#

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

다음 명령어로 리포지터리를 클론합니다:

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

그리고 클론한 리포지터리의 루트로 디렉터리를 변경합니다:

cd n8n-docker-caddy

기본 폴더와 파일#

호스트 운영 체제(DigitalOcean 드롭릿)는 생성한 두 폴더를 Docker 컨테이너에 복사하여 Docker에서 사용할 수 있게 합니다. 두 폴더는 다음과 같습니다:

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

Docker 볼륨 생성#

재시작 사이에 Caddy 캐시를 유지하고 시작 시간을 단축하려면 Docker가 재시작 사이에 재사용하는 Docker 볼륨을 생성하세요:

sudo docker volume create caddy_data

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

sudo docker volume create n8n_data

DNS 설정#

n8n은 일반적으로 서브도메인에서 작동합니다. 제공업체에서 서브도메인에 대한 DNS 레코드를 생성하고 드롭릿의 IP 주소를 가리키도록 설정하세요. 정확한 단계는 DNS 제공업체에 따라 다르지만, 일반적으로 n8n 서브도메인에 대해 새로운 "A" 레코드를 생성해야 합니다. DigitalOcean은 An Introduction to DNS Terminology, Components, and Concepts를 제공합니다.

포트 열기#

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

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

sudo ufw allow 80
sudo ufw allow 443

n8n 구성#

n8n에는 Docker 컨테이너에서 실행되는 애플리케이션에 전달할 환경 변수 설정이 몇 가지 필요합니다. 예시 .env 파일에는 직접 값으로 교체해야 하는 자리 표시자가 들어 있습니다.

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

nano .env

파일에는 무엇을 변경해야 하는지 알려주는 인라인 주석이 포함되어 있습니다.

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

Docker Compose 파일#

Docker Compose 파일(docker-compose.yml)은 애플리케이션에 필요한 서비스, 이 경우 Caddy와 n8n을 정의합니다.

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

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

nano docker-compose.yml

Caddy 구성#

Caddy는 어떤 도메인을 서비스해야 하는지, 외부 세계에 어떤 포트를 노출해야 하는지 알아야 합니다. caddy_config 폴더의 Caddyfile 파일을 편집하세요.

nano caddy_config/Caddyfile

자리 표시자 도메인을 여러분의 도메인으로 변경하세요. 서브도메인을 n8n으로 지정하는 단계를 따랐다면, 전체 도메인은 n8n.example.com과 비슷한 형태가 됩니다. reverse_proxy 설정의 n8ndocker-compose.yml 파일에 정의된 서비스 정의를 사용하도록 Caddy에 알려줍니다:

n8n.<domain>.<suffix> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

automate.example.com을 사용하는 경우 Caddyfile은 다음과 비슷하게 보일 수 있습니다:

automate.example.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Docker Compose 시작#

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

sudo docker compose up -d

이 작업은 몇 분 정도 걸릴 수 있습니다.

설정 테스트#

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

n8n과 Caddy 중지#

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

sudo docker compose stop

업데이트#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

다음 단계#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

DigitalOcean에서 n8n 호스팅하기

n8n v2.29
원문 보기
요약

이 호스팅 가이드는 DigitalOcean 드롭릿에서 n8n을 셀프 호스팅하는 방법을 보여줍니다. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 드롭릿을 생성할 때 DigitalOcean은 플랜을 선택하도록 요청합니다.

이 호스팅 가이드는 DigitalOcean 드롭릿에서 n8n을 셀프 호스팅하는 방법을 보여줍니다. 다음을 사용합니다:

  • 인터넷에서 드롭릿에 접근할 수 있도록 해주는 리버스 프록시인 Caddy. Caddy는 n8n 인스턴스의 SSL / TLS 인증서도 자동으로 생성하고 관리합니다.
  • 애플리케이션 구성 요소를 생성하고 정의하며 이들이 함께 작동하는 방식을 정의하는 Docker Compose.
참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

드롭릿 생성#

  1. DigitalOcean에 로그인합니다.
  2. 드롭릿을 호스팅할 프로젝트를 선택하거나 새 프로젝트를 생성합니다.
  3. 프로젝트에서 Manage 메뉴의 Droplets를 선택합니다.
  4. Marketplace 탭에서 제공되는 Docker 이미지를 사용하여 새 드롭릿을 생성합니다.
Note

드롭릿 리소스

드롭릿을 생성할 때 DigitalOcean은 플랜을 선택하도록 요청합니다. 대부분의 사용 수준에서는 기본 공유 CPU 플랜으로 충분합니다.

Note

SSH 키 또는 비밀번호

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

드롭릿에 로그인하고 새 사용자 생성#

이 가이드의 나머지 부분에서는 SSH를 사용하는 터미널로 드롭릿에 로그인해야 합니다. 자세한 내용은 How to Connect to Droplets with SSH를 참조하세요.

root 사용자로 작업하지 않도록 새 사용자를 생성해야 합니다:

  1. root로 로그인합니다.
  2. 새 사용자를 생성합니다:
    adduser <username>
    
  3. CLI의 안내에 따라 사용자 생성을 완료합니다.
  4. 새 사용자에게 관리자 권한을 부여합니다:
    usermod -aG sudo <username>
    
    이제 명령어 앞에 sudo를 붙여서 슈퍼유저 권한으로 명령을 실행할 수 있습니다.
  5. 새 사용자를 위해 SSH를 설정하는 단계를 따릅니다: Add Public Key Authentication.
  6. 드롭릿에서 로그아웃합니다.
  7. 새 사용자로 SSH를 사용해 로그인합니다.

구성 리포지터리 클론#

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

다음 명령어로 리포지터리를 클론합니다:

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

그리고 클론한 리포지터리의 루트로 디렉터리를 변경합니다:

cd n8n-docker-caddy

기본 폴더와 파일#

호스트 운영 체제(DigitalOcean 드롭릿)는 생성한 두 폴더를 Docker 컨테이너에 복사하여 Docker에서 사용할 수 있게 합니다. 두 폴더는 다음과 같습니다:

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

Docker 볼륨 생성#

재시작 사이에 Caddy 캐시를 유지하고 시작 시간을 단축하려면 Docker가 재시작 사이에 재사용하는 Docker 볼륨을 생성하세요:

sudo docker volume create caddy_data

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

sudo docker volume create n8n_data

DNS 설정#

n8n은 일반적으로 서브도메인에서 작동합니다. 제공업체에서 서브도메인에 대한 DNS 레코드를 생성하고 드롭릿의 IP 주소를 가리키도록 설정하세요. 정확한 단계는 DNS 제공업체에 따라 다르지만, 일반적으로 n8n 서브도메인에 대해 새로운 "A" 레코드를 생성해야 합니다. DigitalOcean은 An Introduction to DNS Terminology, Components, and Concepts를 제공합니다.

포트 열기#

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

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

sudo ufw allow 80
sudo ufw allow 443

n8n 구성#

n8n에는 Docker 컨테이너에서 실행되는 애플리케이션에 전달할 환경 변수 설정이 몇 가지 필요합니다. 예시 .env 파일에는 직접 값으로 교체해야 하는 자리 표시자가 들어 있습니다.

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

nano .env

파일에는 무엇을 변경해야 하는지 알려주는 인라인 주석이 포함되어 있습니다.

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

Docker Compose 파일#

Docker Compose 파일(docker-compose.yml)은 애플리케이션에 필요한 서비스, 이 경우 Caddy와 n8n을 정의합니다.

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

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

nano docker-compose.yml

Caddy 구성#

Caddy는 어떤 도메인을 서비스해야 하는지, 외부 세계에 어떤 포트를 노출해야 하는지 알아야 합니다. caddy_config 폴더의 Caddyfile 파일을 편집하세요.

nano caddy_config/Caddyfile

자리 표시자 도메인을 여러분의 도메인으로 변경하세요. 서브도메인을 n8n으로 지정하는 단계를 따랐다면, 전체 도메인은 n8n.example.com과 비슷한 형태가 됩니다. reverse_proxy 설정의 n8ndocker-compose.yml 파일에 정의된 서비스 정의를 사용하도록 Caddy에 알려줍니다:

n8n.<domain>.<suffix> {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

automate.example.com을 사용하는 경우 Caddyfile은 다음과 비슷하게 보일 수 있습니다:

automate.example.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

Docker Compose 시작#

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

sudo docker compose up -d

이 작업은 몇 분 정도 걸릴 수 있습니다.

설정 테스트#

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

n8n과 Caddy 중지#

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

sudo docker compose stop

업데이트#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

다음 단계#

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.