1 min read

n8n Docker-Compose 기반 Self-Hosting 구축

n8n  Docker-Compose 기반 Self-Hosting 구축
Photo by Rubaitul Azad / Unsplash

Docker-compose.yml

services:
    n8n-main:
        image: n8nio/n8n
        environment:
            - DB_TYPE=postgresdb
            - DB_POSTGRESDB_HOST=postgres
            - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
            - DB_POSTGRESDB_USER=${POSTGRES_USER}
            - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
            - QUEUE_BULL_REDIS_HOST=redis
            - N8N_MODE=main
            - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
            - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
        ports:
            - "${N8N_PORT}:5678"
        volumes:
            - ${N8N_DATA_PATH}/n8n:/home/node/.n8n
        depends_on:
            - postgres
            - redis
        user: "${USER_ID}:${GROUP_ID}"

    n8n-worker:
        image: n8nio/n8n
        environment:
            - DB_TYPE=postgresdb
            - DB_POSTGRESDB_HOST=postgres
            - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
            - DB_POSTGRESDB_USER=${POSTGRES_USER}
            - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
            - QUEUE_BULL_REDIS_HOST=redis
            - N8N_MODE=worker
            - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
            - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
        volumes:
            - ${N8N_DATA_PATH}/n8n:/home/node/.n8n
        depends_on:
            - postgres
            - redis
        user: "${USER_ID}:${GROUP_ID}"

    postgres:
        image: postgres:latest
        environment:
            - POSTGRES_USER=${POSTGRES_USER}

env 파일

# PostgreSQL 설정
POSTGRES_USER=user
POSTGRES_PASSWORD=pw
POSTGRES_DB=user

# n8n 설정
N8N_ENCRYPTION_KEY= strong_key_key_key
N8N_PORT=port

# 데이터 경로
N8N_DATA_PATH=/data/

# 사용자 권한 (현재 사용자의 UID:GID)
USER_ID=uid
GROUP_ID=gid