[개발이야기#088] 스팀잇 검색엔진 개발을 해보자 - 자동화 도구 n8n을 우분투에 설치해보자.
안녕하세요 가야태자 @talkit 입니다.
오늘은 검색엔진을 준비하면서 자동화 관련 이야기를 말씀 드렸는데 그중에서 n8n을 설치해보겠습니다.
우선 우분투 리눅스가 vm으로 준비되어 있고, docker 관련 패키지가 설치 되어 있다고 가정 하겠습니다.
사전작업요챡
- 리눅스 vm 또는 서버 준비
https://www.steemit.com/kr/@talkit/078-vmware-01
https://www.steemit.com/kr-dev/@talkit/081-sshd - docker 관련 리눅스 패키지 설치
[개발이야기#078] 스팀잇 검색엔진 개발을 해보자 - 리눅스에 Kafka 설치 01 — Steemit
[개발이야기#079] 스팀잇 검색엔진 개발을 해보자 - 리눅스에 Kafka 설치 02 - 도커를 설치해보자. — Steemit - mariadb가 설치 된 다른 vm 준비
[개발이야기#083] 스팀잇 검색엔진 개발을 해보자 - 서버 구성 1차 적으로 완료 — Steemit
사전 작업 중에 MariaDB 서버 설치가 살짝 부족한것 같아서 n8n 서버 설치 문서 끝나면 다시 설치 문서를 작성해보겠습니다.
이렇게 작성해두니까 다음에 활용하기에 너무 좋습니다. ^^
n8n 설치 하기
오늘도 docker로 설치하려고 합니다.
일단, 저는 vm을 하나 복사에서 또 새로운 vm을 만들었습니다.
이 부분도 다음에 글을 적어 보도록 하겠습니다.
제가 현재 만들어 놓은 VM이 세대인데
Kafka용 vm
엘라스틱 서치용 vm
마리아DB용 vm
요렇게 세대인데 마리아디비용은 조금 일을 하고 있어서 엘라스틱 서치를 끄고 복사를 진행 합니다.
MariaDB 계정/데이터베이스 새성 및 설정
MariaDB에 접속하셔서 다음 명령어를 내려 주시면 됩니다.
docker exec -it maridb01 mariadb -u root -p
제가 띄워둔 도커 이름이 mariadb01이어서 저렇게 실행하시면 됩니다.
계정 생성
CREATE USER 'talkit_n8n'@'%' IDENTIFIED BY '사용할_강력한_비밀번';
데이터베이스 생성
CREATE DATABASE talkit_n8n CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
권한 관련 설정
GRANT ALL PRIVILEGES ON talkit_n8n.* TO 'talkit_n8n'@'%';
변경사항 적용
FLUSH PRIVILEGES;
이제 마리아 디비에 대한 준비를 끝났습니다.
n8n 설치
docker-compose 파일 만들기
version: '3.7'
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
# 환경 변수: MariaDB 연결 정보
environment:
- DB_TYPE=mysql
- DB_MYSQL_HOST=서버주소
- DB_MYSQL_PORT=3306(포트)
- DB_MYSQL_DATABASE=talkit_n8n(데이터베이스)
- DB_MYSQL_USER=talkit_n8n(아이디)
- DB_MYSQL_PASSWORD='사용할_강력한_비밀번호' # 🚨 실제 비밀번호로 변경하세요!
- N8N_SECURE_COOKIE=false
# 볼륨 마운트:
# 호스트의 ./data 폴더를 컨테이너의 /home/node/.n8n 데이터 디렉터리에 연결합니다.
volumes:
- ./data:/home/node/.n8n
# 컨테이너 실행 사용자를 호스트에서 권한을 부여한 1000:1000으로 지정합니다.
user: "1000:1000"
저는 위와 같이 만들었고 MySQL의 서버 주소라든지 포트 데이터베이스 아이디 패스워드는 원하시는 대로 만드시면 됩니다.
docker 생성 및 실행
docker compose -d
요렇게하면 n8n을 다운로드 해와서 생성해줍니다.
docker ps
위 멸영어로 확인 해보겠습니다.
talkit@talkit03:~/n8n$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f5f6d212f57 n8nio/n8n "tini -- /docker-ent…" 4 minutes ago Up 4 minutes 0.0.0.0:5678->5678/tcp, [::]:5678->5678/tcp n8n
제가 원하는대로 잘 설치 되었습니다.
외부에서 접속을 해보았습니다.
처음 접속하니 위와 같은 오류가 납니다.
ㅠ.ㅠ
위 오류가 해결 되도록 일단 compose 파일을 수정해 둔 상태 입니다.
임시 방법이어서 보안 관련된 내용은 추후에 다시 적도록 하겠습니다.
n8n을 사용해보고 싶어서 일단 넘어 가겠습니다.
저희 집에서만 접속할 계획이어서요 ^^
그럼 위와 같이 화면이 뜹니다.
이메일
이름
성
비밀번호
체크한번까지
잘 넣으시고
Next를 누르겠습니다.
다음 그림에서 첫번째 질문의 답변을 위와 같이 진행하면 ^^
밑에 질문을 다 뺄 수 있습니다.
현재는 일단 공부용으로 상용할꺼라서 ^^
n8n을 내부적으로 사용하고, n8n 자체를 서비스화 할 생각이 없으니 무료라네요 ^^
얘는 스킵을 해야할지도 모르겠지만, ^^ 우선 저는 라이센스를 받아 보겠습니다.
free라니까요 ^^
일단 라이센스가 활성화 되었습니다.
오늘은 여기까지하고 다음에는 간단한 작업을 자동화 해보도록 하겠습니다.
감사합니다.
관련글
[개발이야기#087] 스팀잇 검색엔진 개발을 해보자 - 데이터 수집 자동화 툴 n8n vs Apache airflow — Steemit
[개발이야기#086] 스팀잇 검색엔진 개발을 해보자 - 스팀 데이터 수집기와 자동화 관련해서 n8n
https://steemit.com/ecblog/@talkit/086-n8n
[개발이야기#085] 스팀잇 검색엔진 개발을 해보자 - 스팀 데이터 수집기 2차 수정 및 테스트
https://steemit.com/kr/@talkit/085-2
[개발이야기#084] 스팀잇 검색엔진 개발을 해보자 - 스팀 데이터 수집기 1차 개발 및 테스트
https://steemit.com/kr/@talkit/084-1
Posted through the ECblog app (https://blog.etain.club)
화이팅입니다~~
응원 감사합니다.
조금씩 개발해서 보여 드리겠습니다. ^^
[booming-kr-auto]
@booming-kr이 보팅드렸습니다 🙌
(보팅받는 기준: 50% 이상 또는 65,000 Mrshares 이상으로 보팅)
저도 응원합니다.
응원해 주셔서 감사합니다.
좋은 제품 한번 만들어 보겠습니다.
[booming-kr-auto]
@booming-kr이 보팅드렸습니다 🙌
(보팅받는 기준: 50% 이상 또는 65,000 Mrshares 이상으로 보팅)
개발중이신 검색엔진이
스팀잇 자체 플랫폼의 검색탭에 적용되면 좋겠네요ㅠㅠ
증인들이 투표로 승인해줘야 하는거겠죠??
스팀잇 자체 검색이 너무 구려욤ㅎㅎ
넵 일단, 수집기, 데이터 임시 저장소, 검색엔진 까지는 구축을 했습니다.
이제부터는 자동화하고, UI를 어떻게 만들지를 고민하고 있습니다.
관심 가져 주셔서 감사합니다.
[booming-kr-auto]
@booming-kr이 보팅드렸습니다 🙌
(보팅받는 기준: 50% 이상 또는 65,000 Mrshares 이상으로 보팅)
와... 계속 뭔가 진전되는 느낌이 드네요~!
그런데, 궁금한게 있습니다~
이번 개발을 따라하려면 우분투를 VM으로 하나 설치하고,
VM으로 설치한 우분투 위에 db서버, n8n서버, 검색서버, kafka서버 들을 모두 docker로 설치하면 될까요? ^^
저는 vm 네대로 진행을 했습니다만,
서버 성능이 좋으면 말씀 하신대로도 가능 합니다.
현재는 kafka 없이 작업하고 있어서
MariaDB
elasticsearch
n8n
한서버에서 docker로 구동 가능 합니다.
감사합니다.
답변감사합니다~!
그러면 가야태자님은 노트북 등 pc 4대(?)를 이용하시는 건가보죠? ^^;
아닙니다.
가상 머신이 네대 입니다.
제 컴퓨터가 좀 괜찮은 아이라서
멀티쓰레이드이긴 하지만, 물리10코어(가상 20코어)를 지원하고,
메모리는 128GB를 풀로 채워놔서 ^^
16GB짜리 세대 8기가 짜리 한대 만들어서 쓰고, 8GB 짜리는 현재 꺼둔 상태 입니다.
16GB 짜리 세대가 돌아가고 있습니다.
아하~ (1)번에 제가 말씀드린것이고, 가야태자님 사용하시는 것이 (2) 인가요? 제대로 이해했는지요? (kafka제외시)
(1) PC1대 -> VM1 -> 우분투 -> 도커 3개 이용(각각의 도커에 DB, n8n, 검색엔진)
(2) PC1대 -> VM1 -> 우분투 -> 도커1개(DB)
-> VM2 -> 우분투 -> 도커1개(n8n)
-> VM3 -> 우분투 -> 도커 1개(검색엔진)
정말.... (1)번처럼 하려면 VM1에 설치된 우분투의 성능이 무척 좋아야할 것 같네요. ^^
넵 제가 상용하고 있는 방법이 2번 입니다.
제대로 이해하신게 맞습니다. ^^
[booming-kr-auto]
@booming-kr이 보팅드렸습니다 🙌
(보팅받는 기준: 50% 이상 또는 65,000 Mrshares 이상으로 보팅)
Upvoted! Thank you for supporting witness @jswit.