Files
backup_openclaw/openclaw_migration.md
2026-03-30 19:30:25 +09:00

12 KiB

OpenClaw Migration Guide

이 문서는 현재 ~/.openclaw 환경을 다른 PC로 옮길 때 필요한 최소/권장 절차를 정리한다.

목표

  • OpenClaw 본체를 새 PC에 안정적으로 재설치
  • 기존 workspace / custom project / 설정을 복원
  • KIS 자동화(projects/kis-trader)와 MCP 구성 재연결
  • 크론 작업 복원
  • 로컬 모델/포트/경로 차이로 인한 오류를 줄임

권장 전략

통폴더 복사보다 아래 방식이 더 안정적이다.

  1. 새 PC에 OpenClaw 본체 재설치
  2. ~/.openclaw에서 필요한 설정/문서/프로젝트만 복원
  3. 언어 런타임/의존성 재설치
  4. 크론/서비스 재등록
  5. 로컬 경로/포트/모델 설정 보정
  6. 각 MCP / 자동화 / 백업 스크립트 개별 점검

반드시 확인할 환경 차이

다른 PC에서 자주 깨지는 원인:

  • 절대경로 차이 (/home/arin/...)
  • Node / npm / dotnet / python 버전 차이
  • OpenClaw 버전 차이
  • 로컬 llama.cpp 서버 포트 차이
  • 인증/토큰/세션 파일 차이
  • GUI/헤드리스 환경 차이
  • 크론/서비스 미복원
  • 방화벽/로컬 네트워크 차이

이식 우선순위

