HEROJOON 블로그(히로블)
노코드 자동화 도구 n8n의 Self-Hosted 환경 설치하기 본문
목표
n8n을 로컬 환경에 Self-hosted(직접 구축) 하기
n8n이란
● n8n이란?
N8N은 오픈소스 자동화 플랫폼입니다.
시각적인 워크플로우로 여러 단계의 작업을 지정할 수 있고 이러한 워크플로우 기능으로 코드 없이 노코드로 자동화 할 수 있습니다.
또한 Slack, Google, Open AI등 다양한 서비스들과 쉽게 통합하여 작업 수행이 가능합니다.
API 호출과 코드를 이용한 세부 작업도 가능하여 복잡한 자동화를 맞춤으로 쉽게 구축 가능합니다.
- 공식 웹사이트 URL: https://n8n.io/
n8n.io - a powerful workflow automation tool
n8n is a free and source-available workflow automation tool
n8n.io
● n8n으로 어떤것을 할 수 있을까?
N8N은 반복되는 작업의 업무 자동화를 여러 서비스와 연계하여 통합적으로 구축할 수 있습니다.
고객 데이터를 수집하고 리포트를 작성해주는 일이나 cron과 SMS를 연동하여 마케팅 알림 자동화를 구축할 수도 있습니다.
● 사람들은 n8n을 어떻게 발음하나요?
별거 아니지만 줄여져 있는 서비스는 대중적으로 어떻게 발음되는지 처음엔 생소합니다.
그래서 발음에 대해 정리했습니다.😊
- 네이튼(n8n)이라고도 부르고
- 엔팔엔(n8n)이라고도 부르고
- 엔에잇엔(n8n)이라고도 부릅니다.
n8n을 사용하기 위한 방법
● n8n 사용 환경 종류
- N8N 자체 클라우드 환경 사용 (유료)
- N8N Self-hosted(자체 환경 구축)하여 사용
● n8n Self-hosted(자체 환경 구축) 방법
- 개인 클라우드 플랫폼에 n8n 설치
- AWS, Azure, Google Cloud 등
- 로컬 환경에 n8n 설치
- Docker를 이용한 설치
- NPM을 이용한 설치
n8n Self-hosted 환경
- n8n Self-hosted 구축을 위한 나의 환경
- 설치 위치: 로컬 환경 (Windows 11)
- 설치 방법: Docker를 이용한 설치
해보기 요약
- n8n Self-hosted 셋업하기
- Docker 설치
- n8n용 Docker Volume(볼륨) 생성
- Docker로 n8n 이미지 다운로드 받아 n8n 실행하기
- Docker Desktop으로 n8n 이미지와 컨테이너 확인해보기
- Docker Desktop에서 n8n 컨테이너 종료하기
- n8n Self-hosted 설정 추가하기
- n8n 접속 도메인, 타임존 설정 추가하기
- n8n 작업 폴더 생성하기
- .env, docker-compose.yml 파일 생성하기
- docker-compose.yml파일을 이용하여 n8n 실행하기
- Docker Desktop에서 n8n 접속 정보 확인하기
- 로컬 호스트 파일 수정하기
- n8n 접속 도메인, 타임존 설정 추가하기
해보기
1. n8n Self-hosted 셋업하기
- n8n Docker로 Self-hosted 설치하기 Docs URL: https://docs.n8n.io/hosting/installation/docker/
Docker | n8n Docs
Hosting n8n Installation Docker Installation Docker offers the following advantages: Install n8n in a clean environment. Easier setup for your preferred database. Can avoid issues due to different operating systems, as Docker provides a consistent system.
docs.n8n.io
1-1. Docker 설치
Docker 설치는 아래 포스팅 참고 부탁드립니다.
https://herojoon-dev.tistory.com/254
Windows 11에 Docker Desktop 설치하기_2024.11
목표Windows 11에 Docker Desktop 설치하기Docker 사용해보기 오랜만에 Docker설치하려고 하니 Docker 설치 UI가 바뀌어 2024.11.05 기준 다시 정리해보았습니다.이번 정리에는 Docker 이미지 사용 예제도 함께
herojoon-dev.tistory.com
1-2. n8n용 Docker Volume(볼륨) 생성
Docker Desktop 설치 뒤 Docker 명령어를 이용하여 n8n용 Docker Volume을 생성해줍니다.
- Docker Volume이란? 컨테이너가 삭제되어도 데이터가 유지되도록 호스트에 저장 공간을 제공하는 기능
// docker volume create [생성할 Docker Voulme이름]
// n8n_data라는 이름의 Docker Volume 생성
docker volume create n8n_data
![](https://blog.kakaocdn.net/dn/beDFdl/btsKADS4Q0X/7hgFgu9BYzbNKIhbUdaO2k/img.png)
Docker Voulme 생성 후 Docker Desktop의 Volumes 영역을 보시면 볼륨이 생성되어 있는 것을 확인 할 수 있습니다.
![](https://blog.kakaocdn.net/dn/cVjUJv/btsKAELbIyC/kKCYlJKjx6bQE4X9pWkUe0/img.png)
1-3. Docker로 n8n 이미지 다운로드 받아 n8n 실행하기
Docker 명령어를 아래와 같이 입력해줍니다.
n8n 이미지를 다운로드하고, 다운로드 받은 n8n 이미지로 Container를 띄워주는 명령어입니다.
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
n8n이 실행된 후 아래와 같이 접속 주소가 출력됩니다.
![](https://blog.kakaocdn.net/dn/bfgJRx/btsKzeHdt6W/CEuOMYObF7g1JaU7FfPAik/img.png)
아래와 같은 화면이 보여집니다.
- n8n 접속 주소: http://localhost:5678
![](https://blog.kakaocdn.net/dn/pcvut/btsKz5iebSN/ELFtYZBekg7MopSOtLPpTk/img.png)
로그인 정보 입력 후 [Next]를 클릭해줍니다.
- Email: user@email.com
- First Name: joon
- Last Name: hero
- Password: Qwer1234
![](https://blog.kakaocdn.net/dn/bRtBVT/btsKA5n0haA/Yfkyn1QdlxO8zKn1NqY7Tk/img.png)
![](https://blog.kakaocdn.net/dn/8EJfA/btsKAKxEGAs/kRnK70ZvczYfWmWzhJUyNk/img.png)
![](https://blog.kakaocdn.net/dn/pHVU8/btsKAuIOjvk/Y2kPS3rE352fMYoNAO0Rck/img.png)
설치가 완료된 것을 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/WttuW/btsKAFcgseL/ujZxlA5kZVkao8dmuN62E0/img.png)
1-4. Docker Desktop으로 이미지와 컨테이너 확인해보기
Docker Desktop에서 [Images]를 보시면 n8n 이미지(docker.n8n.io/n8nio/n8n)가 잘 Pull된 것을 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/z7CDc/btsKBogylsp/fKBrRT5yubGM9aFFqy4Vwk/img.png)
Docker Desktop에서 [Containers]를 보시면 n8n 이미지가 실행된 n8n 컨테이너가 잘 실행된 것을 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/3aJ2g/btsKBoU9U14/Bf991kc2LERxucv3aBe18K/img.png)
1-5. Docker Desktop에서 n8n 컨테이너 종료하기
Docker Desktop에서 [Containers]에 있는 n8n 컨테이너를 [Actions]의 네모 아이콘을 클릭하여 종료시켜줍니다.
![](https://blog.kakaocdn.net/dn/c7zVAm/btsKA5O5oVg/R19QGssMITxbqdNlvWrKN1/img.png)
컨테이너가 종료되면 [Containers]에서 해당 컨테이너가 사라집니다.
![](https://blog.kakaocdn.net/dn/To0x1/btsKBmbYaPi/iCQLzGpPV70lOoVjRVivi1/img.png)
2. n8n Self-hosted 설정 추가하기
2-1. n8n 접속 도메인, 타임존 설정 추가하기
n8n은 여러 설정 정보를 수정하여 사용 가능하도록 기능을 제공해줍니다.
예를들어 위에서 띄운 n8n은 http://localhost:5678으로 접속됩니다. localhost로 보여지는 것을 내가 원하는 도메인으로 변경하고자 한다면 설정으로 가능합니다.
또한 n8n의 cron작업이나 로깅 시간등을 위해 사용되는 타임존도 변경할 수 있습니다.
이러한 설정정보를 어떻게 지정할 수 있을까요?
docker-compose.yml을 이용하여 설정정보를 정의하며 n8n을 실행시킬 수 있습니다.
- n8n docker-compose.yml URL
- n8n 타임존 Environment URL
2-1-1. n8n 작업 폴더 생성하기
저는 C:\devtool 위치 아래에 n8n이라는 폴더를 생성해주었습니다.
C:\devtool\n8n
2-1-2. .env, docker-compose.yml 파일 생성하기
.env파일을 생성하기 위해 메모장에 아래와 같이 Environment를 입력해줍니다.
# domain name
DOMAIN_NAME=selfhosted.com
# sub domain name
SUBDOMAIN=n8n
# timezone
GENERIC_TIMEZONE=Asia/Seoul
![](https://blog.kakaocdn.net/dn/bGUMkn/btsKA68hJJn/NmKTtP3jVBH0FcpKujcnd0/img.png)
[파일] - [다른 이름으로 저장]을 클릭해줍니다.
![](https://blog.kakaocdn.net/dn/u8N49/btsKBgJNeIt/CyamLoCWANHPq3S95cYtJk/img.png)
아래처럼 입력 후 [저장]을 클릭합니다.
- 파일 이름: .env
- 파일 형식: 모든 파일
- 인코딩: UTF-8
![](https://blog.kakaocdn.net/dn/bkiR5f/btsKz11aTaR/TI2L1KB0gEQtpUeID3ZxEK/img.png)
n8n 작업 폴더에 .env파일이 생성됩니다.
![](https://blog.kakaocdn.net/dn/OnLl9/btsKA9Rq0zv/HUgePcTlLc7Qm1RPuJfoQk/img.png)
.env 파일 생성 끝.
docker-compose.yml파일을 생성하기 위해 메모장에 아래와 같이 내용을 입력해줍니다.
version: "3.7"
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "80:80"
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=80
- N8N_PROTOCOL=http
- NODE_ENV=production
- WEBHOOK_URL=http://${SUBDOMAIN}.${DOMAIN_NAME}
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- N8N_SECURE_COOKIE=false
env_file:
- .env
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
external: true
![](https://blog.kakaocdn.net/dn/q4Uvc/btsKzT9UGYm/w5JCXQ247rKqxJwOfXlce1/img.png)
[파일] - [다른 이름으로 저장]을 클릭해줍니다.
![](https://blog.kakaocdn.net/dn/oHFBU/btsKzkNYsSb/S4D6CRk3IhpbbXQYa1uGZk/img.png)
아래처럼 입력 후 [저장]을 클릭합니다.
- 파일 이름: docker-compose.yml
- 파일 형식: 모든 파일
- 인코딩: UTF-8
![](https://blog.kakaocdn.net/dn/cIpU6n/btsKzllNu1d/jLcaKX7TVLbLhAQWS8ugxK/img.png)
n8n 작업 폴더에 docker-compose.yml파일이 생성됩니다.
![](https://blog.kakaocdn.net/dn/r7azm/btsKArZE4BJ/nf0ItL2XmqwnKIvzukHAy0/img.png)
docker-compose.yml 파일 생성 끝.
2-1-3. docker-compose.yml파일을 이용하여 n8n 실행하기
n8n 작업 폴더에서 cmd를 입력하여 명령 프롬프트 창을 열어줍니다.
![](https://blog.kakaocdn.net/dn/v30Vc/btsKAYJoLSp/17IGhERNNv2G6NiitoNciK/img.png)
명령 프롬프트에 docker-compose 실행 명령어를 입력해줍니다.
docker-compose up -d
![](https://blog.kakaocdn.net/dn/dzzecy/btsKBkSXd1Q/lTZG6kA4XcjGx5R8FfhzH0/img.png)
![](https://blog.kakaocdn.net/dn/tOavV/btsKAvgEBWU/DQzpE7mL9h7pYtHhSg3Xb1/img.png)
2-1-4. Docker Desktop에서 n8n 접속 정보 확인하기
Docker Desktop에서 [Containers]를 보면 n8n이라는 이름의 컨테이너가 Status Running으로 잘 띄워진것을 확인할 수 있습니다. n8n 컨테이너를 클릭해줍니다.
![](https://blog.kakaocdn.net/dn/cxGxy1/btsKzUnrxmy/Dz6XPUtOOdiVjjPJOXEPM0/img.png)
n8n 컨테이너 로그에 접속정보를 확인할 수 있습니다.
- n8n 접속 정보: http://n8n.selfhosted.com
![](https://blog.kakaocdn.net/dn/bEykji/btsKABOvE6u/0oEOOkkFZsy9cIrHugiZU1/img.png)
그런데 접속정보 접근 시 사이트에 접근할 수 없다고 뜹니다.
그 이유는 로컬 호스트 파일을 수정해주어야 하기 때문입니다.
로컬 호스트 파일은 내 로컬 환경의 ip와 도메인 맵핑 정보를 관리해주는 파일입니다.
기본적으로 127.0.0.1에 localhost라는 이름의 도메인으로 매핑되어 있습니다.
그래서 loclhost가 아닌 http://n8n.selfhosted.com으로 접근 시 접근되지 않습니다.
![](https://blog.kakaocdn.net/dn/065Wa/btsKziikOsw/y17ThgKqf3FTFKWIQzkR8K/img.png)
2-1-4. 로컬 호스트 파일 수정하기
- 로컬 호스트 파일 위치: C:\Windows\System32\drivers\etc
- 로컬 호스트 파일명: hosts
hosts파일을 관리자 권한으로 열어줍니다.
메모장이나 다른 editor 창으로 여시면됩니다.
![](https://blog.kakaocdn.net/dn/bgYtHE/btsKACNoH3V/5AhdMA8K0pX2Qr1ehAWEh1/img.png)
아래와 같이 입력 후 저장해줍니다.
#는 주석이기 때문에 앞에 #를 붙여주시면 안됩니다.
127.0.0.1 n8n.selfhosted.com
![](https://blog.kakaocdn.net/dn/cEXkSZ/btsKAgcMKZn/C5XZerHiWLvX8opvf1be70/img.png)
다시 n8n 지정한 도메인으로 접속해줍니다.
로그인 정보는 위에서 가입한 정보를 입력하시면 되며, 만약 아래 화면이 아니라 가입 화면이 나오시면
다시 가입해주시면 됩니다. 로컬 환경 셋업이니 가입정보를 정확하게 입력하지 않으셔도 됩니다.
- n8n 접속 정보: http://n8n.selfhosted.com
![](https://blog.kakaocdn.net/dn/cI7ZyL/btsKAu278WT/D2WZq2eMxAkUEn2Cj0I2hK/img.png)
![](https://blog.kakaocdn.net/dn/etAksz/btsKAtJTuor/F3y2uLw0jE7fOieO1DsnI1/img.png)
끝.
감사합니다.
'기타' 카테고리의 다른 글
요약을 간편하게 해주는 LilysAI 사용해보기 (0) | 2024.11.03 |
---|---|
IntelliJ 터미널에서 명령어가 동작하지 않을 경우 혹은 IntelliJ change powershell to cmd (0) | 2024.02.19 |
IntelliJ 프로젝트 새 창으로 열기 설정 (0) | 2024.02.12 |
[구글 애드센스] 판매 대금 지급의 지연을 방지하고 정확한 금액이 세금으로 원천징수될 수 있도록 가능한 한 빨리 싱가포르 세금 정보를 제공해 주세요. (4) | 2024.01.28 |
마켓플러스로 카페24에 네이버 스마트스토어 상품을 쉽게 옮기기 (2) | 2024.01.21 |