🖥️ 원격 서버 연동
SSH 프로토콜을 통해 원격 서버의 버전을 확인하고, 릴리즈를 원격 배포하며, 운영 환경과 개발 환경을 동기화할 수 있습니다.
Remote API (api/remote.php) — 5개 액션
| 액션 | HTTP | 엔드포인트 | 설명 |
|---|---|---|---|
| ping | GET | /api/remote?action=ping&site=kiam-prod | SSH 연결 가능 여부 확인 |
| status | GET | /api/remote?action=status&site=kiam-prod | 문서 루트 존재·버전 확인 |
| servers | GET | /api/remote?action=servers | 전체 서버 목록 |
| deploy | POST | /api/remote (body: action=deploy) | 원격 서버에 릴리즈 배포 |
| sync | POST | /api/remote (body: action=sync) | 운영→개발 동기화 |
SSH 연결 구조
각 사이트는 서버 정보를 site-registry.json에 보유:
"server_hostname": "main-server",
"server_ip": "127.0.0.1",
"server_port": 22
PHP의 ssh2_connect() 또는 exec("ssh ...") 로 연결을 시도합니다.
원격 배포 (deploy)
POST /vermanager/api/remote
Content-Type: application/json
{
"action": "deploy",
"site": "kiam-prod",
"version": "1.0.2"
}
→ 응답:
{
"ok": true,
"message": "✅ v1.0.2 배포 완료!",
"server": "main-server",
"deployed_version": "1.0.2"
}
운영→개발 환경 동기화
action=sync는 parent_site_id 관계를 기반으로 동작합니다. kiam-prod의 package.json, improvements.json, changelog.json 등을 kiam-dev로 복제합니다.
POST /vermanager/api/remote
{"action": "sync", "source": "kiam-prod", "target": "kiam-dev"}
→ 응답:
{
"ok": true,
"message": "✅ [KIAM 운영환경] → [KIAM 개발환경] 동기화 완료!"
}
서버 관리 UI (pages/remote.php)
- 서버 카드: 서버명, IP, 포트, 연결 상태(녹색/적색)
- Ping 버튼: 클릭 시 서버 응답 확인
- 배포(Deploy) 버튼: 최신 버전을 원격 서버에 전송
- 동기화(Sync) 버튼: 운영 환경 데이터를 개발 환경으로 복제