• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
가이드

n8n+postgres+redis docker-compose 예제

달소 달소 213

0

5

 

안녕하세요. 달소입니다.

 

앞서 n8n 의 간단한 도커 설치방법을 공유해드렸는데요.

해당 설치방법의 경우 sqlite의 db를 파일로 저장하기때문에 조금 더 성능적인 이점을 원하신다면 이 버전으로 설치하시면 되겠습니다.

 

설치환경

Ubuntu 22.04

docker / docker-compose

 

mkdir -p /data/n8n

cd /data/n8n

볼륨은 도커볼륨을 사용합니다.

 

.env 설정하기

env파일에는 DB정보를 적어주시면됩니다.

vi .env

 

POSTGRES_USER=changeUser 
POSTGRES_PASSWORD=changePassword
POSTGRES_DB=n8n

POSTGRES_NON_ROOT_USER=changeUser
POSTGRES_NON_ROOT_PASSWORD=changePassword

 

그리고 postgres 최초 생성시 참조할 쉘스크립트 파일도 만듭니다.

 

vi init-data.sh

 

#!/bin/bash
set -e;

if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER ${POSTGRES_NON_ROOT_USER} WITH PASSWORD '${POSTGRES_NON_ROOT_PASSWORD}';
GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_NON_ROOT_USER};
EOSQL
else
echo "SETUP INFO: No Environment variables given!"
fi

 

이제 docker-compose.yml 입니다.

 

version: '3.8'

volumes:
  db_storage:
  n8n_storage:
  redis_storage:

x-shared: &shared
  restart: always
  image: docker.n8n.io/n8nio/n8n
  environment:
    - DB_TYPE=postgresdb
    - DB_POSTGRESDB_HOST=postgres
    - DB_POSTGRESDB_PORT=5432
    - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
    - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
    - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
    - EXECUTIONS_MODE=queue
    - QUEUE_BULL_REDIS_HOST=redis
    - QUEUE_HEALTH_CHECK_ACTIVE=true
  links:
    - postgres
    - redis
  volumes:
    - n8n_storage:/home/node/.n8n
  depends_on:
    redis:
      condition: service_healthy
    postgres:
      condition: service_healthy

services:
  postgres:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_NON_ROOT_USER
      - POSTGRES_NON_ROOT_PASSWORD
      - N8N_HOST=192.168.1.18
      - NODE_FUNCTION_ALLOW_BUILTIN=*
      - NODE_FUNCTION_ALLOW_EXTERNAL=moment,lodash
      - GENERIC_TIMEZONE=Asia/Seoul
    volumes:
      - db_storage:/var/lib/postgresql/data
      - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
      interval: 5s
      timeout: 5s
      retries: 10

  redis:
    image: redis:7-alpine
    restart: always
    volumes:
      - redis_storage:/data
    healthcheck:
      test: ['CMD', 'redis-cli', 'ping']
      interval: 5s
      timeout: 5s
      retries: 10

  n8n:
    <<: *shared
    ports:
      - 5678:5678

  n8n-worker:
    <<: *shared
    command: worker
    depends_on:
      - n8n

 

최종적으로는 아래와같은 파일들이 위치해있으면 됩니다.

 

 

image.png.jpg

 

그리고 docker-compose up -d

 

image.png.jpg

 

image.png.jpg

 

컨테이너가 모두 올라오면 ip:5678 포트로 접속해주시면됩니다.

 

image.png.jpg

 

 

더 많은 환경변수들은 아래 링크를 참고해주세요.

 

 

신고공유스크랩
5
1등
똥쓰똥쓰 2023.12.03. 10:22
안녕하세요? 설치는 됐는데 컨테이너가 시작되질 않습니다. 로그를 보니

EACCES: permission denied, open '/home/node/.n8n/config' 라고 나오는데 권한 문제가 있는듯 합니다,

깃헙보니 데비안 계열에 권한 문제가 있다는데 해결 방법 없을까요?

https://github.com/n8n-io/n8n/issues/1240
똥쓰똥쓰 2023.12.06. 09:58
달소
아~~ 보니 요건 제가 볼륨을 도커 볼륨이 아닌 로컬 볼륨하고 바인딩해서 그런것 같고,
로컬 볼륨쪽에 chown -R 1000:1000 /volume1/docker/n8n 권한 주니 해결됐습니다....

그런데요... 요건 넘어가긴 했는데 postgre db와 통신하고 초기 사용자 등록 및 db 설정하는 곳에서 또 permission 문제가 나오네용 TT 산넘어 산이네요...

초기 접속 후 please wait 만 나오고 안넘어가서 로그 보니 이번엔 db 쪽 권한 문제입니다....
n8n 커뮤니티 보니 관련 이슈가 있긴한데 명확한 답이 없어 찾아보고 있습니다....

혹 시놀로지에서 위 yaml 성공하신분 계시나요????
profile image
달소 글쓴이 2023.12.06. 22:58
똥쓰똥쓰
헉,, 고생하시다가 가이드 글까지 써주셨군요... 감사합니다 :)

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
잡담 메인서버 정리용 선반구매 + 정리 5 kmw_ 3일 전18:54 351 +2
잡담 하필 왜 밖에있을때 죽는지.. 6 kmw_ 4일 전10:47 325 +1
후기 PBS 이전완료..! 2 kmw_ 6일 전21:50 391 +1
141 가이드
image
klayf 24.05.12.14:16 330 +14
140 가이드
image
opq! 24.04.02.21:25 541 +9
139 가이드
image
keiminem 24.05.24.09:01 1017 +8
138 가이드
image
달소 23.07.04.20:38 2000 +7
137 가이드
image
짹짹이 24.02.11.14:56 682 +6
136 가이드
image
미오뜨 23.10.16.15:05 1165 +6
135 가이드
image
달소 23.11.07.00:00 1776 +6
134 가이드
image
ExpBox 23.04.23.02:29 1263 +6
133 가이드
image
달소 23.09.09.22:30 930 +5
132 가이드
image
화정큐삼 23.08.08.09:33 1126 +5
131 가이드
image
akrsoTale 23.10.15.15:52 469 +5
130 가이드
image
달소 23.07.15.16:34 1588 +5
129 가이드
image
keiminem 23.12.24.21:55 671 +5
128 가이드
image
달소 23.09.27.14:22 1540 +5
127 가이드
image
달소 23.06.20.00:13 843 +4
126 가이드
image
화정큐삼 23.08.07.12:40 1221 +4
125 가이드
image
달소 23.05.29.22:04 497 +4
124 가이드
image
keiminem 23.11.21.15:54 519 +4
123 가이드
image
달소 23.04.01.02:40 1907 +4
122 가이드
image
달소 23.09.17.15:55 994 +4