n8n Self-Hosting 부터 Gemini AI와 함께하는 슬랙 봇 제작기! - (1)
유튜브에서 업무 자동화란 주제로 시작한 영상을 보면 make와 n8n이 자주 보입니다. 도대체 이게 얼마나 좋길래 영상으로도 만들어지는 걸까? 라는 궁금증이 일어 해봤습니다. 참고로 n8n은 해외에서 엔에잇엔이라고 발음하는데 최근에 네이튼으로 표현하고 있다고 합니다. 해외 유튜브를 좀 더 들어보고 저도 어떤 말이 맞는지 찾아보겠습니다.
시리즈: 나도 궁금해서 해봄!
집에 굴러다니는 컴퓨터에 n8n 깔아보고 Gemini AI를 이용해 슬랙으로 메시지를 보내보자. (1)
시리즈
- 현재 > 1편, n8n에 대해 알아보고 셀프 호스팅을 위한 설치를 진행한다.
- 2편, n8n을 통해 Gemini AI에서 생성된 문구를 슬랙에 전달한다.
1편, n8n에 대해 알아보고 셀프 호스팅을 위한 설치를 진행한다.
n8n, 너 대체 뭐니?
혹시 n8n에 대해 들어보셨나요? n8n은 No-Code 또는 Low-Code 방식으로 다양한 서비스를 연결하고 자동화된 워크플로우를 구축할 수 있게 도와주는 툴입니다. 마치 레고 블록처럼 다양한 노드들을 연결하여 원하는 기능을 만들 수 있죠. 예를 들어, "트위터에 새로운 글이 올라오면 자동으로 슬랙 채널에 공유"하는 워크플로우를 간단하게 만들 수 있습니다.
다양한 활용 분야
- IT Ops: 새로운 팀원을 위한 계정을 자동으로 생성하고 권한을 부여하여 관리 업무를 효율화합니다.
- SecOps: 보안 관련 이벤트를 감지하고 자동으로 대응하여 시스템을 안전하게 유지합니다.
- DevOps: 코드 배포, 테스트, 빌드 등의 과정을 자동화하여 개발 생산성을 높입니다.
- Sales: 고객 정보를 자동으로 관리하고, 영업 프로세스를 자동화하여 매출 증대에 기여합니다.
Cloud or Self-Hosting 어떤걸 선택해야 할까?
n8n을 사용하기 전에 가장 먼저 결정해야 할 것은 클라우드 버전을 사용할지, 아니면 Self-Hosting을 할지입니다. 각각 장단점이 있기 때문에, 자신의 상황에 맞는 선택을 하는 것이 중요합니다. 만약 IT Ops 팀이 없는 회사라면 클라우드 버전을 사용하는 것이 좋습니다. Self-Hosting은 서버 관리 및 기술적인 문제 해결에 대한 부담이 크기 때문에, IT 전문가의 도움이 필요합니다. 하지만 클라우드 버전을 사용하면 이러한 부담 없이 n8n을 간편하게 사용할 수 있습니다.
여기서는 Self-Hosting을 안내하고 있는데요. 이러한 관리를 스스로 할 수 있는 분들에게 권장합니다. 경험은 있는데 혹시라도 하드웨어의 고장을 경험하지 못하셨던 분들은 저의 안타까웠던 상황을 공유하니 꼭 참고해주세요.
2024.11.22 - [머리속 놀이터] - NAS 사용의 결말
NAS 사용의 결말
오늘은 지난번 어쩌다 생각난다던 시리즈 중 NAS의 결말에 대해 이야기하겠다. 나는 LG NAS를 사용 중이었는데 십년이 넘게 사용 중이었다. NAS는 말그대로 서버다보니 절대 꺼지지 않는 걸 전제로
print-colin.tistory.com
⚙️ Self-Hosting 준비물 ⚙️
- 서버: n8n을 설치할 서버가 필요합니다. (VPS, 클라우드 서버, 개인 서버 등)
- n8n: n8n을 서버에 설치합니다. (Docker를 사용하면 편리하지만 제가 보유한 서버는 사양이 낮아 그냥 설치 할 예정입니다.)
- Gemini API Key: Gemini API를 사용하기 위한 키가 필요합니다.
- Slack App: 슬랙 봇을 만들기 위한 앱을 생성하고 필요한 권한을 설정합니다.
혹여나 어떤 서버가 필요하냐! 라고 생각하시는 분들을 위해서 N100을 추천합니다. 작은 미니 피씨로 저전력이면서 하드웨어 사양도 적당하여 n8n 정도를 구동하는데에는 어려움이 없을 것입니다. 물론 이건 가정용입니다.
n8n 설치 가이드: Ubuntu 환경에서 nvm을 이용한 방법
이 가이드에서는 Ubuntu 환경에서 nvm (Node Version Manager)을 사용하여 n8n을 설치하는 방법을 자세히 설명합니다. 도커를 이용한 설치는 여기서 안내하지 않으며, 갑자기 우분투가 나왔는데 서버 설치에 대해 제가 작성한 포스팅이 없어서 링크로 대체하겠습니다. 꼭 설치 전에 한번 보신 뒤에 설치를 수행하셔야 여러번 설치를 안하십니다.
우분투 서버 설치 : https://gam1532.tistory.com/46
1단계: NVM 설치
nvm은 Node.js 버전을 쉽게 관리할 수 있도록 도와주는 도구입니다. n8n 설치를 위해 nvm을 먼저 설치해줍니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
설치가 완료되면 터미널을 다시 시작하거나 다음 명령어를 실행하여 nvm을 활성화합니다.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
스크린샷의 내용처럼 'nvm --version'을 입력하면 문제없이 실행됨을 확인 할 수 있습니다.
2단계: Node.js 및 npm 설치
nvm을 사용하여 n8n에 필요한 Node.js 버전을 설치합니다. n8n은 특정 버전의 Node.js를 요구할 수 있으므로, n8n 공식 문서에서 권장하는 버전을 확인하는 것이 좋습니다. 이 가이드에서는 Node.js LTS (Long Term Support) 버전을 설치합니다.
nvm install --lts
Node.js가 설치되면 npm (Node Package Manager)도 함께 설치됩니다. npm은 n8n 및 관련 패키지를 설치하고 관리하는 데 사용됩니다.
3단계: n8n 설치 및 실행
npm을 사용하여 n8n을 전역으로 설치합니다.
npm install -g n8n
n8n start
n8n이 성공적으로 실행되면 웹 브라우저를 통해 n8n 인터페이스에 접속할 수 있습니다. 기본적으로 http://localhost:5678 주소로 접속할 수 있습니다.
IP로 접속시 보안 오류가 발생 (TLS/HTTPS)
고민하지 말고 n8n의 보안 설정이 있는데 false로 설정해둡니다. 어차피 가정용으로 혼자 쓰는 용도기 때문에 큰 거리낌 없이 설정을 해제 하지만 다른 사람들과 함께 사용을 고려하고 있다면 보안에 관련된 사항을 적용해야 합니다.
export N8N_COOKIE_SECURE=false
export N8N_SECURE_COOKIE=false
.bashrc 파일에 시스템 환경 변수로 값을 설정해둡니다.
이 문제 해결을 위해서 역시 다른 블로그 링크를 첨부해둡니다. 참고 바랍니다.
Ubuntu 웹서버에 무료 HTTPS 적용해 보기
HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신, 80포트 대신 443포트를 이용하여 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화합니다. 따라서 데이터의 적절한 보호를 보장합니다. HTTP(8
dulidungsil.tistory.com
4단계: pm2를 이용해 n8n 백그라운드에서 실행
n8n start를 하면 터미널을 종료하면 n8n도 함께 종료되니 PM2를 이용해 n8n을 백그라운드에서 실행합니다.
npm install -g pm2
pm2 start n8n
n8n 설치 완료!
모든 설정이 마무리 되면 관리자 계정을 추가하는 화면을 볼 수 있습니다. 관리자 계정으로 로그인 후 메일로 커뮤니티버전 키를 받아 등록하시면 됩니다.
2부로 넘어가 업무 자동화를 이어가도록 하겠습니다.