Hermes Agent Sophie 프로필 및 OMW 기본 볼트 Hostinger VPS 이전 계획
For Hermes: 이 문서는 실행 전 승인용 마이그레이션 계획이다. 실제 이전은 각 Phase별 백업·검증 로그를 남기며 진행한다.
Goal: 현재 Windows WSL Ubuntu 환경의 Hermes Agent, sophie 프로필, Windows 로컬/WSL 경로의 OMW 기본 볼트 jyp-garden을 Hostinger VPS로 이전해 24/7 안정 운영 가능한 서버 환경으로 전환한다.
Architecture: Hostinger VPS의 Ubuntu 서버를 새 운영 호스트로 만들고, Hermes Agent는 sophie 프로필 단위로 복원한다. OMW는 현재 기본 볼트 경로 /mnt/d/projects/jyp-garden의 내용을 VPS 로컬 디스크 경로로 이전하고, omw registry가 새 경로를 가리키도록 재등록·검증한다.
Tech Stack: Ubuntu VPS, SSH, rsync/tar, Hermes Agent CLI, Hermes profiles, Slack/Telegram Gateway, cron, OMW/Obsidian Markdown vault, systemd.
0. 현재 확인된 상태
| 항목 | 현재 값 |
|---|---|
| 기준 시각 | 2026-06-11 12:30:21 KST |
| 현 운영 환경 | WSL Ubuntu, 홈 /home/administrator |
| Windows 사용자 폴더 | /mnt/c/Users/Administrator |
| Hermes active profile | sophie |
| Sophie profile path | /home/administrator/.hermes/profiles/sophie |
| Sophie config | /home/administrator/.hermes/profiles/sophie/config.yaml |
| Sophie env | /home/administrator/.hermes/profiles/sophie/.env |
| Gateway 상태 | running |
| OMW active vault | jyp-garden |
| OMW active vault path | /mnt/d/projects/jyp-garden |
| OMW vault type/mode | obsidian / wiki |
| OMW registry root | 현재 wrapper 기준 OMW_HOME=/home/administrator/.omw |
확인 필요:
- Hostinger VPS OS 버전, SSH 접속 계정, 서버 IP/도메인.
- VPS 디스크 용량과 OMW vault 전체 크기.
- Slack/Telegram gateway를 VPS에서 계속 운영할지, 기존 WSL gateway와 병행 전환할지.
- Hostinger 방화벽/패널에서 outbound/inbound 정책 제한 여부.
1. 이전 범위와 비범위
1.1 이전 범위
- Hermes Agent 설치 및 CLI 사용 환경.
- Hermes
sophie프로필 전체:config.yaml.env및 provider/API/gateway secretsskills/,skill-bundles/,cron/,sessions/,logs/,state.db,auth.json등 프로필 상태 파일
- OMW 실행 환경:
/home/administrator/.local/bin/omwwrapper 동등 구성- OMW source/repo 또는 설치 패키지
OMW_HOMEregistry (/home/administrator/.omw) 이전 또는 재생성
- OMW 기본 볼트
jyp-garden전체:wiki/,raw/,system/,.obsidian/.agents/,.claude/,.codex/등 운영 보조 디렉터리.git/포함 여부는 백업/이전 전략에서 별도 결정
- Google Drive one-way copy-sync cron 등 OMW 관련 자동화.
1.2 비범위 또는 별도 승인 필요
- Windows 전체 사용자 홈 이전.
- Obsidian 데스크톱 앱 설정 이전.
- Slack/Telegram 봇 토큰 재발급 또는 외부 서비스 설정 변경.
- 기존 WSL 환경 삭제.
- Google Drive 원격 파일 삭제 또는 양방향 동기화 전환.
2. 목표 서버 구조안
권장 기본 경로:
/home/jyp/
.hermes/
profiles/
sophie/
.omw/
.local/bin/omw
projects/
oh-my-wiki/
jyp-garden/권장 운영 원칙:
- VPS Linux 사용자명은
jyp또는administrator중 하나로 고정한다. 새 서버에서는/home/jyp권장. - OMW vault는
/home/jyp/projects/jyp-garden처럼 Linux native filesystem에 둔다. Windows mount 경로(/mnt/d/...)는 VPS에서 사용하지 않는다. - secrets는
.env,auth.json, Google credential 디렉터리로 분리하여 백업·전송 시 암호화한다. - 전환 완료 전까지 기존 WSL gateway는 유지하고, VPS gateway 검증 후 한 번만 cutover한다.
3. Phase 1 — 사전 조사 및 동결 계획
Task 1.1: 현재 시스템 인벤토리 생성
Objective: 이전 대상의 실제 파일·설정·자동화 목록을 고정한다.
Commands:
# WSL 현재 환경
hostnamectl || uname -a
python3 --version
which hermes && hermes --version
hermes profile show sophie
hermes config path
hermes config env-path
hermes tools list
hermes cron list --all
omw status
omw vault list
omw doctor
# 용량 확인
du -sh /home/administrator/.hermes/profiles/sophie
du -sh /home/administrator/.omw
du -sh /mnt/d/projects/jyp-gardenOutput: migration-inventory-YYYYMMDD.txt로 저장.
Verification:
sophie프로필 경로가/home/administrator/.hermes/profiles/sophie로 확인된다.- OMW active vault가
jyp-garden이고 path가/mnt/d/projects/jyp-garden로 확인된다. - cron job 목록에 morning brief, mail triage, OMW/Drive sync 관련 작업이 누락 없이 포함된다.
Task 1.2: 이전 동결 시점 결정
Objective: 데이터 불일치를 막기 위해 쓰기 작업이 적은 시간대를 정한다.
권장: KST 늦은 밤 또는 업무 전 새벽.
동결 대상:
- OMW vault 문서 편집.
- Sophie cron job 신규 실행.
- Gateway를 통한 파일 수정 작업.
- Google Drive sync 실행.
Verification: 동결 공지와 예상 복구 시점을 Slack/Telegram에 남긴다.
4. Phase 2 — 백업
Task 2.1: Hermes Sophie 프로필 백업
Objective: 프로필 전체를 재현 가능한 tarball로 저장한다.
mkdir -p /home/administrator/migration-backups/2026-06-11
cd /home/administrator
tar --exclude='profiles/sophie/logs/*.log' \
-czf migration-backups/2026-06-11/hermes-profile-sophie.tar.gz \
-C /home/administrator/.hermes/profiles sophie
sha256sum migration-backups/2026-06-11/hermes-profile-sophie.tar.gz \
> migration-backups/2026-06-11/SHA256SUMS주의: .env, auth.json, 세션 DB에는 민감 정보가 포함될 수 있으므로 외부 공유 금지.
Task 2.2: Hermes root/shared 상태 확인 및 선택 백업
Objective: sophie 프로필 밖에 존재하지만 실행에 필요한 파일을 확인한다.
# 프로필 밖 공용 경로 후보
ls -la /home/administrator/.hermes
ls -la /home/administrator/.config/gws || true
ls -la /home/administrator/.local/bin/omw || true백업 후보:
/home/administrator/.config/gws— Google Workspace CLI 인증 정보./home/administrator/.local/bin/omw— OMW wrapper./home/administrator/projects/oh-my-wiki— OMW source checkout./home/administrator/.ssh— 필요 시 SSH deploy key. 단, 별도 승인 후 암호화 백업.
Task 2.3: OMW registry와 vault 백업
Objective: OMW registry와 실제 vault를 각각 백업한다.
cd /home/administrator
tar -czf migration-backups/2026-06-11/omw-home.tar.gz \
-C /home/administrator .omw
# .git 포함 전체 백업. 용량이 크면 .git 제외본도 별도 생성.
tar -czf migration-backups/2026-06-11/jyp-garden-full.tar.gz \
-C /mnt/d/projects jyp-garden
tar --exclude='jyp-garden/.git' \
-czf migration-backups/2026-06-11/jyp-garden-no-git.tar.gz \
-C /mnt/d/projects jyp-garden
sha256sum migration-backups/2026-06-11/*.tar.gz \
>> migration-backups/2026-06-11/SHA256SUMSVerification:
sha256sum -c migration-backups/2026-06-11/SHA256SUMS
tar -tzf migration-backups/2026-06-11/hermes-profile-sophie.tar.gz | head
tar -tzf migration-backups/2026-06-11/jyp-garden-full.tar.gz | head5. Phase 3 — Hostinger VPS 기본 세팅
Task 3.1: VPS 초기 보안 설정
Objective: Hermes를 장기 실행할 최소 보안 기반을 만든다.
# VPS에서 실행
sudo apt update && sudo apt upgrade -y
sudo adduser jyp
sudo usermod -aG sudo jyp
sudo mkdir -p /home/jyp/.ssh
sudo cp ~/.ssh/authorized_keys /home/jyp/.ssh/authorized_keys
sudo chown -R jyp:jyp /home/jyp/.ssh
sudo chmod 700 /home/jyp/.ssh
sudo chmod 600 /home/jyp/.ssh/authorized_keys
# 방화벽: SSH만 우선 허용
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw statusVerification: 새 SSH 세션에서 jyp@<VPS_IP>로 접속 가능해야 한다.
Task 3.2: 필수 패키지 설치
sudo apt install -y \
git curl wget ca-certificates build-essential \
python3 python3-venv python3-pip pipx \
sqlite3 jq rsync tmux unzip ufw
python3 --version
git --version
sqlite3 --versionVerification: python3, git, sqlite3, rsync, tmux 명령이 정상 동작한다.
6. Phase 4 — Hermes Agent 설치 및 Sophie 프로필 복원
Task 4.1: Hermes Agent 설치
Objective: VPS에 Hermes CLI를 설치한다.
# Hermes 공식 설치 스크립트 사용
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# shell reload 후 확인
exec $SHELL -l
which hermes
hermes --version
hermes doctorVerification: hermes doctor에서 critical blocker가 없어야 한다.
Task 4.2: Sophie 프로필 복원
Objective: WSL의 sophie 프로필을 VPS 프로필 경로에 복원한다.
mkdir -p /home/jyp/.hermes/profiles
cd /home/jyp
# 전송받은 tarball 기준
sha256sum -c SHA256SUMS
tar -xzf hermes-profile-sophie.tar.gz -C /home/jyp/.hermes/profiles
hermes profile show sophie
hermes --profile sophie config path
hermes --profile sophie config check경로 보정 체크:
- config나 scripts 안에
/home/administrator또는/mnt/d/projects/jyp-garden하드코딩이 있는지 검색한다. - VPS 사용자 홈이
/home/jyp라면 아래 후보를 치환한다.
grep -R "/home/administrator\|/mnt/d/projects/jyp-garden" \
/home/jyp/.hermes/profiles/sophie \
/home/jyp/projects/oh-my-wiki \
2>/dev/null수정 원칙:
- 단순 로그·세션 기록의 과거 경로는 보존 가능.
- active cron script, wrapper, config, skill references의 실행 경로는 반드시 VPS 경로로 수정.
Task 4.3: secrets와 OAuth 재검증
Objective: provider, Slack, Telegram, Google Workspace 인증이 VPS에서 실제로 동작하는지 확인한다.
hermes --profile sophie auth list
hermes --profile sophie status --all
HOME=/home/jyp gws account list || true주의: 토큰 파일을 복사해도 OAuth redirect/host binding 때문에 재인증이 필요할 수 있다. 실패 시 hermes auth add <provider> 또는 해당 CLI 재로그인을 수행한다.
7. Phase 5 — OMW 설치 및 기본 볼트 복원
Task 5.1: OMW source/wrapper 복원
Objective: VPS의 Hermes 세션에서도 동일하게 omw CLI가 동작하게 한다.
mkdir -p /home/jyp/projects
cd /home/jyp/projects
# 기존 repo 백업을 복원하거나 원격 저장소에서 clone
# 예: tar 복원 또는 git clone <oh-my-wiki-repo-url> oh-my-wiki
mkdir -p /home/jyp/.local/bin
cat > /home/jyp/.local/bin/omw <<'SH'
#!/usr/bin/env bash
export HOME=/home/jyp
export OMW_HOME=/home/jyp/.omw
export PYTHONPATH=/home/jyp/projects/oh-my-wiki:${PYTHONPATH:-}
exec python3 -m scripts.omw_cli "$@"
SH
chmod +x /home/jyp/.local/bin/omw
export PATH=/home/jyp/.local/bin:$PATH
omw statusVerification: omw status가 JSON을 출력해야 한다.
Task 5.2: OMW registry 및 vault 복원
cd /home/jyp
tar -xzf omw-home.tar.gz -C /home/jyp
mkdir -p /home/jyp/projects
tar -xzf jyp-garden-full.tar.gz -C /home/jyp/projects
# 결과: /home/jyp/projects/jyp-garden
ls -la /home/jyp/projects/jyp-garden경로 재등록 필요: 기존 registry는 /mnt/d/projects/jyp-garden을 가리킨다. VPS에서는 아래 둘 중 하나를 선택한다.
권장안 A — registry row를 새 vault 경로로 갱신
omw vault list
# OMW가 지원하는 명령으로 vault를 forget 후 재등록하거나, migrate 명령이 있으면 사용.
# destructive 파일 삭제 금지: registry만 수정해야 한다.
omw vault forget jyp-garden
omw vault create jyp-garden --type obsidian --mode wiki --path /home/jyp/projects/jyp-garden
omw vault use jyp-garden대안 B — 새 registry 생성 후 vault 재등록
mv /home/jyp/.omw /home/jyp/.omw.pre-migration
mkdir -p /home/jyp/.omw
omw vault create jyp-garden --type obsidian --mode wiki --path /home/jyp/projects/jyp-garden
omw vault use jyp-gardenVerification:
omw status
omw vault list
omw fields wiki/work/projects/hermes-sophie-omw-hostinger-vps-migration-plan.md
omw lintTask 5.3: OMW index 재생성
Objective: VPS 로컬 경로 기준으로 검색 index를 정상화한다.
# OMW CLI가 reindex 명령을 제공하면 우선 사용
omw lint
omw query "Hermes Sophie Hostinger 이전 계획" || trueVerification: 새 서버에서 해당 계획 문서가 검색되어야 한다.
8. Phase 6 — Gateway, cron, 자동화 전환
Task 6.1: VPS gateway dry run
Objective: 기존 WSL gateway를 중단하지 않고 VPS에서 설정 오류를 먼저 확인한다.
hermes --profile sophie gateway status || true
hermes --profile sophie gateway run주의: 동일 Slack/Telegram bot token으로 두 gateway를 동시에 장시간 실행하면 메시지 중복 처리 가능성이 있다. dry run은 짧게 수행한다.
Task 6.2: cron job 경로 보정
Objective: 모든 cron script와 workdir이 VPS 경로를 사용하도록 수정한다.
체크 항목:
/home/administrator→/home/jyp/mnt/d/projects/jyp-garden→/home/jyp/projects/jyp-garden- Google Drive sync script path
- OMW wrapper path
HOME=/home/administrator gws ...→HOME=/home/jyp gws ...
검증 명령:
hermes --profile sophie cron list --all
hermes --profile sophie cron run <JOB_ID>주의: 사용자에게 발송되는 briefing/mail cron은 test delivery를 local로 바꾸거나, 실행 전 Slack에 테스트임을 명시한다.
Task 6.3: systemd service 설치 및 활성화
hermes --profile sophie gateway install
hermes --profile sophie gateway start
hermes --profile sophie gateway status
# SSH 로그아웃 후에도 user service 유지
sudo loginctl enable-linger jypVerification: VPS 재부팅 후에도 gateway가 자동 복구되어야 한다.
sudo reboot
# 재접속 후
hermes --profile sophie gateway status
hermes --profile sophie cron status9. Phase 7 — Cutover 및 검증
Task 7.1: 기존 WSL gateway 일시 중지
# WSL에서 실행
hermes --profile sophie gateway stop
hermes --profile sophie gateway status승인 필요: 이 시점부터 Slack/Telegram 응답 주체가 VPS로 전환된다.
Task 7.2: VPS gateway 활성 검증
체크리스트:
- Slack thread에서 Sophie가 응답한다.
- Telegram home channel에서 Sophie가 응답한다.
/status또는 gateway status가sophieprofile을 가리킨다.- 도구 사용이 정상이다: terminal/file/web/cronjob 등.
- OMW 문서 생성·검색이 정상이다.
- Gmail/Calendar/Tasks 등 Google Workspace CLI 호출이 정상이다.
- morning brief, mail triage, OMW sync cron 중 최소 1개를 수동 dry-run으로 검증했다.
Task 7.3: 데이터 정합성 검증
# WSL 백업 체크섬과 VPS 체크섬 비교
sha256sum -c SHA256SUMS
# Git vault라면
cd /home/jyp/projects/jyp-garden
git status --short
git log --oneline -5
# OMW
omw status
omw lint
omw query "Hostinger VPS 이전"Acceptance Criteria:
omw statusactive path가/home/jyp/projects/jyp-garden로 표시된다.- Sophie profile show가 VPS 경로를 표시한다.
- Gateway는 VPS에서 running이고 WSL gateway는 stopped이다.
- 사용자가 Slack에서 실제 응답을 확인했다.
- cron job은 경로 오류 없이 최소 dry-run 1회 성공했다.
10. Rollback 계획
Rollback trigger
- VPS gateway가 Slack/Telegram 메시지를 안정적으로 처리하지 못함.
- OMW vault 검색/쓰기 실패.
- Google Workspace 인증 실패로 morning brief/mail triage가 동작하지 않음.
- VPS systemd/gateway가 재부팅 후 자동 복구되지 않음.
Rollback steps
# VPS에서 gateway 중지
hermes --profile sophie gateway stop
# WSL에서 기존 gateway 재시작
hermes --profile sophie gateway start
hermes --profile sophie gateway statusOMW 데이터 rollback:
- cutover 중 VPS에서 생성된 새 문서가 있으면
rsync --dry-run으로 차이를 확인한 뒤 WSL vault로 수동 병합한다. - WSL의 기존
/mnt/d/projects/jyp-garden은 전환 안정화 전까지 삭제하거나 이동하지 않는다.
11. 리스크와 대응
| 리스크 | 영향 | 대응 |
|---|---|---|
| 동일 bot token gateway 이중 실행 | 중복 응답, 세션 꼬임 | dry run 최소화, cutover 시 WSL gateway stop 후 VPS start |
| registry path 불일치 | OMW가 빈 vault로 보이거나 쓰기 실패 | omw status active path 검증, vault 재등록 |
| secrets 누락 | provider/gateway/GWS 실패 | .env, auth.json, .config/gws 별도 체크리스트 |
| Hostinger VPS 메모리 부족 | Hermes gateway/cron 불안정 | swap 설정, cron 동시성 축소, VPS 플랜 상향 |
| Windows path 하드코딩 | cron/script 실패 | /home/administrator, /mnt/d 전체 검색 후 수정 |
| Google Drive sync 오동작 | 원격 Drive 오염 | 삭제 동작 금지 유지, dry-run/manifest 우선 |
| DNS/방화벽 제한 | webhook/API 수신 실패 | Slack/Telegram polling 방식 우선, 필요한 포트만 개방 |
12. 실행 전 최종 승인 체크리스트
- Hostinger VPS IP/SSH 계정 확보.
- VPS Ubuntu 버전과 디스크 용량 확인.
- WSL 기준 전체 백업 tarball 생성 완료.
- SHA256SUMS 검증 완료.
- secrets 전송 방식 확정:
scpover SSH 또는 암호화 archive. - cutover 시간 확정.
- rollback 담당과 기준 확정.
- Google Drive sync는 삭제 금지/one-way copy-sync 정책 유지.
- WSL 기존 환경은 최소 7일 보존.
13. 예상 작업 순서 요약
- WSL 현재 상태 inventory 생성.
- Sophie profile, OMW registry,
jyp-gardenvault 백업 및 checksum 생성. - Hostinger VPS Ubuntu 초기 보안·패키지 세팅.
- Hermes 설치.
- Sophie profile 복원 및 config/secrets 검증.
- OMW source/wrapper 복원.
jyp-gardenvault를/home/jyp/projects/jyp-garden로 복원.- OMW registry를 새 경로로 재등록.
- cron/script 경로 보정.
- VPS gateway dry run.
- WSL gateway stop → VPS gateway start.
- Slack/Telegram/OMW/GWS/cron 검증.
- 24~72시간 모니터링 후 WSL은 standby로 보존.
14. 다음 액션
- 대표님이 Hostinger VPS 접속 정보(IP, SSH 계정명, OS)를 주시면 Phase 1 inventory부터 실제 실행한다.
- 이전 전 이 문서를 기준으로 “백업만 먼저 수행”할지, “VPS 세팅까지 연속 수행”할지 결정한다.
- 실행 중 사용자 승인 없이 기존 WSL 삭제, 원격 Drive 삭제, gateway token 재발급은 하지 않는다.