1. 가장 중요한 파일/폴더

  • ~/.openclaw/openclaw.json
  • ~/.openclaw/cron/crontab.backup
  • ~/.openclaw/cron/jobs.json
  • ~/.openclaw/workspace/AGENTS.md
  • ~/.openclaw/workspace/SOUL.md
  • ~/.openclaw/workspace/USER.md
  • ~/.openclaw/workspace/MEMORY.md
  • ~/.openclaw/workspace/memory/*.md
  • ~/.openclaw/workspace/acpx.json
  • ~/.openclaw/workspace/projects/kis-trader/
  • ~/.openclaw/workspace/projects/mcp_sshterminal/
  • ~/.openclaw/workspace/KIS_MCP_Server/

2. 선택 복원

  • ~/.openclaw/subagents/runs.json
  • ~/.openclaw/agents/main/agent/models.json

3. 보통 재생성/재설정 권장

  • .venv
  • __pycache__
  • price_logs/
  • sqlite / 세션 transcript / 캐시류
  • token/env 파일

새 PC 복원 절차

Step 0. 압축 복사만으로 끝나지 않는 이유

~/.openclaw만 복사해도 다음은 자동으로 복구되지 않을 수 있다.

  • 전역 npm 패키지 경로
  • OpenClaw 본체 설치 경로
  • OpenClaw 확장(plugin) 설치 경로
  • Node / npm / dotnet / python 런타임
  • 시스템 크론 등록 상태
  • 로컬 GUI / 브라우저 실행 환경

즉, 압축 파일은 데이터/설정 복원용이고, 실제 실행 가능 상태로 만들려면 아래 추가 셋업을 다시 해야 한다.

Step 1. OpenClaw 설치

새 PC에서 OpenClaw를 먼저 설치한다.

  • Node / npm 준비
  • OpenClaw 설치
  • 실행 파일/서비스 기본 동작 확인

권장 확인:

which openclaw
npm root -g
openclaw status

정상 응답이 먼저 나와야 한다.


Step 2. .openclaw 기본 구조 복원

기존 백업에서 다음을 새 PC ~/.openclaw로 복사:

  • openclaw.json
  • cron/
  • workspace/
  • agents/main/agent/models.json (선택)

주의:

  • 통째로 덮어쓰기보다 필요한 파일/폴더를 선별 복사하는 편이 안전함

Step 3. 경로 보정

현재 설정은 /home/arin/... 절대경로를 많이 사용한다. 새 PC 사용자명이 다르면 아래를 전부 점검해야 한다.

주요 위치:

  • ~/.openclaw/openclaw.json
  • ~/.openclaw/workspace/acpx.json
  • ~/.openclaw/workspace/projects/kis-trader/*.sh
  • ~/.openclaw/workspace/projects/kis-trader/*.py
  • ~/.openclaw/cron/crontab.backup

추천 검사:

grep -RIn '/home/arin' ~/.openclaw

Step 3-1. 플러그인 / 확장 복원 (중요)

현재 환경은 OpenClaw 본체 외에 ACPX 확장 플러그인에 의존한다. 플러그인 오류가 많이 났다면 이 단계가 빠졌을 가능성이 높다.

현재 기준 경로:

  • OpenClaw 전역 설치 경로 예시:
    • /home/arin/.npm-global/lib/node_modules/openclaw
  • ACPX 확장 경로:
    • /home/arin/.npm-global/lib/node_modules/openclaw/extensions/acpx

openclaw.json에 실제로 박혀 있는 설정도 다음을 기대한다.

  • plugins.allow = ["acpx", "telegram"]
  • plugins.load.paths = ["/home/arin/.npm-global/lib/node_modules/openclaw/extensions/acpx"]
  • plugins.entries.acpx.enabled = true
  • plugins.entries.telegram.enabled = true

즉 새 PC에서 사용자 홈/전역 npm 경로가 달라지면, 아래 둘 중 하나를 해야 한다.

  1. 같은 경로 구조로 OpenClaw 재설치
  2. 또는 openclaw.jsonplugins.load.paths, plugins.installs.acpx.*를 새 경로로 수정

권장 확인:

npm root -g
ls -la $(npm root -g)/openclaw
ls -la $(npm root -g)/openclaw/extensions/acpx

만약 ACPX가 없다면, 새 PC에서 OpenClaw 설치가 불완전하거나 설치 경로가 달라진 것일 수 있다.

Step 3-2. 추가 런타임/CLI 의존성

현재 구성은 다음 외부 런타임/도구를 기대한다.

  • node, npm, npx
  • python3
  • .NET 9 SDK
  • git
  • cron (crontab)

그리고 MCP/브리지용으로 다음 npm 실행형이 실제로 사용된다.

  • @playwright/mcp
  • mcp-remote

이 둘은 npx -y ...로 실행하므로 전역 설치가 꼭 필요하진 않지만, 새 PC에서 네트워크/패키지 접근이 안 되면 최초 실행에 실패할 수 있다.

권장 확인:

node -v
npm -v
npx -y @playwright/mcp@latest --version || true
npx -y mcp-remote https://example.com/sse || true
python3 --version
dotnet --info
git --version
crontab -l || true

Step 4. 로컬 모델 포트 점검

현재 로컬 llama.cpp 매핑은 다음 기준이다.

  • llamacpp-8080/qwen3-8b-q4km
  • llamacpp-8081/qwen2.5-72b-q4km
  • llamacpp-8082/qwen2.5-coder-32b-q4km
  • llamacpp-8083/deepseek-r1_q4km

새 PC에서 동일 포트/모델로 띄우지 않으면 openclaw.json의 모델 설정을 수정해야 한다.

점검:

curl http://llama:8080/v1/models
curl http://llama:8081/v1/models
curl http://llama:8082/v1/models
curl http://llama:8083/v1/models

현재 운영 환경에서는 로컬 모델 서버가 같은 머신의 127.0.0.1가 아니라, 호스트명 llama로 붙어 있는 별도 머신/서비스일 수 있다. 따라서 새 PC 복원 시에는 openclaw.json의 provider baseUrl이 실제 환경과 맞는지 함께 확인한다.


Step 5. Python / .NET / Node 의존성 재설치

KIS_MCP_Server

cd ~/.openclaw/workspace/KIS_MCP_Server
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .

또는 프로젝트 문서 기준 재설치.

mcp_sshterminal

.NET 9 SDK 필요.

cd ~/.openclaw/workspace/projects/mcp_sshterminal
dotnet restore
dotnet build -c Release

Playwright MCP / mcp-remote

npx 기반이므로 Node/npm 동작만 정상이면 즉시 재사용 가능.


Step 6. 크론 복원

현재 크론은 다음 계열 작업을 포함한다.

  • kis-trader collector/watcher 자동 재시작
  • 30분마다 git 자동 백업 push

백업된 crontab 확인:

cat ~/.openclaw/cron/crontab.backup

복원 예시:

crontab ~/.openclaw/cron/crontab.backup
crontab -l

주의:

  • 경로가 달라졌다면 crontab.backup 내용을 먼저 수정한 뒤 등록할 것

Step 7. KIS 자동화 점검

확인 항목:

  • projects/kis-trader/start_price_collector.sh
  • projects/kis-trader/start_alert_watcher.sh
  • strategy_config.json
  • monitor_config.json
  • acpx.json의 KIS MCP 설정

수동 점검:

bash ~/.openclaw/workspace/projects/kis-trader/start_price_collector.sh
bash ~/.openclaw/workspace/projects/kis-trader/start_alert_watcher.sh
ps -ef | grep kis-trader

로그 확인:

tail -n 50 ~/.openclaw/workspace/projects/kis-trader/price_logs/collector.log
tail -n 50 ~/.openclaw/workspace/projects/kis-trader/price_logs/alert_watcher.log

Step 8. MCP 서버 점검

현재 workspace/acpx.json 기준으로 등록되는 MCP는 다음 3개다.

  • KIS MCP Server
  • Playwright MCP
  • SSH Terminal MCP

KIS MCP

실행 기대값:

  • Python venv 존재:
    • ~/.openclaw/workspace/KIS_MCP_Server/.venv/bin/python
  • 엔트리포인트:
    • ~/.openclaw/workspace/KIS_MCP_Server/server.py

확인:

ls -l ~/.openclaw/workspace/KIS_MCP_Server/.venv/bin/python
python3 -m py_compile ~/.openclaw/workspace/KIS_MCP_Server/server.py

주의:

  • 해외주식 현재가 조회는 나스닥 시장코드 NAS 사용 권장
  • 현재 로컬 수정으로 NASD도 내부 alias 처리되지만, 새 PC에서 파일이 최신인지 확인할 것

Playwright MCP

등록 형식:

  • npx -y @playwright/mcp@latest --isolated --output-dir ...

주의:

  • GUI 환경에서 화면이 보여야 하면 headless 옵션 제거 상태인지 확인
  • Linux에서 실제 창이 보여야 한다면 X/Wayland GUI 세션이 살아 있어야 함
  • 단순 서버 기동만으로는 충분하지 않고, MCP 클라이언트 세션이 살아 있어야 브라우저 창이 유지된다

SSH Terminal MCP

이 프로젝트는 직접 stdio MCP가 아니라 HTTP MCP 서버다. 따라서 acpx.json에는 서버 실행 명령 자체가 아니라, mcp-remote 브리지를 통해 등록한다.

실서버:

  • http://127.0.0.1:5057/mcp

실행 프로젝트:

  • ~/.openclaw/workspace/projects/mcp_sshterminal/McpSshTerminal.App

서버 수동 실행 예시:

cd ~/.openclaw/workspace/projects/mcp_sshterminal/McpSshTerminal.App
dotnet build -c Release
dotnet run -c Release

확인:

curl http://127.0.0.1:5057/api/config-path

OpenClaw 등록:

  • npx -y mcp-remote http://127.0.0.1:5057/mcp --allow-http

중요:

  • dotnet run ...이 아니라 npx mcp-remote ...acpx.json에 들어가 있는지 혼동하기 쉬움
  • 이유는 acpx.jsonmcpServers가 사실상 로컬 stdio command 형식을 기대하고, mcp_sshterminalHTTP MCP 서버이기 때문
  • 즉:
    • dotnet run ... = 실제 HTTP MCP 서버 실행
    • mcp-remote ... = OpenClaw가 붙기 위한 stdio 브리지

이식 후 추천 점검 순서

  1. openclaw status
  2. npm root -g / OpenClaw 설치 경로 확인
  3. openclaw.json 안의 plugins.load.paths / plugins.installs.acpx.sourcePath 경로 확인
  4. 로컬 모델 포트 확인
  5. acpx.json JSON 문법 확인
  6. KIS MCP 수동 호출 확인
  7. Playwright MCP initialize / tools/list 확인
  8. mcp_sshterminal HTTP MCP 확인
  9. 크론 등록 확인
  10. git backup 스크립트 수동 실행 확인

문제 발생 시 우선 로그

  • ~/.openclaw/openclaw.json
  • ~/.openclaw/cron/crontab.backup
  • ~/.openclaw/workspace/projects/kis-trader/price_logs/collector.log
  • ~/.openclaw/workspace/projects/kis-trader/price_logs/alert_watcher.log
  • ~/.openclaw/workspace/projects/mcp_sshterminal/mcp_sshterminal.log

그리고 다음을 같이 확인:

openclaw status
npm root -g
crontab -l
ps -ef | grep -E 'kis-trader|McpSshTerminal.App|playwright|mcp-remote'
grep -RIn 'plugins' ~/.openclaw/openclaw.json

플러그인 관련 오류가 많이 난다면 특히 아래를 먼저 의심할 것:

  1. OpenClaw 본체 설치 경로가 달라짐
  2. extensions/acpx가 실제로 존재하지 않음
  3. openclaw.jsonplugins.load.paths가 옛 PC 경로를 가리킴
  4. npx/node가 새 PC에서 안 잡힘
  5. dotnet이 없어 mcp_sshterminal이 안 뜸
  6. GUI가 없어 Playwright headed 브라우저가 표시되지 않음

운영 원칙

  • 통복사보다 재설치 + 설정/프로젝트 복원이 더 안정적
  • 절대경로는 이식 시 항상 재검토
  • 토큰/세션/캐시는 되도록 재생성
  • 커스텀은 workspace/projects/ 기준으로 분리 유지
  • KIS 원본 repo와 커스텀 자동화는 개념적으로 분리하되, 이제 backup git에는 둘 다 포함 가능