OpenClaw를 새 머신으로 마이그레이션

이 가이드는 온보딩을 다시 하지 않고 OpenClaw 게이트웨이를 한 머신에서 다른 머신으로 마이그레이션합니다.

개념적으로는 간단합니다:

  • 상태 디렉토리 ($OPENCLAW_STATE_DIR, 기본값: ~/.openclaw/)를 복사합니다. 설정, 인증, 세션, 채널 상태가 포함됩니다.
  • 워크스페이스 (기본값 ~/.openclaw/workspace/)를 복사합니다. 에이전트 파일(메모리, 프롬프트 등)이 포함됩니다.

하지만 프로필, 권한, 부분 복사 관련 흔한 함정들이 있습니다.

시작 전 (마이그레이션 대상 파악)

1) 상태 디렉토리 확인

대부분의 설치는 기본값을 사용합니다:

  • 상태 디렉토리: ~/.openclaw/

하지만 다음을 사용하는 경우 다를 수 있습니다:

  • --profile <name> (보통 ~/.openclaw-<profile>/이 됨)
  • OPENCLAW_STATE_DIR=/some/path

확실하지 않다면 이전 머신에서 실행합니다:

openclaw status

출력에서 OPENCLAW_STATE_DIR / 프로필 관련 언급을 찾으세요. 여러 게이트웨이를 운영한다면 각 프로필에 대해 반복하세요.

2) 워크스페이스 확인

일반적인 기본값:

  • ~/.openclaw/workspace/ (권장 워크스페이스)
  • 직접 생성한 커스텀 폴더

워크스페이스에는 MEMORY.md, USER.md, memory/*.md 같은 파일들이 있습니다.

3) 보존되는 항목 이해

상태 디렉토리와 워크스페이스 둘 다 복사하면 다음이 유지됩니다:

  • 게이트웨이 설정 (openclaw.json)
  • 인증 프로필 / API 키 / OAuth 토큰
  • 세션 이력 + 에이전트 상태
  • 채널 상태 (예: WhatsApp 로그인/세션)
  • 워크스페이스 파일 (메모리, 스킬 노트 등)

워크스페이스 복사하면(예: Git을 통해) 다음은 유지되지 않습니다:

  • 세션
  • 인증 정보
  • 채널 로그인

이것들은 $OPENCLAW_STATE_DIR 아래에 있습니다.

마이그레이션 단계 (권장)

0단계 — 백업 (이전 머신)

이전 머신에서 파일이 복사 중에 변경되지 않도록 먼저 게이트웨이를 중지합니다:

openclaw gateway stop

(선택이지만 권장) 상태 디렉토리와 워크스페이스를 아카이브합니다:

# 프로필이나 커스텀 위치를 사용하는 경우 경로를 조정하세요
cd ~
tar -czf openclaw-state.tgz .openclaw

tar -czf openclaw-workspace.tgz .openclaw/workspace

여러 프로필/상태 디렉토리(예: ~/.openclaw-main, ~/.openclaw-work)가 있다면 각각 아카이브하세요.

1단계 — 새 머신에 OpenClaw 설치

새 머신에서 CLI(필요하면 Node도)를 설치합니다:

이 단계에서 온보딩이 새 ~/.openclaw/를 생성해도 괜찮습니다. 다음 단계에서 덮어씁니다.

2단계 — 상태 디렉토리 + 워크스페이스를 새 머신으로 복사

둘 다 복사합니다:

  • $OPENCLAW_STATE_DIR (기본값 ~/.openclaw/)
  • 워크스페이스 (기본값 ~/.openclaw/workspace/)

일반적인 방법:

  • scp로 타르볼 전송 후 추출
  • SSH를 통한 rsync -a
  • 외장 드라이브

복사 후 확인 사항:

  • 숨김 디렉토리가 포함되었는지 (예: .openclaw/)
  • 게이트웨이를 실행하는 사용자에 맞게 파일 소유권이 올바른지

3단계 — Doctor 실행 (마이그레이션 + 서비스 수리)

새 머신에서:

openclaw doctor

Doctor는 “안전하고 지루한” 명령어입니다. 서비스를 수리하고, 설정 마이그레이션을 적용하고, 불일치를 경고합니다.

이후:

openclaw gateway restart
openclaw status

흔한 함정 (그리고 방지 방법)

함정: 프로필 / 상태 디렉토리 불일치

이전 게이트웨이를 프로필(또는 OPENCLAW_STATE_DIR)로 실행했는데 새 게이트웨이가 다른 것을 사용하면 다음과 같은 증상이 나타납니다:

  • 설정 변경이 적용되지 않음
  • 채널 누락 / 로그아웃됨
  • 빈 세션 이력

수정: 마이그레이션한 것과 동일한 프로필/상태 디렉토리로 게이트웨이/서비스를 실행한 뒤 다시 실행합니다:

openclaw doctor

함정: openclaw.json만 복사

openclaw.json만으로는 부족합니다. 많은 프로바이더가 다음 위치에 상태를 저장합니다:

  • $OPENCLAW_STATE_DIR/credentials/
  • $OPENCLAW_STATE_DIR/agents/<agentId>/...

항상 $OPENCLAW_STATE_DIR 폴더 전체를 마이그레이션하세요.

함정: 권한 / 소유권

root로 복사했거나 사용자를 변경한 경우, 게이트웨이가 인증 정보/세션을 읽지 못할 수 있습니다.

수정: 상태 디렉토리 + 워크스페이스가 게이트웨이를 실행하는 사용자 소유인지 확인하세요.

함정: 원격/로컬 모드 간 마이그레이션

  • UI(WebUI/TUI)가 원격 게이트웨이를 가리키면 원격 호스트가 세션 저장소 + 워크스페이스를 소유합니다.
  • 노트북을 마이그레이션해도 원격 게이트웨이의 상태는 옮겨지지 않습니다.

원격 모드라면 게이트웨이 호스트를 마이그레이션하세요.

함정: 백업 속 시크릿

$OPENCLAW_STATE_DIR에는 시크릿(API 키, OAuth 토큰, WhatsApp 인증 정보)이 포함됩니다. 백업을 프로덕션 시크릿처럼 취급하세요:

  • 암호화하여 저장
  • 안전하지 않은 채널로 공유 금지
  • 노출 의심 시 키 로테이션

검증 체크리스트

새 머신에서 확인:

  • openclaw status에서 게이트웨이가 실행 중으로 표시
  • 채널이 여전히 연결되어 있음 (예: WhatsApp이 재페어링 불필요)
  • 대시보드가 열리고 기존 세션이 표시됨
  • 워크스페이스 파일(메모리, 설정)이 존재함

관련 문서