Files
updater/php-portal

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