PHP Portal - 업데이트 관리 시스템
📋 개요
범용 프로젝트 업데이트 파일을 관리하는 웹 기반 포털입니다.
🔑 주요 기능
1. 프로젝트 관리
- 프로젝트 목록 조회 및 편집
- 카테고리별 그룹화
- 버전 정보 관리
- 파일 업로드 (드래그 앤 드롭 지원)
2. 업데이트 API
publish_update- 새 버전 업로드check_update- 버전 확인 (Public)version- 전체 프로젝트 정보
3. 라이선스 생성
- JWT 기반 라이선스 토큰 생성
- QR 코드 자동 생성
- 카카오톡 공유 기능
🚀 배포 방법
서버 요구사항
- PHP 7.4+
- Apache/Nginx
- 쓰기 권한 (pkgs/, version.json)
초기 설정
# 1. 파일 업로드
scp -r php-portal/* user@update.onetake.best:/home/update/html/
# 2. 권한 설정
chmod 755 /home/update/html
chmod 666 /home/update/html/version.json
chmod 755 /home/update/html/pkgs
설정 파일 (index.php 상단)
$config = [
'admin_id' => 'admin',
'admin_pw' => password_hash('your_password', PASSWORD_DEFAULT),
'api_key' => 'ot_secret_key_2026_v7',
'version_file' => 'version.json',
'upload_dir' => 'pkgs/'
];
📡 API 사용법
업데이트 발행
curl -F "api_key=ot_secret_key_2026_v7" \
-F "id=cm-tv" \
-F "parent=MYPROJECT" \
-F "name=TV Display App" \
-F "versionName=v2.24.1" \
-F "versionCode=2241" \
-F "description=Update description" \
-F "file=@tv-app.apk" \
"https://update.onetake.best/index.php?action=publish_update"
버전 확인
curl "https://update.onetake.best/index.php?action=check_update&id=cm-tv"
🎨 UI 기능
파일 타입 자동 인식
- ANDROID (파란색) - .apk 파일
- WINDOWS (청록색) - .exe 파일
- ARCHIVE (보라색) - .zip 파일
빌드 타입 배지
- DEBUG (주황색) - 디버그 빌드
- RELEASE (녹색) - 릴리스 빌드
- UNSIGNED (빨간색) - 서명되지 않은 빌드
🔒 보안
인증
- 관리자 로그인 (ID/PW)
- API 키 인증
- 세션 기반 인증
파일 업로드
- 파일 크기 제한 체크
- 안전한 파일명 생성
- 디렉토리 자동 생성
📁 디렉토리 구조
php-portal/
├── index.php # 메인 포털 파일
├── version.json # 프로젝트 버전 데이터
├── pkgs/ # 업로드된 패키지 파일
│ ├── cm-tv/
│ ├── cm-controller/
│ ├── cm-sender/
│ └── cm-server/
├── assets/ # CSS, JS 리소스
├── private_key.pem # JWT 서명 키
└── public_key.pem # JWT 검증 키
🔧 유지보수
버전 업데이트
# 포털 자체 업데이트
curl -F "api_key=ot_secret_key_2026_v7" \
-F "id=portal-update" \
-F "parent=SYSTEM" \
-F "file=@index.php" \
"https://update.onetake.best/index.php?action=publish_update"
# 배포 스크립트 실행
curl "https://update.onetake.best/pkgs/portal-update/v8.10/swap_root.php"
백업
# version.json 백업
cp version.json version.json.backup
# 전체 백업
tar -czf portal-backup-$(date +%Y%m%d).tar.gz php-portal/
📊 현재 버전
- Portal: v8.10
- Last Updated: 2026-02-06