Add multi-host Proxmox support with SSL certificate handling

- Added support for multiple Proxmox hosts (pve7.0bin.in:443, Healthport PVE:8006)
- Enhanced VM management APIs to accept host parameter
- Fixed WebSocket URL generation bug (dynamic port handling)
- Added comprehensive SSL certificate trust help system
- Implemented host selection dropdown in UI
- Added VNC connection failure detection and automatic SSL help redirection
- Updated session management to store host_key information
- Enhanced error handling for different Proxmox configurations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-12 23:57:52 +09:00
parent ac620a0e15
commit fb00b0a5fd
14 changed files with 2029 additions and 32 deletions

View File

@@ -80,7 +80,6 @@
status("연결이 정상적으로 종료되었습니다");
} else {
const reason = e.detail.reason || 'Unknown';
status(`연결 실패: ${reason} (Code: ${e.detail.code || 'Unknown'})`);
console.error('❌ VNC 연결 실패 상세:', {
code: e.detail.code,
reason: e.detail.reason,
@@ -89,7 +88,7 @@
// WebSocket 에러 코드별 메시지
const errorMessages = {
1006: 'WebSocket 서버에 연결할 수 없습니다. VM이 실행중인지 확인하세요.',
1006: 'WebSocket 서버에 연결할 수 없습니다. SSL 인증서를 확인하세요.',
1000: '정상적으로 연결이 종료되었습니다.',
1002: '프로토콜 오류가 발생했습니다.',
1003: '지원하지 않는 데이터를 받았습니다.',
@@ -99,6 +98,14 @@
const userFriendlyMessage = errorMessages[e.detail.code] || `알 수 없는 오류 (코드: ${e.detail.code})`;
status(`${userFriendlyMessage}`);
// SSL 인증서 문제일 가능성이 높은 경우 SSL 도움말 페이지로 이동
if (e.detail.code === 1006 || !e.detail.clean) {
setTimeout(() => {
const sessionId = window.location.pathname.split('/').pop();
window.location.href = `/vnc/${sessionId}/ssl-help`;
}, 5000); // 5초 후 이동하여 사용자가 메시지를 읽을 시간 제공
}
}
}