12 KiB
OpenClaw Migration Guide
이 문서는 현재 ~/.openclaw 환경을 다른 PC로 옮길 때 필요한 최소/권장 절차를 정리한다.
목표
- OpenClaw 본체를 새 PC에 안정적으로 재설치
- 기존 workspace / custom project / 설정을 복원
- KIS 자동화(
projects/kis-trader)와 MCP 구성 재연결 - 크론 작업 복원
- 로컬 모델/포트/경로 차이로 인한 오류를 줄임
권장 전략
통폴더 복사보다 아래 방식이 더 안정적이다.
- 새 PC에 OpenClaw 본체 재설치
~/.openclaw에서 필요한 설정/문서/프로젝트만 복원- 언어 런타임/의존성 재설치
- 크론/서비스 재등록
- 로컬 경로/포트/모델 설정 보정
- 각 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.jsoncron/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 = trueplugins.entries.telegram.enabled = true
즉 새 PC에서 사용자 홈/전역 npm 경로가 달라지면, 아래 둘 중 하나를 해야 한다.
- 같은 경로 구조로 OpenClaw 재설치
- 또는
openclaw.json의plugins.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,npxpython3.NET 9 SDKgitcron(crontab)
그리고 MCP/브리지용으로 다음 npm 실행형이 실제로 사용된다.
@playwright/mcpmcp-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-q4kmllamacpp-8081/qwen2.5-72b-q4kmllamacpp-8082/qwen2.5-coder-32b-q4kmllamacpp-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-tradercollector/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.shprojects/kis-trader/start_alert_watcher.shstrategy_config.jsonmonitor_config.jsonacpx.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 ServerPlaywright MCPSSH 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.json의mcpServers가 사실상 로컬 stdio command 형식을 기대하고,mcp_sshterminal은 HTTP MCP 서버이기 때문 - 즉:
dotnet run ...= 실제 HTTP MCP 서버 실행mcp-remote ...= OpenClaw가 붙기 위한 stdio 브리지
이식 후 추천 점검 순서
openclaw statusnpm root -g/ OpenClaw 설치 경로 확인openclaw.json안의plugins.load.paths/plugins.installs.acpx.sourcePath경로 확인- 로컬 모델 포트 확인
acpx.jsonJSON 문법 확인- KIS MCP 수동 호출 확인
- Playwright MCP initialize / tools/list 확인
mcp_sshterminalHTTP MCP 확인- 크론 등록 확인
- 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
플러그인 관련 오류가 많이 난다면 특히 아래를 먼저 의심할 것:
- OpenClaw 본체 설치 경로가 달라짐
extensions/acpx가 실제로 존재하지 않음openclaw.json의plugins.load.paths가 옛 PC 경로를 가리킴npx/node가 새 PC에서 안 잡힘dotnet이 없어mcp_sshterminal이 안 뜸- GUI가 없어 Playwright headed 브라우저가 표시되지 않음
운영 원칙
- 통복사보다 재설치 + 설정/프로젝트 복원이 더 안정적
- 절대경로는 이식 시 항상 재검토
- 토큰/세션/캐시는 되도록 재생성
- 커스텀은
workspace/projects/기준으로 분리 유지 - KIS 원본 repo와 커스텀 자동화는 개념적으로 분리하되, 이제 backup git에는 둘 다 포함 가능