n8n CLI 명령어
Server CLI는 n8n 설치와 같은 머신에서 실행되는 내장 명령줄 인터페이스입니다. 원격 머신에서 프로그래밍 방식으로 n8n과 상호작용하거나 AI 에이전트와 통합하고 싶으신가요? 셀프 호스팅 n8n에서 CLI 명령어를 사용할 수 있습니다.
Server CLI는 n8n 설치와 같은 머신에서 실행되는 내장 명령줄 인터페이스입니다. 관리 작업을 위해 데이터베이스에 직접 접근할 수 있으며 n8n이 실행 중이지 않아도 대부분의 명령어를 실행할 수 있습니다.
원격 머신에서 프로그래밍 방식으로 n8n과 상호작용하거나 AI 에이전트와 통합하고 싶으신가요? n8n CLI를 확인하세요.
Server CLI와 n8n CLI 비교#
| 기능 | Server CLI | n8n CLI |
|---|---|---|
| 실행 위치 | n8n과 같은 머신 | 네트워크 접근이 있는 모든 머신 |
| 인증 | 데이터베이스 직접 접근 | API 키 |
| n8n 실행 필요 여부 | 아니요(대부분의 명령어) | 예 |
| 적합한 용도 | 인스턴스 운영자, 백업, 마이그레이션 | 프로그래머, AI 에이전트, 원격 관리 |
| 보안 모델 | 접근 제어 우회 | 사용자 권한 및 API 키 범위 준수 |
| 사용 예시 | 백업/복원, 라이선스 관리, 비상 비밀번호 재설정 | 워크플로 자동화, 코드를 통한 자격 증명 관리 |
CLI 명령어 실행하기#
셀프 호스팅 n8n에서 CLI 명령어를 사용할 수 있습니다. n8n 설치 방법에 따라 명령어 실행 방식에 차이가 있습니다:
-
npm:
n8n명령어를 직접 사용할 수 있습니다. 아래 예시에서는 이 방법을 사용합니다. -
Docker:
n8n명령어는 Docker 컨테이너 내에서 사용할 수 있습니다:docker exec -u node -it <n8n-container-name> <n8n-cli-command>
워크플로 시작하기#
CLI를 사용하여 워크플로를 직접 시작할 수 있습니다.
ID로 저장된 워크플로 실행하기:
n8n execute --id
워크플로 게시 또는 게시 취소#
CLI를 사용하여 워크플로를 게시하거나 게시 취소할 수 있습니다. n8n 2.0에서 이전의 활성/비활성 토글이 게시/게시 취소 모델로 교체되었습니다. publish:workflow와 unpublish:workflow를 사용하여 CLI에서 워크플로의 게시 상태를 변경합니다.
이 명령어들은 n8n 데이터베이스에 작동합니다. n8n이 실행 중일 때 명령어를 실행하면, n8n을 재시작하기 전까지 변경 사항이 적용되지 않습니다.
워크플로 게시#
publish:workflow를 사용하여 ID로 워크플로를 게시합니다. 선택적으로 versionId를 전달하여 특정 이전 버전을 게시할 수 있습니다.
명령어 플래그:
| 플래그 | 설명 |
|---|---|
| --help | 도움말 프롬프트. |
| --id | 게시할 워크플로의 ID. 필수. |
| --versionId | 게시할 선택적 버전 ID. 생략하면 현재 초안이 게시됩니다. |
더 이상 사용되지 않는 update:workflow 명령어와 달리 publish:workflow는 --all을 지원하지 않습니다. 이는 프로덕션 환경에서 워크플로를 대량으로 실수로 게시하는 것을 방지하기 위한 의도적인 설계입니다. ID로 워크플로를 개별적으로 게시하세요.
ID로 워크플로의 현재 초안 게시:
n8n publish:workflow --id=
워크플로의 특정 이전 버전 게시:
n8n publish:workflow --id= --versionId=
워크플로 게시 취소#
unpublish:workflow를 사용하여 ID로 워크플로를 게시 취소하거나 모든 워크플로를 한 번에 게시 취소합니다.
명령어 플래그:
| 플래그 | 설명 |
|---|---|
| --help | 도움말 프롬프트. |
| --id | 게시 취소할 워크플로의 ID. --all과 함께 사용 불가. |
| --all | 모든 워크플로 게시 취소. --id와 함께 사용 불가. |
ID로 워크플로 게시 취소:
n8n unpublish:workflow --id=
모든 워크플로 게시 취소:
n8n unpublish:workflow --all
update:workflow (더 이상 사용되지 않음)#
update:workflow 명령어는 더 이상 사용되지 않으며 제거될 예정입니다. 대신 publish:workflow와 unpublish:workflow를 사용하세요. 자세한 내용은 n8n v2.0 주요 변경 사항을 참조하세요.
ID로 워크플로의 활성 상태를 false로 설정:
n8n update:workflow --id= --active=false
ID로 워크플로의 활성 상태를 true로 설정:
n8n update:workflow --id= --active=true
모든 워크플로의 활성 상태를 false로 설정:
n8n update:workflow --all --active=false
모든 워크플로의 활성 상태를 true로 설정:
n8n update:workflow --all --active=true
엔티티 내보내기#
CLI를 사용하여 n8n에서 데이터베이스 엔티티를 내보낼 수 있습니다. 이 도구를 사용하면 SQLite와 같은 한 데이터베이스 유형에서 모든 엔티티 유형을 내보내고, Postgres와 같은 다른 데이터베이스 유형으로 가져올 수 있습니다.
명령어 플래그:
| 플래그 | 설명 |
|---|---|
| --help | 도움말 프롬프트 |
| --outputDir | 출력 디렉터리 경로 |
| --includeExecutionHistoryDataTables | 실행 히스토리 데이터 테이블 포함, 기본적으로 제외됨(매우 큰 용량일 수 있음) |
n8n export:entities --outputDir=./outputs --includeExecutionHistoryDataTables=true
워크플로 및 자격 증명 내보내기#
CLI를 사용하여 n8n에서 워크플로와 자격 증명을 내보낼 수 있습니다.
명령어 플래그:
| 플래그 | 설명 |
|---|---|
| --help | 도움말 프롬프트 |
| --all | 모든 워크플로/자격 증명 내보내기 |
| --backup | 백업을 위해 --all --pretty --separate 설정. 선택적으로 --output 설정 가능 |
| --id | 내보낼 워크플로의 ID |
| --output, -o | 출력 파일 이름 또는 별도 파일 사용 시 디렉터리 |
| --pretty | 출력을 읽기 쉬운 형식으로 포맷 |
| --separate | 워크플로당 하나의 파일로 내보내기(버전 관리에 유용). --output으로 디렉터리 지정 필수 |
| --decrypted | 자격 증명을 평문 형식으로 내보내기. (자격 증명 전용.) |
| --version | 내보낼 특정 이전 버전의 버전 ID. (워크플로 전용, --all 또는 --published와 함께 사용 불가.) |
| --published | 현재 초안 대신 워크플로의 게시/활성 버전을 내보냅니다. --all과 함께 사용하면 게시되지 않은 워크플로는 건너뜁니다. (워크플로 전용, --version과 함께 사용 불가.) |
워크플로#
모든 워크플로를 표준 출력(터미널)으로 내보내기:
n8n export:workflow --all
ID로 워크플로를 내보내고 출력 파일 이름 지정:
n8n export:workflow --id= --output=file.json
모든 워크플로를 특정 디렉터리의 단일 파일로 내보내기:
n8n export:workflow --all --output=backups/latest/file.json
--backup 플래그를 사용하여 모든 워크플로를 특정 디렉터리로 내보내기(자세한 내용은 위 참조):
n8n export:workflow --backup --output=backups/latest/
특정 워크플로 버전 내보내기#
--version으로 versionId를 전달하여 워크플로의 특정 이전 버전을 내보낼 수 있습니다:
n8n export:workflow --id= --version= --output=workflow-v1.json
워크플로의 게시된 버전 내보내기#
--published를 사용하여 현재 초안 대신 워크플로의 현재 게시/활성 버전을 내보냅니다:
n8n export:workflow --id= --published --output=published.json
--published와 --all을 결합하여 모든 워크플로의 게시된 버전을 내보낼 수 있습니다. 게시된 버전이 없는 워크플로는 건너뜁니다:
n8n export:workflow --all --published --output=workflows.json
워크플로를 내보낼 때 n8n은 해당 버전의 이전 이름 및 설명을 포함하는 versionMetadata 속성을 포함합니다. 가져오기 명령어는 이 데이터를 가져올 때 워크플로 히스토리 테이블에 보존합니다. 현재 워크플로의 이름과 설명은 덮어쓰지 않습니다.
자격 증명#
모든 자격 증명을 표준 출력(터미널)으로 내보내기:
n8n export:credentials --all
ID로 자격 증명을 내보내고 출력 파일 이름 지정:
n8n export:credentials --id= --output=file.json
모든 자격 증명을 특정 디렉터리의 단일 파일로 내보내기:
n8n export:credentials --all --output=backups/latest/file.json
--backup 플래그를 사용하여 모든 자격 증명을 특정 디렉터리로 내보내기(자세한 내용은 위 참조):
n8n export:credentials --backup --output=backups/latest/
모든 자격 증명을 평문 형식으로 내보내기. 구성 파일의 비밀 키가 다른 다른 설치로 마이그레이션할 때 사용할 수 있습니다.
모든 민감한 정보가 파일에 표시됩니다.
n8n export:credentials --all --decrypted --output=backups/decrypted.json
엔티티 가져오기#
이전 export:entities 명령어에서 엔티티를 가져올 수 있으며, 내보낸 데이터베이스 유형과 다른 데이터베이스 유형으로 엔티티를 가져올 수 있습니다. 현재 지원되는 데이터베이스 유형: SQLite, Postgres.
가져오기 전에 데이터베이스가 비어 있어야 하며, --truncateTables 매개변수로 강제할 수 있습니다.
명령어 플래그:
| 플래그 | 설명 |
|---|---|
| --help | 도움말 프롬프트 |
| --inputDir | 가져올 출력 파일을 보관하는 입력 디렉터리 |
| --truncateTables | 가져오기 전 테이블 비우기 |
n8n import:entities --inputDir ./outputs --truncateTables true
워크플로 및 자격 증명 가져오기#
CLI를 사용하여 n8n에서 워크플로와 자격 증명을 가져올 수 있습니다.
워크플로와 자격 증명을 내보낼 때, n8n은 해당 ID도 함께 내보냅니다. 기존 데이터베이스에 동일한 ID를 가진 워크플로와 자격 증명이 있으면 덮어쓰게 됩니다. 이를 방지하려면 가져오기 전에 ID를 삭제하거나 변경하세요.
사용 가능한 플래그:
| 플래그 | 설명 |
|---|---|
| --help | 도움말 프롬프트 |
| --input | 입력 파일 이름 또는 --separate 사용 시 디렉터리 |
| --projectId | 워크플로 또는 자격 증명을 지정된 프로젝트로 가져오기. --userId와 함께 사용 불가 |
| --separate | --input으로 제공된 디렉터리에서 *.json 파일 가져오기 |
| --userId | 워크플로 또는 자격 증명을 지정된 사용자로 가져오기. --projectId와 함께 사용 불가 |
| --skipMigrationChecks | 마이그레이션 검증 확인 건너뛰기. |
| --activeState | 가져온 워크플로의 활성 상태를 제어합니다. false(기본값, 가져온 모든 워크플로를 비활성화) 또는 fromJson(각 워크플로 JSON의 active 필드 사용; 멀티 메인 모드 전용)을 허용합니다. |
n8n은 워크플로 및 자격 증명 이름을 128자로 제한하지만, SQLite는 크기 제한을 강제하지 않습니다.
이로 인해 가져오기 프로세스 중 Data too long for column name과 같은 오류가 발생할 수 있습니다.
이 경우 n8n 인터페이스에서 이름을 편집하고 다시 내보내거나, 가져오기 전에 JSON 파일을 직접 편집할 수 있습니다.
워크플로#
이전에 활성화된 워크플로를 가져올 때의 동작은 실행 모드에 따라 다릅니다. 이것은 알려진 버그입니다.
멀티 메인 및 큐 모드 인스턴스에서는 이전에 활성화된 워크플로의 크론 트리거가 가져올 때 비활성화됩니다.
멀티 메인이 아닌 인스턴스에서는 이전에 활성화된 워크플로의 크론 트리거가 n8n 인스턴스를 재시작할 때까지 계속 실행됩니다.
특정 파일에서 워크플로 가져오기:
n8n import:workflow --input=file.json
지정된 디렉터리에서 모든 워크플로 JSON 파일 가져오기:
n8n import:workflow --separate --input=backups/latest/
가져온 파일에 versionMetadata 속성이 포함된 경우(특정 버전이나 게시된 버전을 대상으로 한 내보내기에서 추가됨), n8n은 해당 이전 이름과 설명을 워크플로 히스토리 테이블에 보존합니다. 현재 워크플로 엔티티의 이름과 설명은 그대로 유지됩니다.
기본적으로 import:workflow는 가져온 모든 워크플로를 비활성화합니다. 대신 각 JSON 파일의 active 필드를 유지하려면 --activeState=fromJson을 전달합니다(멀티 메인 & 큐 모드에서만 지원됨):
n8n import:workflow --separate --input=backups/latest/ --activeState=fromJson
자격 증명#
특정 파일에서 자격 증명 가져오기:
n8n import:credentials --input=file.json
지정된 디렉터리에서 모든 자격 증명 JSON 파일 가져오기:
n8n import:credentials --separate --input=backups/latest/
라이선스#
지우기#
n8n 데이터베이스에서 기존 라이선스를 지우고 n8n을 기본 기능으로 재설정:
n8n license:clear
라이선스에 플로팅 엔타이틀먼트가 포함된 경우, 이 명령어를 실행하면 풀로 다시 릴리즈하여 다른 인스턴스에서 사용할 수 있도록 시도합니다.
정보#
기존 라이선스에 대한 정보 표시:
n8n license:info
사용자 관리#
n8n CLI를 사용하여 사용자 관리를 재설정할 수 있습니다. 이는 사용자 관리를 설정 전 상태로 되돌립니다. 모든 사용자 계정이 제거됩니다.
비밀번호를 잊어버렸고 이메일로 비밀번호 재설정을 할 SMTP가 설정되어 있지 않은 경우 사용하세요.
n8n user-management:reset
사용자의 MFA 비활성화#
사용자가 복구 코드를 분실한 경우 이 명령어로 사용자의 MFA를 비활성화할 수 있습니다. 그러면 사용자가 다시 로그인하여 MFA를 다시 설정할 수 있습니다.
n8n mfa:disable --email=johndoe@example.com
LDAP 비활성화#
아래 명령어를 사용하여 LDAP 설정을 재설정할 수 있습니다.
n8n ldap:reset
커뮤니티 노드 및 자격 증명 제거#
n8n CLI를 사용하여 커뮤니티 노드를 관리할 수 있습니다. 현재는 커뮤니티 노드 및 자격 증명을 제거만 할 수 있으며, 커뮤니티 노드가 불안정성을 유발할 때 유용합니다.
명령어 플래그:
| 플래그 | 설명 |
|---|---|
| --help | CLI 도움말 표시 |
| --credential | 자격 증명 유형. 노드의 .credential.ts 파일을 방문하여 name 값을 가져오세요. |
| --package | 커뮤니티 노드의 패키지 이름 |
| --uninstall | 노드 제거 |
| --userId | 자격 증명을 소유한 사용자의 ID. 셀프 호스팅의 경우 데이터베이스를 조회하세요. 클라우드의 경우 API 키로 API를 조회하세요. |
노드#
패키지 이름으로 커뮤니티 노드 제거:
n8n community-node --uninstall --package
예를 들어 Evolution API community node를 제거하려면:
n8n community-node --uninstall --package n8n-nodes-evolution-api
자격 증명#
커뮤니티 노드 자격 증명 제거:
n8n community-node --uninstall --credential --userId
예를 들어 Evolution API community node credential을 제거하려면, 리포지터리를 방문하여 credentials.ts 파일로 이동하여 name을 찾으세요:
n8n community-node --uninstall --credential evolutionApi --userId 1234
보안 감사#
n8n 인스턴스에서 보안 감사를 실행하여 일반적인 보안 문제를 감지할 수 있습니다.
n8n audit
