n8n 도커를 사용하여 워크플로 자동화 구축하기
안녕하세요. 달소입니다.
앞서 소개해드린 n8n을 Docker로 직접구축해봤습니다.
확실히 오픈소스는 규모가 크면 클수록 짱인것같은게... 부가적인 자료들이나 템플릿의 양이 규모가 다르네요..
Windmill도 괜찮다고생각했는데 적당한 자동화 규모에 자피어와 비슷하다고 보시면됩니다.
javascript만 지원해서 설치를 안하려고했는데 v1.0 부터는 beta로 Python도 지원해서 설치해봤는데 이거 물건이였습니다.
설치환경
Ubuntu 22.04 LTS
docker / docker-compose
n8n 컨테이너 생성하기
n8n을 사용하는 여러가지 방법이있지만 저는 찍먹으로 sqllite를 했습니다.
규모가 좀더 큰걸 원하신다면,, mysql이나 postgre db를 연결하시면됩니다.
데이터 보관을 위한 볼륨매핑은 권한을 777로 해야 잘되네요.
mkdir -p /data/n8n/.n8n
cd /data/n8n
vi docker-compose.yml
version: '3.7'
services:
n8n:
image: n8nio/n8n:latest
ports:
- 5678:5678
environment:
- N8N_QUEUE_TYPE=redis
- N8N_QUEUE_HOST=redis
- N8N_QUEUE_PORT=6379
- N8N_QUEUE_NAME=n8n
- GENERIC_TIMEZONE=Asia/Seoul
- TZ=Asia/Seoul
volumes:
- ./.n8n:/home/node/.n8n
networks:
- n8n
depends_on:
- redis
redis:
image: redis:latest
networks:
- n8n
networks:
n8n:
driver: bridge
생성완료되면 ip:5678 포트로 접속해주시면 됩니다.
관리자 계정부터 만들수있습니다.
만들고나면 워크플로우가 시작되는데 크게 어려운 부분은 없습니다.
먼저 트리거를 만들고 거기에 따라 워크플로우를 생성해주면 되는데요.
가장 이해하기쉬운 crontab으로 한시간에 한번씩 스케줄링한 트리거를 만들어보겠습니다.
Schedule Trigger를 Hours 1로주고 Execute node를 시키면 아래처럼 OUTPUT이 나오고 이 OUTPUT을 활용해서 데이터를 가공할 수 있습니다.
저같은경우 한시간 전것을 조회한다고했을때 아래처럼 셋팅해줬고
이렇게 만들어진 데이터를 가지고 여러가지 앱들과 혼용해서 쓸수도있습니다.
당장 생각나는건 mysql과 연계해서 시간,일별 통계도 만들수있을것같고
자동화 시킬수있는부분이 여럿보이네요