4.2 KiB
4.2 KiB
서버 배포 정보
🌐 서버 접속 정보
SSH 접속
Host: update.onetake.best
User: update
Port: 22
서버 경로
웹 루트: /home/update/html/
포털 파일: /home/update/html/index.php
버전 파일: /home/update/html/version.json
업로드 디렉토리: /home/update/html/pkgs/
🔑 인증 정보
관리자 계정
- ID: admin
- Password: (별도 관리)
API 키
ot_secret_key_2026_v7
📤 배포 방법
1. 전체 배포 (초기 설정)
# SCP로 전체 파일 업로드
scp -r php-portal/* update@update.onetake.best:/home/update/html/
# SSH 접속 후 권한 설정
ssh update@update.onetake.best
chmod 755 /home/update/html
chmod 666 /home/update/html/version.json
chmod 755 /home/update/html/pkgs
2. 포털 업데이트 (운영 중)
# 방법 1: API를 통한 업데이트
curl -F "api_key=ot_secret_key_2026_v7" \
-F "id=portal-update" \
-F "parent=SYSTEM" \
-F "name=Portal Update" \
-F "versionName=v8.10" \
-F "versionCode=810" \
-F "file=@php-portal/index.php" \
"https://update.onetake.best/index.php?action=publish_update"
# 방법 2: 직접 SCP
scp php-portal/index.php update@update.onetake.best:/home/update/html/
3. Swap 스크립트 사용
# 1. swap_root.php 업로드
curl -F "api_key=ot_secret_key_2026_v7" \
-F "id=portal-update" \
-F "versionName=v8.10" \
-F "file=@swap_root.php" \
"https://update.onetake.best/index.php?action=publish_update"
# 2. 스크립트 실행으로 배포
curl "https://update.onetake.best/pkgs/portal-update/v8.10/swap_root.php"
🔧 서버 설정
PHP 설정 (php.ini)
upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 300
memory_limit = 512M
Apache/Nginx 설정
# Nginx 예시
client_max_body_size 512M;
📊 디렉토리 구조 (서버)
/home/update/html/
├── index.php # 메인 포털
├── version.json # 버전 데이터
├── pkgs/ # 업로드된 패키지
│ ├── cm-tv/
│ │ └── v2.24.1/
│ │ └── tv-app.apk
│ ├── cm-controller/
│ │ └── v2.26.0/
│ │ └── controller-app.apk
│ ├── cm-sender/
│ │ └── v1.2.0/
│ │ └── PCSenderApp.exe
│ ├── cm-server/
│ │ └── v2.24.1/
│ │ └── server-package.zip
│ └── portal-update/
│ └── v8.10/
│ ├── index.php
│ └── swap_root.php
├── private_key.pem # JWT 서명 키
└── public_key.pem # JWT 검증 키
🛡️ 보안 체크리스트
- SSH 키 기반 인증 설정
- 방화벽 설정 (포트 22, 80, 443만 허용)
- HTTPS 인증서 설정
- 관리자 비밀번호 강화
- API 키 주기적 변경
- 업로드 디렉토리 실행 권한 제거
- version.json 백업 설정
🔄 백업 및 복구
백업
# SSH 접속 후
cd /home/update/html
tar -czf backup-$(date +%Y%m%d).tar.gz \
index.php version.json pkgs/ *.pem
# 로컬로 다운로드
scp update@update.onetake.best:/home/update/html/backup-*.tar.gz ./
복구
# 백업 파일 업로드
scp backup-20260206.tar.gz update@update.onetake.best:/home/update/html/
# SSH 접속 후 압축 해제
ssh update@update.onetake.best
cd /home/update/html
tar -xzf backup-20260206.tar.gz
📝 로그 확인
Apache 로그
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log
PHP 에러 로그
tail -f /var/log/php/error.log
🚨 트러블슈팅
업로드 실패
- 파일 크기 제한 확인 (php.ini)
- 디렉토리 권한 확인 (755/666)
- 디스크 공간 확인 (
df -h)
포털 접속 불가
- Apache/Nginx 상태 확인 (
systemctl status apache2) - PHP-FPM 상태 확인 (
systemctl status php-fpm) - 방화벽 설정 확인 (
ufw status)
version.json 손상
- 백업에서 복구
- 또는 빈 구조로 초기화:
{
"categories": ["GENERAL", "SYSTEM"],
"projects": []
}
📞 연락처
서버 관리: update@onetake.best