From 4f7929fc6142c2e0b659f56fc9179cf56217803f Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 10:20:38 +0000 Subject: [PATCH] =?UTF-8?q?=EC=95=BD=EA=B5=AD=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=EC=8B=9C=20=EC=9E=A5=EB=B9=84=20=EC=9E=90=EB=8F=99=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 주요 변경사항 ### 1. 장비 타입 자동 감지 (detect_device_info) - Proxmox Host, Windows PC (WSL), macOS, Linux Server 자동 구분 - 호스트명 자동 수집 - 장비명 자동 생성 (예: "테스트약국 Proxmox Host") ### 2. API 호출 개선 - farmq-admin API(/api/pharmacy)에 장비 정보 전송 - device_type: proxmox_host/windows_pc/mac/linux_server - device_name: 자동 생성된 장비명 - hostname: 시스템 호스트명 - 응답에서 device_registered 확인 및 사용자 피드백 ### 3. 출력 개선 - 장비 감지 정보 실시간 출력 - 최종 완료 메시지에 장비 정보 추가 ## 백엔드 연동 - farmq-admin/app.py에서 pharmacy_devices 테이블 자동 등록 - 첫 장비는 자동으로 is_primary=TRUE 설정 - device_role: main_server로 고정 ## 테스트 - 문법 검사 완료 (bash -n) - Proxmox Host 환경에서 테스트 준비 완료 🤖 Generated with Claude Code --- headscale-auto-register.sh | 62 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/headscale-auto-register.sh b/headscale-auto-register.sh index ac11cce..606f483 100755 --- a/headscale-auto-register.sh +++ b/headscale-auto-register.sh @@ -490,6 +490,43 @@ show_final_info() { # 약국 자동 등록 함수들 # ================================ +# 장비 타입 및 정보 자동 감지 +detect_device_info() { + echo -e "${BLUE}장비 정보 감지 중...${NC}" + + # hostname 수집 + DEVICE_HOSTNAME=$(hostname) + + # Proxmox 호스트 감지 + if [ -f /etc/pve/local/pve-ssl.pem ] || command -v pveversion >/dev/null 2>&1; then + DEVICE_TYPE="proxmox_host" + DEVICE_NAME="${PHARMACY_NAME} Proxmox Host" + echo -e "${GREEN}✓ Proxmox VE 호스트 감지됨${NC}" + + # Windows (WSL 환경) + elif grep -qi microsoft /proc/version 2>/dev/null; then + DEVICE_TYPE="windows_pc" + DEVICE_NAME="${PHARMACY_NAME} Windows PC" + echo -e "${GREEN}✓ Windows PC (WSL) 감지됨${NC}" + + # macOS + elif [ "$(uname -s)" = "Darwin" ]; then + DEVICE_TYPE="mac" + DEVICE_NAME="${PHARMACY_NAME} Mac" + echo -e "${GREEN}✓ macOS 감지됨${NC}" + + # Linux 서버 (일반) + else + DEVICE_TYPE="linux_server" + DEVICE_NAME="${PHARMACY_NAME} Linux Server" + echo -e "${GREEN}✓ Linux 서버 감지됨${NC}" + fi + + echo -e "${CYAN} 장비명: $DEVICE_NAME${NC}" + echo -e "${CYAN} 장비 타입: $DEVICE_TYPE${NC}" + echo -e "${CYAN} 호스트명: $DEVICE_HOSTNAME${NC}" +} + # 약국 정보 수집 collect_pharmacy_info() { echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" @@ -541,7 +578,7 @@ get_assigned_vpn_ip() { create_pharmacy_via_api() { echo -e "${BLUE}약국 등록 중 (farmq.db)...${NC}" - # JSON 데이터 구성 + # JSON 데이터 구성 (장비 정보 포함) JSON_DATA=$(cat <