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 생성하기#
- 로그인하여 DigitalOcean에 접속합니다.
- Droplet을 호스팅할 프로젝트를 선택하거나 새 프로젝트 생성합니다.
- 프로젝트에서 Manage 메뉴에서 Droplets를 선택합니다.
- 새 Droplet 생성을 클릭하여 Marketplace 탭에서 사용 가능한 Docker 이미지를 사용합니다.
Droplet 리소스
Droplet을 생성할 때 DigitalOcean은 요금제를 선택하라고 요청합니다. 대부분의 사용 레벨에는 기본 공유 CPU 요금제가 충분합니다.
SSH 키 또는 비밀번호
DigitalOcean은 SSH 키와 비밀번호 기반 인증 중에서 선택할 수 있게 해줍니다. SSH 키는 더 안전한 것으로 간주됩니다.
Droplet에 로그인하고 새 사용자 생성하기#
이 가이드의 나머지 부분은 SSH를 사용하여 터미널로 Droplet에 로그인해야 하는 요구 사항이 있습니다. 더 많은 정보는 SSH로 Droplets에 연결하는 방법를 참조하세요.
새 사용자를 생성하여 root 사용자로 작업하지 않도록 하세요:
- root로 로그인합니다.
- 새 사용자 생성:
1
adduser <username>
- CLI에서 제공하는 안내에 따라 사용자를 생성합니다.
- 새 사용자에게 관리자 권한 부여:
이제 명령어 앞에
1
usermod -aG sudo <username>
sudo
를 붙여 슈퍼유저 권한으로 명령을 실행할 수 있습니다. - 새 사용자에 대한 SSH 설정 단계 진행: 공개 키 인증 추가.
- Droplet에서 로그아웃합니다.
- 새 사용자로 SSH를 사용하여 로그인합니다.
구성 리포지토리 복제하기#
Docker Compose, n8n, Caddy는 일련의 폴더와 구성 파일이 필요합니다. 이 리포지토리에서 Droplet에 로그인한 사용자의 홈 폴더로 이를 복제할 수 있습니다. 다음 단계에서는 어떤 파일을 변경하고 무엇을 변경해야 하는지 알려줍니다.
다음 명령어로 리포지토리를 복제합니다:
1 |
|
복제한 리포지토리의 루트로 디렉터리를 변경합니다:
1 |
|
기본 폴더 및 파일#
호스트 운영 체제(디지털오션 드롭릿)는 생성한 두 개의 폴더를 도커 컨테이너에 복사하여 도커에서 사용할 수 있도록 합니다. 두 개의 폴더는 다음과 같습니다:
caddy_config
: Caddy 구성 파일을 보관합니다.local_files
: n8n을 사용하여 업로드하거나 추가하는 파일을 위한 폴더입니다.
도커 볼륨 생성#
Caddy 캐시를 재시작 간에 유지하고 시작 시간을 단축시키기 위해, 도커가 재시작 간에 재사용하는 도커 볼륨을 생성합니다:
1 |
|
n8n 데이터를 위한 도커 볼륨을 생성합니다:
1 |
|
DNS 설정#
n8n은 일반적으로 서브도메인에서 작동합니다. 제공업체에서 서브도메인에 대한 DNS 레코드를 생성하고 해당 레코드를 드롭릿의 IP 주소로 포인팅합니다. 이 과정의 구체적인 단계는 DNS 제공업체에 따라 다르지만, 일반적으로 n8n 서브도메인을 위한 새로운 "A" 레코드를 생성해야 합니다. 디지털오션에서는 DNS 용어, 구성 요소 및 개념 소개를 제공합니다.
포트 열기#
n8n은 웹 애플리케이션으로 실행되므로 드롭릿은 비보안 트래픽을 위한 80 포트와 보안 트래픽을 위한 443 포트에서 수신할 수 있도록 허용해야 합니다.
다음 두 명령어를 실행하여 드롭릿의 방화벽에서 다음 포트를 엽니다:
1 2 |
|
n8n 구성#
n8n은 도커 컨테이너에서 실행되는 애플리케이션에 전달하기 위해 설정해야 할 몇 가지 환경 변수가 필요합니다. 예제 .env
파일에는 자신만의 값으로 교체해야 할 자리 표시자가 포함되어 있습니다.
다음 명령어로 파일을 엽니다:
1 |
|
파일에는 변경해야 할 내용을 알 수 있도록 인라인 주석이 포함되어 있습니다.
n8n 환경 변수 세부 정보는 환경 변수를 참조하십시오.
도커 컴포즈 파일#
도커 컴포즈 파일(docker-compose.yml
)은 애플리케이션이 필요로 하는 서비스를 정의하며, 이 경우 Caddy와 n8n입니다.
- Caddy 서비스 정의는 사용하는 포트와 컨테이너로 복사할 로컬 볼륨을 정의합니다.
- n8n 서비스 정의는 사용하는 포트, n8n이 실행하는 데 필요한 환경 변수(일부는
.env
파일에 정의됨), 그리고 컨테이너로 복사할 볼륨을 정의합니다.
도커 컴포즈 파일은 .env
파일에 설정된 환경 변수를 사용하므로, 내용을 변경할 필요는 없지만 확인하려면 다음 명령어를 실행합니다:
1 |
|
Caddy 구성#
Caddy는 어떤 도메인을 제공해야 할지와 외부에 노출할 포트를 알아야 합니다. caddy_config
폴더의 Caddyfile
파일을 수정합니다.
1 |
|
자리 표시자 도메인을 자신의 도메인으로 변경합니다. 서브도메인을 n8n으로 명명하는 단계를 따랐다면, 전체 도메인은 n8n.example.com
과 유사합니다. reverse_proxy
설정의 n8n
은 Caddy에게 docker-compose.yml
파일에 정의된 서비스 정의를 사용하도록 지시합니다:
1 2 3 4 5 |
|
automate.example.com
을 사용하고자 했다면, Caddyfile
은 다음과 유사할 것입니다:
1 2 3 4 5 |
|
Docker Compose 시작#
다음 명령으로 n8n과 Caddy를 시작합니다:
1 |
|
이 작업은 몇 분 정도 걸릴 수 있습니다.
설정 테스트#
브라우저에서 이전에 정의한 서브도메인과 도메인 이름으로 구성된 URL을 엽니다. 이전에 정의한 사용자 이름과 비밀번호를 입력하면 n8n에 액세스할 수 있어야 합니다.
n8n 및 Caddy 중지#
다음 명령으로 n8n과 Caddy를 중지할 수 있습니다:
1 |
|
업데이트#
Docker Compose 파일을 사용하여 n8n을 실행하는 경우, 다음 단계를 따라 n8n을 업데이트하세요:
1 2 3 4 5 6 7 8 |
|