Commit Graph

29 Commits

Author SHA1 Message Date
f5a7c7f695 Add 시간교정.md 2025-11-15 19:26:05 +09:00
Claude
4f7929fc61 약국 생성 시 장비 자동 등록 기능 추가
## 주요 변경사항

### 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
2025-11-15 10:20:38 +00:00
02137c50a8 Fix stdin issue for curl | bash execution
pbs_allinone.sh 입력 문제 수정:
- 모든 read -p 명령어에 < /dev/tty 추가
- curl | bash 실행 시 stdin 소진 문제 해결
- 사용자 입력이 정상적으로 작동하도록 수정

수정된 read 명령어:
- PBS 스토리지 재등록 확인
- 백업 타입 입력 (vm/ct)
- 백업 ID 입력
- 복구 VM/CT ID 입력
- 저장 스토리지 입력
- 복구 확인
- 기존 VM/CT 삭제 확인
- VM/CT 시작 확인

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 00:37:27 +00:00
Claude
1c6e6dcf56 pbs_allinone.sh: 스토리지 선택 개선
- 복구 시 사용 가능한 스토리지 목록 자동 표시
- 스토리지 존재 여부 및 VM/CT 이미지 저장 가능 여부 검증
- 잘못된 스토리지 입력 시 재입력 요청
- 스토리지 용량 및 사용률 정보 표시 (GB 단위)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 23:32:23 +09:00
Claude
269350c1d2 Fix: Success check failing due to JSON formatting with spaces
- 'success:true' → 'success' AND 'true' 검사로 변경
- pretty-printed JSON (공백/줄바꿈 포함) 대응
- 실제로는 성공했는데 실패로 표시되던 버그 수정

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 11:38:07 +00:00
Claude
d8ce36b8a4 Fix: Improve pharmacy_code extraction with better error messages
- grep + sed 조합으로 pharmacy_code 추출 개선
- [[:space:]]로 공백 처리 추가
- 추출 실패 시 상세한 디버깅 정보 출력
  - 원인 표시
  - JSON 응답 내용 출력
  - 추출 시도 결과 표시
- 에러 메시지 명확화 (약국 생성 API 실패 vs pharmacy_code 추출 실패)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 11:35:48 +00:00
Claude
8a391cabd8 Improve: Headscale auto-register script with better JSON parsing and output
주요 개선 사항:
- Python 없이 순수 bash(tr + sed)로 JSON 파싱
- 다중 라인 JSON 응답 대응 (tr -d '\n')
- pharmacy_code 추출 로직 개선
- 결과 요약 포맷 개선 (약국 코드, 약국명, 계정 정보 명확히 표시)
- VPN 정보 섹션 분리

기술적 변경:
- sed 's/.*"pharmacy_code": "\([^"]*\)".*/\1/' 패턴 사용
- Python 의존성 제거로 더 많은 환경에서 실행 가능
- 결과 출력 포맷 사용자 친화적으로 개선

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 11:31:51 +00:00
Claude
987662f95b fix: pharmacy_code 추출 정규식 수정 (\K 미지원 환경 대응)
문제:
- grep -oP '\K' 패턴이 일부 환경에서 미지원
- pharmacy_code 추출 실패로 gateway 계정 생성 안 됨

해결:
- cut -d'"' -f4로 변경하여 호환성 향상
- 모든 grep 버전에서 작동

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:58:03 +00:00
Claude
ae1782a6de fix: P001, P002 약국 보호 로직 추가
문제:
- cleanup 스크립트가 P0003 이후 삭제 시 P001, P002도 함께 삭제됨
- 문자열 비교 'P001' >= 'P0003'이 true로 평가됨

원인:
- SQLite 문자열 비교에서 'P001' < 'P0003'이지만
- 'P002' >= 'P0003'은 false인데, 기존 조건이 잘못됨

해결:
- LENGTH(pharmacy_code) = 5 조건 추가
- P0003 <= pharmacy_code <= P9999 범위 명시
- P001, P002 (4자), P0001, P0002 (5자) 모두 보호

변경 파일:
- cleanup-test-data.sh: 삭제 쿼리 수정
- CLEANUP_TEST_DATA.md: 문서 업데이트

보호되는 약국:
- P001: default 약국 (4자)
- P002: 새서울약국 (4자)
- P0002: 청춘약국 (5자, 범위 밖)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:53:59 +00:00
Claude
e7485983cc fix: pharmacy_code 추출 로직 수정
문제:
- farmq API 응답에서 pharmacy_code 추출 실패
- 약국은 생성되었지만 코드를 못 가져와서 gateway 계정 생성 불가

원인:
- JSON 구조가 {"pharmacy": {"pharmacy_code": "P0005"}}인데
- 기존 패턴은 최상위 레벨만 검색

해결:
- grep -oP '"pharmacy_code":"\K[^"]+' 패턴 사용
- \K를 사용하여 매칭된 부분 이전은 제외하고 pharmacy_code 값만 추출
- success 체크 먼저 수행

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:49:55 +00:00
Claude
c2b810c6fc debug: gateway API 호출 디버깅 정보 추가
전송 데이터와 응답을 화면에 출력하여 문제 확인

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:46:01 +00:00
Claude
a3fd18b1b0 docs: 테스트 데이터 정리 가이드 및 자동화 스크립트 추가
테스트 후 생성된 데이터를 쉽게 정리할 수 있도록 문서와 스크립트 추가

