n8n 기본 설정 및 환경 변수 구성하기
n8n을 셀프호스팅하기 위해서는 기본 설정을 제대로 구성하는 것이 중요합니다. 기본 설정을 통해 n8n의 기능을 최적화하고, 환경 변수를 통해 서버와의 연결 및 서비스 환경을 커스터마이즈할 수 있습니다. 이번 강에서는 n8n의 기본 설정과 환경 변수 구성을 단계별로 설명하겠습니다.
n8n 기본 설정
n8n은 기본적으로 웹 기반의 워크플로우 자동화 도구로서 다양한 설정을 통해 자신에게 맞는 환경을 구축할 수 있습니다. 기본적으로 제공되는 설정 파일을 통해 여러 가지 옵션을 설정할 수 있습니다. 여기에서는 n8n의 기본 설정과 관련된 주요 항목을 다룰 것입니다.
1. n8n 설정 파일 위치
n8n의 설정 파일은 기본적으로 시스템에 따라 다를 수 있지만, 대부분의 경우 ~/.n8n 디렉터리에 위치합니다. 이곳에서 설정 파일을 찾을 수 있으며, 환경 변수 및 각종 설정을 변경할 수 있습니다. 예를 들어, 기본적인 설정 파일은 config 파일입니다.
2. 웹 UI 기본 포트 설정
n8n은 기본적으로 5678 포트를 사용하여 웹 UI를 제공하며, 이 포트는 설정 파일에서 변경할 수 있습니다. 만약 다른 포트를 사용하고자 한다면, 환경 변수 N8N_PORT를 사용하여 포트를 변경할 수 있습니다.
예시: 웹 UI 포트 변경
export N8N_PORT=8080
위 명령어를 통해 n8n 웹 UI의 기본 포트를 8080으로 변경할 수 있습니다.
n8n 환경 변수 구성하기
n8n을 셀프호스팅할 때, 환경 변수를 사용하면 다양한 설정을 간편하게 변경할 수 있습니다. 예를 들어, 데이터베이스 연결, 보안 설정, 외부 API 연결 정보 등을 환경 변수로 설정할 수 있습니다. 환경 변수를 설정하면 코드 수정 없이 다양한 설정을 조정할 수 있기 때문에 관리가 용이합니다.
주요 환경 변수
다음은 n8n에서 자주 사용되는 주요 환경 변수들입니다:
1. 데이터베이스 설정
n8n은 다양한 데이터베이스와 연결할 수 있습니다. 기본적으로 SQLite를 사용하지만, PostgreSQL이나 MySQL과 연결할 수도 있습니다. 이를 위해서는 DB_TYPE, DB_POSTGRESDB_HOST, DB_MYSQL_HOST 등의 환경 변수를 설정해야 합니다.
예시: PostgreSQL 연결
export DB_TYPE=postgresdb
export DB_POSTGRESDB_HOST=localhost
export DB_POSTGRESDB_PORT=5432
export DB_POSTGRESDB_USER=n8n_user
export DB_POSTGRESDB_PASSWORD=your_password
위와 같이 PostgreSQL 데이터베이스에 연결하려면, 해당 환경 변수를 설정합니다. MySQL을 사용하는 경우, DB_MYSQL_HOST와 관련된 변수들을 설정할 수 있습니다.
2. Redis 설정
n8n은 Redis를 사용하여 큐 시스템을 관리하고, 작업을 백그라운드에서 처리할 수 있습니다. Redis를 사용하려면 REDIS_HOST, REDIS_PORT, REDIS_PASSWORD 등을 설정해야 합니다.
예시: Redis 연결
export REDIS_HOST=localhost
export REDIS_PORT=6379
export REDIS_PASSWORD=your_password
이렇게 Redis 서버와 연결하여 워크플로우의 성능을 최적화할 수 있습니다.
3. 인증 및 보안 설정
n8n은 기본적으로 인증을 지원하며, 보안을 강화하려면 인증 관련 환경 변수를 설정해야 합니다. 기본적으로는 ADMIN_API_SECRET을 사용하여 API 인증을 설정할 수 있습니다. 또한, n8n_basic_auth를 통해 기본 인증을 활성화할 수 있습니다.
예시: 기본 인증 활성화
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=your_password
위 환경 변수 설정으로 기본 인증을 활성화하고, 사용자를 "admin"으로 설정하며, 비밀번호는 "your_password"로 지정할 수 있습니다.
4. 파일 저장소 설정
n8n에서는 워크플로우에서 생성되는 파일을 저장하기 위한 FILE_STORAGE 환경 변수를 설정할 수 있습니다. 예를 들어, 파일을 클라우드 서비스나 다른 저장소에 저장하고자 할 경우 이 환경 변수를 활용할 수 있습니다.
예시: AWS S3에 파일 저장
export N8N_FILE_STORAGE=S3
export S3_ACCESS_KEY=your_access_key
export S3_SECRET_KEY=your_secret_key
export S3_BUCKET=your_bucket_name
export S3_REGION=your_region
이렇게 AWS S3와 연결하여 파일을 클라우드에 안전하게 저장할 수 있습니다.
환경 변수 적용하기
환경 변수를 설정한 후, n8n을 다시 시작해야 적용됩니다. 환경 변수를 한 번 설정한 후, 서버를 재시작하여 변경된 설정이 반영되도록 합니다. 예를 들어, Docker 환경에서 환경 변수를 설정하는 경우 다음과 같이 실행할 수 있습니다:
docker run -d --name n8n -p 5678:5678 \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_HOST=localhost \
-e DB_POSTGRESDB_PORT=5432 \
-e DB_POSTGRESDB_USER=n8n_user \
-e DB_POSTGRESDB_PASSWORD=your_password \
n8nio/n8n
이 명령어는 Docker에서 n8n을 실행하면서 환경 변수를 적용하는 예시입니다.
결론
n8n을 셀프호스팅하기 위해서는 기본 설정을 적절히 구성하는 것이 매우 중요합니다. n8n의 설정 파일과 환경 변수들을 활용하여 서버 환경에 맞게 최적화된 설정을 할 수 있습니다. 데이터베이스 연결, Redis 설정, 보안 인증 등을 환경 변수로 설정하면 n8n의 성능과 안정성을 높일 수 있습니다. 환경 변수를 설정한 후에는 서버를 재시작하여 변경 사항이 반영되도록 해야 하며, Docker와 같은 환경에서 실행할 때도 이를 쉽게 관리할 수 있습니다.