Commit Graph

13 Commits

Author SHA1 Message Date
Claude
9a662c1251 스마트 재실행: 기존 VM/CT/VPN 감지하여 완료된 Phase 자동 스킵
- Phase 4: VM이 이미 존재하면 PBS 복원 스킵 (qm status 체크)
- Phase 5: ubuntu-api CT가 이미 있으면 생성 스킵 (200~299 스캔)
- Phase 6: CT에 Tailscale + API 코드가 있으면 환경 구축 스킵
- PBS 인증 실패 시 exit 대신 스킵 후 계속 진행
- 상태 파일 없이 시스템 상태만 보고 판단

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:22:57 +00:00
Claude
566280f4c5 Fix Phase 7 crash + improve error handling across all phases
- Fixed: farmq.db empty date strings causing API 500 error
- Phase 7: exit 1 → return 1 (skip and continue instead of crash)
- Phase 4/7 failures no longer kill the script
- Error trap now shows current progress info (pharmacy, VPN IP, CT VMID, etc.)
- Helps debugging when script fails mid-execution

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:55:02 +00:00
Claude
dd53e869d0 Fix: VM selection by list number instead of raw backup ID
Users were entering list number (e.g. 4) but script expected backup ID (e.g. 201).
Now maps selection number to actual VM ID via temp file.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:36:43 +00:00
Claude
36fdae3eb1 Don't exit on PBS snapshot not found — skip and continue
VM restore failure should not kill the entire script.
Skip to Phase 5 (CT creation) instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:35:15 +00:00
Claude
f89bbecdcd Fix script crash: remove set -u, handle python exit safely
- set -euo → set -eo (unset var no longer fatal)
- Python snapshot lookup: catch exceptions, use || true
- Prevents script exit on empty PBS responses

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:27:23 +00:00
Claude
394a0b0a7c Fix: empty Enter on VM selection crashes due to set -u (unset variable)
Added || true on read and ${:-} default expansion to handle empty input safely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:23:07 +00:00
Claude
f0900204fb Auto-default storage to local-lvm in non-interactive VM restore mode
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:47:52 +00:00
Claude
8d76dc8da2 Add --vm-id, --vm-vmid, --vm-storage for fully non-interactive PBS restore
Auto-selects VM backup, target VMID, storage, and auto-confirms existing VM deletion.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:44:35 +00:00
Claude
a0e94682bf Add --skip-pbs flag for non-interactive PBS phase
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:42:31 +00:00
Claude
6834612deb Add CLI args support: --name, --hira, --addr, --owner, --phone, --mssql
Allows non-interactive execution via SSH pipe or automation.
Falls back to interactive /dev/tty input when no args provided.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:40:53 +00:00
Claude
d08ff19470 Improve LAN detection: check Headscale port response, not just ping
Ping 192.168.0.100 can false-positive if external pharmacy has a device
at that IP. Now checks if 192.168.0.100:8070 actually responds like Headscale.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 14:48:21 +00:00
Claude
985ec18651 Fix Headscale connection: auto-detect LAN vs external network
Same-LAN PVE hosts can't reach head.pharmq.kr via public IP (NAT hairpinning).
Script now pings 192.168.0.100 to detect LAN and uses direct IP:8070 instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 14:45:58 +00:00
Claude
d0cd2b1137 Add unified PharmQ PVE setup script + design doc
Single script that handles: PVE repo fix, Tailscale/Headscale VPN registration,
PBS Windows VM restore, Ubuntu CT creation with API environment,
pharmacy + device registration in farmq.db, and gateway account creation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 14:31:05 +00:00