추가 파일:
- CLEANUP_TEST_DATA.md: 상세한 정리 가이드
  * farmq.db 약국 삭제 방법
  * gateway.db 사용자 삭제 방법
  * Headscale 노드 삭제 방법
  * 백업 및 복구 가이드

- cleanup-test-data.sh: 대화형 정리 스크립트
  * P0003 이후 약국 자동 삭제
  * ID 5 이후 사용자 자동 삭제
  * Headscale 노드 선택 삭제
  * 백업 생성 옵션
  * 안전 확인 프롬프트

변경 파일:
- README.md: Headscale 섹션 업데이트
  * 자동 등록 스크립트 설명 추가
  * 테스트 데이터 정리 가이드 링크 추가

사용 예시:
```bash
# 대화형 정리
bash cleanup-test-data.sh

# 원격 실행
curl -fsSL https://.../cleanup-test-data.sh | bash
```

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:44:05 +00:00
Claude
38c6257180 fix: 기본 비밀번호를 8자로 변경 (gateway 최소 길이 요구사항)
Gateway API의 비밀번호 최소 길이 검증(8자) 때문에
기존 "1234"에서 "12341234"로 변경

변경 사항:
- PASSWORD 변수: "1234" → "12341234"
- display_login_credentials 출력도 업데이트

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:31:03 +00:00
Claude
c0973c622a fix: stdin 리다이렉션 문제 수정 (curl 파이프 실행 지원)
curl | bash 방식으로 실행 시 read 명령어가 stdin을 읽을 수 없는 문제 수정
모든 사용자 입력을 /dev/tty에서 읽도록 변경

변경 사항:
- collect_pharmacy_info() 함수의 모든 read 명령어에 </dev/tty 추가
- 이제 스크립트를 파이프로 실행해도 사용자 입력 가능

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:22:59 +00:00
Claude
9c9a25218e fix: VPN IP 확인 명령어 수정 (tailscale ip -4 사용)
문제:
- tailscale status --json으로 파싱 시도했으나 동작하지 않음
- VPN IP 할당 대기 중 10초 타임아웃 발생

해결:
- 기존 스크립트와 동일하게 'tailscale ip -4' 명령어 사용
- JSON 파싱 불필요, 직접 IPv4 주소 반환

테스트:
- tailscale ip -4 명령어로 즉시 IP 확인 가능
- 100.64.0.14 형식의 IP 정상 출력

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 10:15:48 +00:00
Claude
7020339867 feat: 자동 등록 스크립트를 별도 파일로 분리
변경사항:
- headscale-quick-install.sh: 기존 스크립트 유지 (단순 VPN 등록만)
- headscale-auto-register.sh: 새로운 자동 등록 스크립트 (NEW!)

headscale-auto-register.sh 기능:
- Headscale VPN 자동 등록
- VPN IP 자동 확인 (10초 재시도)
- 약국 정보 수집 (약국명 필수)
- farmq.db에 약국 자동 생성 (demo.pharmq.kr)
- gateway.db에 admin 계정 자동 생성 (gateway.pharmq.kr)
- 로그인 정보 출력 (아이디: p{code}, 비밀번호: 1234)

사용법:
# 기존 방식 (VPN만 등록)
curl -fsSL https://git.0bin.in/.../headscale-quick-install.sh | bash

# 새로운 방식 (VPN + 약국 + 계정 자동 생성)
curl -fsSL https://git.0bin.in/.../headscale-auto-register.sh | bash

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 09:46:51 +00:00
Claude
9d4142ddb6 feat: Headscale 자동 등록 시 약국 및 계정 자동 생성
주요 변경사항:
- 약국 정보 수집 함수 추가 (collect_pharmacy_info)
- VPN IP 자동 확인 함수 추가 (get_assigned_vpn_ip)
- farmq-admin API 호출 함수 추가 (create_pharmacy_via_api)
- gateway API 호출 함수 추가 (create_gateway_user_via_api)
- 로그인 정보 출력 함수 추가 (display_login_credentials)

