백업 및 복원
n8n v2.42요약
데이터 손실에서 복구하거나, 실패한 업데이트를 롤백하거나, 새 서버로 이전할 수 있도록 셀프 호스팅 n8n 인스턴스를 백업하세요. 이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요. 셀프 호스팅 n8n 인스턴스의 완전한 백업은 두 부분으로 구성됩니다.
데이터 손실에서 복구하거나, 실패한 업데이트를 롤백하거나, 새 서버로 이전할 수 있도록 셀프 호스팅 n8n 인스턴스를 백업하세요. 완전한 백업에는 CLI 내보내기 명령만으로 생성되는 것보다 많은 항목이 포함됩니다. 이 페이지는 완전한 백업에 포함되는 항목, CLI --backup 플래그가 내보내는 항목, 백업 종류별 복원 방법을 설명합니다.
이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.
완전한 백업에 포함되는 항목#
셀프 호스팅 n8n 인스턴스의 완전한 백업은 두 부분으로 구성됩니다.
.n8n사용자 폴더(기본값은~/.n8n). 이 폴더에는 자격 증명 암호화 키를 저장하는config파일이 있습니다. 기본 SQLite 데이터베이스를 사용하면 데이터베이스 파일 자체도 이 폴더에 있습니다. 바이너리 데이터나 실행 데이터에filesystem저장 모드를 사용하는 경우 해당 데이터도 이 폴더에 있습니다.
N8N_USER_FOLDER 환경 변수로 폴더 위치를 변경할 수 있습니다. n8n은 설정한 경로의 .n8n 하위 폴더를 사용합니다.
- 기본 SQLite 대신 PostgreSQL을 사용하는 경우 외부 데이터베이스. 데이터베이스 자체 도구로 백업하세요. 데이터베이스의 자격 증명은
.n8n폴더에 있는 키로 암호화되므로.n8n폴더도 여전히 백업에 포함해야 합니다.
바이너리 데이터나 실행 데이터에 S3 또는 Azure Blob Storage 같은 외부 스토리지를 구성했다면 해당 스토리지도 백업하세요. 바이너리 데이터나 실행 데이터가 사용자 지정 파일 시스템 경로에 저장되어 있다면 그 위치도 백업에 포함하세요. N8N_CUSTOM_EXTENSIONS 환경 변수에 설정한 디렉터리에서 커스텀 노드를 불러오는 경우 해당 디렉터리도 백업하세요. 이를 포함하지 않으면 복원된 인스턴스에는 워크플로가 참조하는 노드가 없습니다.
기본 SQLite 데이터베이스를 사용하는 경우 .n8n 폴더를 복사하기 전에 n8n을 중지하세요. n8n이 쓰기 작업을 하는 동안 데이터베이스 파일을 복사하면 일관성이 없는 백업이 만들어질 수 있습니다. n8n을 중지할 수 없다면 SQLite 파일의 일관된 스냅샷을 생성하는 도구를 대신 사용하세요.
Docker에서 n8n을 실행하는 경우 .n8n 폴더는 /home/node/.n8n에 마운트된 n8n_data 볼륨에 있습니다. Docker의 영구 데이터에 대한 자세한 내용은 Docker로 설치를 참고하세요.
자격 증명을 복원하려면 암호화 키가 필요합니다
n8n은 자격 증명을 암호화된 형태로 데이터베이스에 저장합니다. config 파일의 암호화 키나 사용자 지정 N8N_ENCRYPTION_KEY가 없으면 복원된 데이터베이스나 암호화된 자격 증명 내보내기 파일을 복호화할 수 없습니다. 자세한 내용은 사용자 지정 암호화 키 설정을 참고하세요.
n8n은 업데이트하기 전에 전체 백업을 만들 것을 권장합니다. 업데이트 절차는 n8n 업데이트를 참고하세요.
CLI로 워크플로와 자격 증명 백업#
Server CLI를 사용해 워크플로와 자격 증명을 JSON 파일로 내보낼 수 있습니다.
n8n export:workflow --backup --output=backups/workflows/
n8n export:credentials --backup --output=backups/credentials/
--backup 플래그는 --all --pretty --separate를 설정하므로, 각 워크플로와 자격 증명이 읽기 쉬운 별도의 JSON 파일로 기록됩니다.
명령마다 다른 출력 디렉터리를 사용하세요. 입력 디렉터리에 워크플로 파일도 있으면 현재 import:credentials --separate가 실패합니다. 이는 알려진 문제입니다.
Docker에서 n8n을 실행하는 경우 컨테이너 내부의 backups/ 디렉터리는 영구 보존되지 않습니다. 볼륨에 있는 것은 .n8n 폴더뿐입니다. 백업용으로 호스트 디렉터리를 바인드 마운트하거나, 컨테이너를 다시 만들기 전에 내보낸 파일을 컨테이너 밖으로 복사하세요.
CLI 백업에 포함되지 않는 항목#
--backup 내보내기에는 워크플로와 자격 증명만 포함됩니다. 다음은 포함되지 않습니다.
- 사용자와 해당 역할. 새 인스턴스로 가져오면 n8n이 소유자 설정 화면을 다시 표시하며, 이를 먼저 완료한 사람이 소유자가 됩니다.
- 실행 기록과 로그.
- 변수.
- 암호화 키를 포함한 인스턴스 설정.
즉, CLI 백업은 인스턴스 간에 워크플로를 옮기기에는 충분하지만, 그것만으로 전체 인스턴스를 복구하기에는 충분하지 않습니다. 전체 인스턴스를 복구하려면 완전한 백업에 포함되는 항목에 설명된 대로 .n8n 폴더와 외부 데이터베이스의 백업을 보관하세요.
복원#
워크플로와 자격 증명 복원#
CLI 백업의 파일을 가져옵니다. 새 인스턴스에서는 먼저 소유자 설정을 완료하세요. 가져오기 명령에는 기존 사용자가 필요하고, 가져온 자격 증명에는 소유자가 필요합니다. 인스턴스에 사용자나 프로젝트가 여러 개라면 --userId 또는 --projectId를 사용해 가져온 자격 증명을 할당하세요.
n8n import:workflow --separate --input=backups/workflows/
n8n import:credentials --separate --input=backups/credentials/
내보낸 파일에는 원래 워크플로 및 자격 증명 ID가 포함됩니다. 대상 인스턴스에 같은 ID의 항목이 이미 있으면 덮어씁니다. 가져온 워크플로는 기본적으로 비활성화됩니다. 가져온 후 UI에서 활성화하거나, --activeState=fromJson을 전달해 각 워크플로의 내보낸 활성 상태를 복원하세요. 이 방법은 큐 또는 멀티 메인 모드에서만 작동합니다. 전체 플래그 목록과 주의 사항은 명령줄 사용을 참고하세요.
자격 증명을 복원하려면 가져오는 인스턴스가 이를 복호화할 수 있어야 합니다. 두 가지 방법이 있습니다.
- 내보낸 인스턴스와 같은 암호화 키를 사용합니다.
config파일을.n8n폴더에 복원하거나, 같은N8N_ENCRYPTION_KEY환경 변수를 설정하세요. - 자격 증명을 평문으로 기록하는
--decrypted플래그를 사용해 내보냅니다.
민감한 정보
--decrypted 내보내기 파일에는 모든 자격 증명 데이터가 평문으로 들어 있습니다. 자격 증명 자체와 같은 수준으로 주의해서 보관하고, 복원이 끝나면 삭제하세요.
전체 인스턴스 복원#
전체 인스턴스를 복원하려면 다음을 수행합니다.
- n8n을 중지합니다.
.n8n폴더를 원래 위치에 복원하고,N8N_CUSTOM_EXTENSIONS로 구성한 커스텀 노드 디렉터리도 함께 복원합니다.- PostgreSQL 데이터베이스를 사용하는 경우 백업에서 복원합니다.
- 배포 구성을 복원합니다. 데이터베이스 연결용 환경 변수, 사용 중인 경우 사용자 지정
N8N_ENCRYPTION_KEY, 외부 스토리지 설정이 포함됩니다. 이를 복원하지 않으면 복원된 인스턴스가 데이터베이스에 접근하거나 데이터를 복호화할 수 없습니다. - n8n을 시작합니다.
기본 SQLite 데이터베이스를 사용하는 경우 .n8n 폴더에는 인스턴스를 복구하는 데 필요한 모든 것이 들어 있습니다. 사용자, 설정, 실행 데이터를 포함하는 SQLite 데이터베이스 파일, 암호화 키, 그리고 파일 시스템 저장 모드에서는 바이너리 및 실행 데이터입니다. PostgreSQL을 사용하는 경우 .n8n 폴더에는 여전히 암호화 키가 들어 있고, 나머지는 데이터베이스 백업에 들어 있습니다.
관련 콘텐츠#
- n8n 계속 실행하기: 셀프 호스팅 n8n 인스턴스 운영 가이드.
- 명령줄 사용: 모든 내보내기 및 가져오기 플래그를 포함한 전체 Server CLI 레퍼런스.
- 사용자 지정 암호화 키 설정:
N8N_ENCRYPTION_KEY를 명시적으로 제공하는 방법. - n8n 데이터베이스 선택: SQLite 및 PostgreSQL 구성.
- n8n 업데이트: npm 및 Docker 설치의 업데이트 절차.