로컬 N8N 설치

By | 9월 15, 2025
로컬 N8N 설치

n8n 로컬 설치: PostgreSQL 데이터베이스 연동

n8n을 로컬 환경에 설치할 때, 기본 SQLite 대신 PostgreSQL을 데이터베이스로 활용하여 안정성과 확장성을 높일 수 있습니다. 이 가이드는 docker compose를 사용하여 n8n과 PostgreSQL 컨테이너를 함께 설정하는 방법을 설명합니다.


1. compose.yaml 파일 구성

compose.yaml 파일을 수정하여 n8n 서비스와 함께 PostgreSQL 서비스를 추가해야 합니다. 두 컨테이너가 원활하게 통신할 수 있도록 네트워크 설정을 포함해야 합니다. 아래는 예시 compose.yaml 파일입니다.

version: '3.8'

services:
  postgres:
    image: postgres:15
    restart: always
    container_name: n8n_postgres
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    volumes:
      - postgres_data:/var/lib/postgresql/data

  n8n:
    image: n8n.io/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - '5678:5678'
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${DB_NAME}
      - DB_POSTGRESDB_USER=${DB_USER}
      - DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=${N8N_USER}
      - N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres

volumes:
  postgres_data:
  n8n_data:
  • postgres 서비스 정의: PostgreSQL 컨테이너를 설정합니다.
    • image: postgres:15: PostgreSQL 15 버전 이미지를 사용합니다.
    • environment: 데이터베이스 사용자, 비밀번호, 데이터베이스 이름을 환경 변수로 지정합니다.
    • volumes: postgres_data 볼륨을 활용하여 데이터베이스의 데이터를 영구적으로 보관합니다.
  • n8n 서비스 수정: n8n이 PostgreSQL을 백엔드 데이터베이스로 사용하도록 환경 변수를 추가합니다.
    • DB_TYPE=postgresdb: 데이터베이스 유형을 PostgreSQL로 설정합니다.
    • DB_POSTGRESDB_HOST=postgres: Docker 내부 네트워크에서 PostgreSQL 컨테이너는 postgres라는 서비스 이름을 통해 접근 가능합니다.
    • DB_POSTGRESDB_USER, DB_POSTGRESDB_PASSWORD, DB_POSTGRESDB_DATABASE: postgres 서비스에서 설정한 것과 동일한 변수를 사용하여 연결 정보를 제공합니다.
    • depends_on: - postgres: n8n 컨테이너가 postgres 컨테이너가 먼저 시작된 후에 실행되도록 종속성을 명시합니다.

2. .env 파일에 변수 추가

민감한 데이터베이스 정보를 compose.yaml 파일과 같은 디렉터리에 있는 .env 파일에 저장하여 관리하는 것이 효율적입니다.

DB_USER=n8n_user
DB_PASSWORD=your_strong_db_password
DB_NAME=n8n_database

N8N_USER=your_n8n_username
N8N_PASSWORD=your_n8n_password

your_strong_db_passwordyour_n8n_password는 반드시 복잡하고 안전한 비밀번호로 교체해야 합니다.


3. 컨테이너 실행

프로젝트 폴더에서 터미널을 열고 다음 명령어를 입력하여 컨테이너들을 실행합니다.

docker compose up -d

이 명령어를 실행하면 PostgreSQL과 n8n 컨테이너가 순차적으로 생성되고 실행됩니다. 초기 설정에는 약간의 시간이 소요될 수 있습니다.


4. n8n 접속 및 확인

컨테이너가 정상적으로 실행되면 웹 브라우저를 열고 http://localhost:5678로 접속합니다. 이전에 .env 파일에 설정했던 n8n 사용자 이름과 비밀번호를 입력하면 워크플로우 편집기 화면으로 이동합니다. 이제부터 n8n의 모든 데이터는 로컬 PostgreSQL 데이터베이스에 저장됩니다.

만약 연결에 문제가 발생하면 docker logs n8n 명령어를 통해 n8n 컨테이너의 로그를 확인하여 문제 해결에 도움을 받을 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다