- install-rdp-api.sh: curl 원라이너 설치 지원 - requirements.txt 의존성 제거 (패키지 버전 스크립트 내장) - rdp-toggle-api.py Gitea에서 자동 다운로드 - 상세한 설치 완료 메시지 추가 - RDP/README.md: 완전히 재구성 - curl 원라이너 설치 가이드 추가 - API 엔드포인트 상세 설명 및 응답 예시 - React 프론트엔드 연동 예시 개선 - 문제 해결 섹션 추가 - 네트워크 설정 및 방화벽 가이드 - README.md: RDP 자동화 섹션 추가 - Proxmox RDP 초기 설정 스크립트 소개 - RDP Toggle API 설치 가이드 - API 사용 예시 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
332 lines
8.9 KiB
Markdown
332 lines
8.9 KiB
Markdown
# Proxmox VE 9.0 Repository Fix
|
|
|
|
Proxmox VE 9.0 (Debian 13 Trixie 기반)에서 `apt update`가 제대로 작동하지 않는 문제를 해결하는 스크립트입니다.
|
|
|
|
## 문제 상황
|
|
|
|
- Proxmox VE 8.0의 post-install 스크립트가 9.0에서 제대로 작동하지 않음
|
|
- Enterprise repository 설정 문제로 `apt update` 실패
|
|
- No-subscription repository가 올바르게 구성되지 않음
|
|
|
|
## 해결 방법
|
|
|
|
이 스크립트는 자동으로 다음 작업을 수행합니다:
|
|
|
|
- ✅ No-subscription repository 활성화 (deb822 형식)
|
|
- ✅ Enterprise repository 비활성화
|
|
- ✅ Ceph no-subscription repository 설정 (기본 비활성)
|
|
- ✅ 중복되거나 잘못된 repository 항목 정리
|
|
- ✅ Package list 업데이트
|
|
|
|
## 빠른 설치
|
|
|
|
Proxmox VE 9.0 shell에서 다음 명령어를 실행하세요:
|
|
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh | bash
|
|
```
|
|
|
|
### 또는 다운로드 후 실행
|
|
|
|
```bash
|
|
wget https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh
|
|
chmod +x fix-pve9-repos.sh
|
|
./fix-pve9-repos.sh
|
|
```
|
|
|
|
## 수동 실행
|
|
|
|
스크립트를 검토한 후 실행하고 싶다면:
|
|
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/fix-pve9-repos.sh -o fix-pve9-repos.sh
|
|
cat fix-pve9-repos.sh # 스크립트 내용 확인
|
|
chmod +x fix-pve9-repos.sh
|
|
sudo ./fix-pve9-repos.sh
|
|
```
|
|
|
|
## 설정 내용
|
|
|
|
### 생성/수정되는 파일
|
|
|
|
- `/etc/apt/sources.list.d/proxmox.sources` - PVE no-subscription repository (활성화)
|
|
- `/etc/apt/sources.list.d/ceph.sources` - Ceph no-subscription repository (비활성화)
|
|
- Enterprise repository 항목들 자동 비활성화
|
|
|
|
### Repository 구성
|
|
|
|
**활성화됨:**
|
|
```
|
|
Types: deb
|
|
URIs: http://download.proxmox.com/debian/pve
|
|
Suites: trixie
|
|
Components: pve-no-subscription
|
|
```
|
|
|
|
**비활성화됨:**
|
|
- Enterprise repositories (`enterprise.proxmox.com`)
|
|
- Ceph repository (필요시 수동으로 활성화 가능)
|
|
|
|
## 실행 후 확인
|
|
|
|
스크립트 실행 후 다음 명령어로 정상 작동을 확인하세요:
|
|
|
|
```bash
|
|
apt update
|
|
apt list --upgradable
|
|
```
|
|
|
|
## 주의사항
|
|
|
|
- 이 스크립트는 **Proxmox VE 9.0 (Debian 13 Trixie)** 전용입니다
|
|
- Enterprise subscription이 있다면 이 스크립트를 사용하지 마세요
|
|
- Root 권한이 필요합니다
|
|
|
|
## Ceph 활성화 (선택사항)
|
|
|
|
Ceph를 사용한다면 다음 명령어로 활성화하세요:
|
|
|
|
```bash
|
|
sed -i 's/Enabled: no/Enabled: yes/' /etc/apt/sources.list.d/ceph.sources
|
|
apt update
|
|
```
|
|
|
|
## 문제 해결
|
|
|
|
### apt update가 여전히 실패하는 경우
|
|
|
|
```bash
|
|
# Repository 설정 확인
|
|
cat /etc/apt/sources.list.d/proxmox.sources
|
|
|
|
# 키링 재설치
|
|
apt-get install --reinstall proxmox-archive-keyring
|
|
|
|
# 다시 업데이트
|
|
apt-get update
|
|
```
|
|
|
|
### Enterprise repository 경고가 계속 나오는 경우
|
|
|
|
```bash
|
|
# Enterprise repository 완전 비활성화 확인
|
|
grep -r "enterprise.proxmox.com" /etc/apt/sources.list.d/
|
|
```
|
|
## 💻 개발 환경 설정 (code-server)
|
|
|
|
서버에서 **웹 기반 VS Code 개발 환경**을 빠르게 구축:
|
|
|
|
### 기본 설치 (포트 8080)
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/code-server.sh | bash
|
|
```
|
|
|
|
### 포트 지정 설치
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/code-server.sh | PORT=8443 bash
|
|
```
|
|
|
|
### 무인 설치 (비밀번호 환경변수)
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/code-server.sh | PASSWORD="your-secure-password" SKIP_CONFIRM=1 bash
|
|
```
|
|
|
|
### 자동 설치 기능
|
|
- ✅ **code-server 자동 설치** (미설치 시)
|
|
- ✅ **설정 파일 자동 생성** 및 구성
|
|
- ✅ **기존 프로세스 정리** (중복 실행 방지)
|
|
- ✅ **0.0.0.0 바인딩** (외부 접속 가능)
|
|
- ✅ **nohup 백그라운드 실행** (세션 종료 후에도 유지)
|
|
|
|
### 설치 후 접속
|
|
```bash
|
|
# 브라우저에서 접속
|
|
http://<서버IP>:8080
|
|
```
|
|
|
|
## 🤖 Claude Code CLI 설치
|
|
|
|
**AI 기반 개발 도구**를 서버에 설치:
|
|
|
|
### 기본 설치
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/install-claude-code.sh | bash
|
|
```
|
|
|
|
### 수동 설치 (스크립트 확인 후 실행)
|
|
```bash
|
|
wget https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/install-claude-code.sh
|
|
chmod +x install-claude-code.sh
|
|
./install-claude-code.sh
|
|
```
|
|
|
|
### 설치 내용
|
|
- ✅ **Node.js 20.x LTS** 자동 설치
|
|
- ✅ **npm** 포함 설치
|
|
- ✅ **Claude Code CLI** 글로벌 설치
|
|
- ✅ 설치 확인 및 버전 출력
|
|
|
|
### 사용 방법
|
|
```bash
|
|
claude-code # Claude Code 시작
|
|
claude-code --help # 도움말 보기
|
|
```
|
|
|
|
## 🌐 Headscale VPN 등록 및 약국 자동 생성
|
|
|
|
**Headscale VPN 등록 + 약국/계정 자동 생성** 올인원 스크립트:
|
|
|
|
### 자동 등록 스크립트 (권장)
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/headscale-auto-register.sh | bash
|
|
```
|
|
|
|
**기능:**
|
|
- ✅ Headscale VPN 자동 등록
|
|
- ✅ farmq.db에 약국 자동 생성 (P0003, P0004...)
|
|
- ✅ gateway.db에 관리자 계정 자동 생성
|
|
- ✅ 즉시 프론트엔드 로그인 가능
|
|
- ✅ 로그인 정보 자동 출력
|
|
|
|
### VPN만 등록 (계정 생성 없이)
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/headscale-quick-install.sh | bash
|
|
```
|
|
|
|
**기능:**
|
|
- ✅ Headscale 클라이언트 등록만 수행
|
|
- ✅ PBS 서버 등록 전 필수 네트워크 설정
|
|
- ✅ Proxmox 환경 통합
|
|
|
|
### 테스트 데이터 정리
|
|
스크립트 테스트 후 생성된 데이터 정리:
|
|
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/cleanup-test-data.sh | bash
|
|
```
|
|
|
|
**또는:**
|
|
|
|
```bash
|
|
bash /srv/install_scripts/pve9-repo-fix/cleanup-test-data.sh
|
|
```
|
|
|
|
**정리 내용:**
|
|
- 🗑️ farmq.db에서 P0003 이후 테스트 약국 삭제
|
|
- 🗑️ gateway.db에서 ID 5 이후 테스트 사용자 삭제
|
|
- 🗑️ Headscale 테스트 노드 삭제 (선택)
|
|
- 💾 백업 생성 옵션
|
|
|
|
📖 **자세한 정리 가이드**: [CLEANUP_TEST_DATA.md](CLEANUP_TEST_DATA.md)
|
|
|
|
## 💾 Proxmox Backup Server 올인원 설치
|
|
|
|
**PBS 서버 구축 및 Proxmox VE 통합**을 한 번에:
|
|
|
|
### 빠른 설치
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/pbs_allinone.sh | bash
|
|
```
|
|
|
|
### 수동 설치
|
|
```bash
|
|
wget https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/pbs_allinone.sh
|
|
chmod +x pbs_allinone.sh
|
|
./pbs_allinone.sh
|
|
```
|
|
|
|
### 설치 내용
|
|
- ✅ **PBS 저장소 설정** (no-subscription)
|
|
- ✅ **PBS 패키지 설치**
|
|
- ✅ **백업 저장소 생성 및 마운트**
|
|
- ✅ **방화벽 설정** (포트 8007)
|
|
- ✅ **Proxmox VE PBS 통합**
|
|
|
|
### 설치 후 접속
|
|
```bash
|
|
# 브라우저에서 PBS 웹 인터페이스 접속
|
|
https://<서버IP>:8007
|
|
```
|
|
|
|
## 🏷️ Proxmox VE 호스트명/FQDN 변경
|
|
|
|
**Proxmox 설치 후 안전하게 호스트명 및 FQDN 변경**:
|
|
|
|
### 빠른 실행
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/pve-host-changer.sh | bash
|
|
```
|
|
|
|
### 수동 실행
|
|
```bash
|
|
wget https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/pve-host-changer.sh
|
|
chmod +x pve-host-changer.sh
|
|
./pve-host-changer.sh
|
|
```
|
|
|
|
### 주요 기능
|
|
- ✅ **현재 설정 확인** 및 백업
|
|
- ✅ **호스트명/도메인 입력 검증**
|
|
- ✅ **자동 설정 파일 수정** (/etc/hostname, /etc/hosts)
|
|
- ✅ **Proxmox 서비스 재시작**
|
|
- ✅ **인증서 자동 재발급**
|
|
- ✅ **변경사항 검증** 및 롤백 가이드
|
|
|
|
### 주의사항
|
|
- 단독 노드(Single node)에서는 안전하게 변경 가능
|
|
- 클러스터 구성 시 신중하게 진행 필요
|
|
- 변경 후 시스템 재부팅 권장
|
|
|
|
## 🖥️ Proxmox RDP 자동화
|
|
|
|
**Proxmox 호스트에서 RDP 자동 연결 및 원격 제어**:
|
|
|
|
### RDP 초기 설정 (부팅 시 자동 연결)
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/RDP/proxmox-auto-rdp-setup.sh | bash
|
|
```
|
|
|
|
**기능:**
|
|
- ✅ 부팅 시 자동으로 RDP 서버에 연결
|
|
- ✅ 풀스크린 RDP 세션
|
|
- ✅ X Window + Openbox 자동 설정
|
|
- ✅ FreeRDP3 클라이언트 설치
|
|
|
|
### RDP Toggle API 설치 (원격 모드 전환)
|
|
```bash
|
|
curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/RDP/install-rdp-api.sh | bash
|
|
```
|
|
|
|
**기능:**
|
|
- ✅ **REST API로 RDP/Shell 모드 전환**
|
|
- ✅ FastAPI 기반 서버 (포트 8090)
|
|
- ✅ 프론트엔드 통합 가능 (CORS 지원)
|
|
- ✅ 실시간 상태 모니터링
|
|
- ✅ 설정 동적 변경 (API로 RDP 서버 정보 변경)
|
|
|
|
### API 사용 예시
|
|
```bash
|
|
# 현재 상태 확인
|
|
curl http://localhost:8090/status
|
|
|
|
# RDP 모드로 전환
|
|
curl -X POST http://localhost:8090/toggle \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{"mode":"rdp"}'
|
|
|
|
# Shell 모드로 전환
|
|
curl -X POST http://localhost:8090/toggle \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{"mode":"shell"}'
|
|
```
|
|
|
|
📖 **자세한 가이드**: [RDP/README.md](RDP/README.md)
|
|
|
|
## 라이선스
|
|
|
|
MIT License
|
|
|
|
## 기여
|
|
|
|
Issues 및 Pull Requests는 언제나 환영합니다!
|