플로우:
1. Headscale VPN 등록
2. VPN IP 자동 확인 (최대 10초 대기)
3. 약국 정보 수집 (약국명 필수, 나머지 선택)
4. farmq.db에 약국 생성 (https://demo.pharmq.kr/api/pharmacy)
5. gateway.db에 admin 계정 생성 (https://gateway.pharmq.kr/api/auth/register)
6. 로그인 정보 출력 (아이디: p{pharmacy_code}, 비밀번호: 1234)

API 엔드포인트:
- farmq-admin: https://demo.pharmq.kr/api/pharmacy
- gateway: https://gateway.pharmq.kr/api/auth/register

백업 파일: headscale-quick-install.sh.backup

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 09:45:15 +00:00
Claude
60be9daff4 docs: headscale 자동 등록 개선 계획 문서 추가
추가된 문서:
- SCRIPT_IMPROVEMENT_PLAN.md: 스크립트 개선 계획
- FARMQ_ADMIN_INTEGRATION_ANALYSIS.md: farmq-admin API 분석
- HEADSCALE_AUTO_REGISTER_PLAN.md: 초기 계획

주요 내용:
- Headscale VPN 등록 시 자동 DB 생성
- API 엔드포인트: demo.pharmq.kr, gateway.pharmq.kr

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 09:40:54 +00:00
7a793ea77d Update README with PVE hostname changer guide
README 문서 업데이트:
- Proxmox VE 호스트명/FQDN 변경 섹션 추가
- 빠른 실행 명령어 제공
- 주요 기능 및 주의사항 안내
- 대화형 호스트명 변경 도구 소개

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 06:01:10 +00:00
ffa955a64f Add Proxmox VE hostname/FQDN changer script
Proxmox VE 호스트명/FQDN 안전 변경 스크립트 추가:
- 현재 설정 확인 및 백업 기능
- 호스트명/도메인 입력 검증
- /etc/hostname, /etc/hosts 자동 수정
- hostnamectl 적용
- Proxmox 서비스 재시작
- 인증서 자동 재발급
- 변경사항 검증 및 롤백 가이드
- 대화형 UI로 안전한 변경 지원

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 06:00:31 +00:00
912410ba90 Update README with Headscale and PBS installation guides
README 문서 업데이트:
- Headscale 빠른 설치 섹션 추가
- PBS 올인원 설치 섹션 추가
- 각 스크립트별 빠른 설치 명령어 제공
- 설치 내용 및 사용 방법 안내

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 04:50:59 +00:00
a45be35543 Add headscale quick installation script
헤드스케일 빠른 설치 스크립트 추가:
- Tailscale 대체 헤드스케일 클라이언트 등록
- PBS 서버 등록 전 필수 네트워크 설정
- Proxmox 환경을 위한 헤드스케일 통합

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 04:46:42 +00:00
187c90e29e Add PBS all-in-one installation script
Proxmox Backup Server 올인원 설치 스크립트 추가:
- PBS 저장소 설정
- PBS 패키지 설치
- PBS 저장소 생성 및 마운트
- 방화벽 설정
- Proxmox VE PBS 통합

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 04:37:03 +00:00
e309524709 Add Tailscale_TUN_Fix_25_11_02.md 2025-11-03 23:22:41 +09:00
1baba8626b docs: Update README with separate installation commands
 변경사항:
- code-server 설치 명령어를 각각 분리된 코드 블록으로 구성
- URL을 현재 리포지토리(pve9-repo-fix)로 변경
- Claude Code CLI 설치 섹션 추가

📝 개선사항:
- 복사하기 버튼으로 각 명령어 개별 복사 가능
- 기본 설치 / 포트 지정 / 무인 설치 명령어 분리
- 수동 설치 가이드 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 23:16:56 +09:00
2780b5cf14 feat: Add code-server installation and setup script
 새로운 기능:
- code-server 자동 설치 (미설치 시)
- 설정 파일 자동 생성 및 구성
- 기존 프로세스 정리 (중복 실행 방지)
- 0.0.0.0 바인딩으로 외부 접속 가능
- nohup 백그라운드 실행 (세션 종료 후에도 유지)

🛠️ 사용 방법:
- 기본 포트(8080): ./code-server.sh
- 포트 지정: PORT=8443 ./code-server.sh
- 무인 설치: PASSWORD="pass" SKIP_CONFIRM=1 ./code-server.sh

🔧 주요 기능:
- systemd 미사용 (수동 관리)
- 설정 백업 자동 생성
- 프로세스 안전 종료 후 재시작

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 23:14:31 +09:00
b661f79ecd feat: Add Claude Code CLI installation script
 새로운 기능:
- Node.js 20.x LTS 자동 설치
- npm 포함 설치
- Claude Code CLI 글로벌 설치
- 설치 확인 및 버전 출력

🛠️ 기술 스택:
- Bash script
- NodeSource repository
- npm global package

🔧 사용 방법:
./install-claude-code.sh

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 23:13:41 +09:00
d49f92e526 Update README.md 2025-11-03 23:08:27 +09:00
9cbb971b6d 초기 커밋: Proxmox VE 9.0 저장소 설정 수정 스크립트
 주요 기능:
- Proxmox VE 9.0에서 apt update 오류 해결
- No-subscription 저장소 자동 구성
- Enterprise 저장소 자동 비활성화
- Ceph 저장소 설정 (기본 비활성)

🛠️ 포함 파일:
- fix-pve9-repos.sh: 자동 설정 스크립트
- README.md: 한글 설치 가이드 및 사용법

📦 설치 방법:
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh | bash

🔧 해결하는 문제:
- PVE 8.0 post-install 스크립트가 9.0에서 작동하지 않는 문제
- Debian 13 Trixie 기반 저장소 설정 오류
- apt update 실행 시 발생하는 인증 오류

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 08:14:06 +00:00