diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 6601e89..ca0b572 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -44,7 +44,10 @@ "Bash(scp:*)", "Bash(cat:*)", "Bash(./deploy-manual.sh)", - "Bash(npm install)" + "Bash(npm install)", + "Bash(powershell:*)", + "Bash(schtasks:*)", + "Bash(cmd //c:*)" ], "deny": [], "ask": [], diff --git a/JaryoAutoStart.xml b/JaryoAutoStart.xml new file mode 100644 index 0000000..4eda183 --- /dev/null +++ b/JaryoAutoStart.xml @@ -0,0 +1,45 @@ + + + + 2025-08-22T01:20:00 + COMTREE + Jaryo File Manager 자동 시작 작업 + + + + true + PT30S + + + + + S-1-5-18 + HighestAvailable + + + + IgnoreNew + false + false + true + true + false + + false + false + + true + true + false + false + false + PT0S + 7 + + + + C:\Users\COMTREE\claude_code\jaryo\start-simple.bat + C:\Users\COMTREE\claude_code\jaryo + + + \ No newline at end of file diff --git a/README_AUTO_START.md b/README_AUTO_START.md new file mode 100644 index 0000000..c61f907 --- /dev/null +++ b/README_AUTO_START.md @@ -0,0 +1,101 @@ +# Jaryo File Manager 자동 시작 설정 가이드 + +## 🚀 자동 시작 설정 방법 + +### 방법 1: 배치 파일 실행 (권장) + +1. **관리자 권한으로 실행** + - `install-auto-startup.bat` 파일을 마우스 우클릭 + - "관리자 권한으로 실행" 선택 + - 안내에 따라 진행 + +2. **설정 완료 후** + - 컴퓨터 재시작 시 자동으로 서비스 시작 + - 서비스 URL: http://99.1.110.50:3005 + +### 방법 2: 수동 작업 스케줄러 설정 + +1. **작업 스케줄러 열기** + - Windows 키 + R → `taskschd.msc` 입력 → 엔터 + +2. **기본 작업 만들기** + - 오른쪽 패널에서 "기본 작업 만들기" 클릭 + - 이름: `JaryoFileManagerAutoStart` + - 설명: `Jaryo File Manager 자동 시작` + +3. **트리거 설정** + - "컴퓨터를 시작할 때" 선택 + +4. **동작 설정** + - "프로그램 시작" 선택 + - 프로그램/스크립트: `C:\Users\COMTREE\claude_code\jaryo\start-jaryo-service.bat` + - 시작 위치: `C:\Users\COMTREE\claude_code\jaryo` + +5. **고급 설정** + - "가장 높은 권한으로 실행" 체크 + - "작업이 이미 실행 중인 경우 규칙": "새 인스턴스 시작 안 함" + +## 🔧 서비스 관리 명령어 + +### 수동 서비스 제어 +```batch +# 서비스 시작 +start-jaryo-service.bat + +# 서비스 중지 +stop-jaryo-service.bat +``` + +### 자동 시작 관리 +```batch +# 자동 시작 설정 +install-auto-startup.bat (관리자 권한 필요) + +# 자동 시작 해제 +uninstall-auto-startup.bat (관리자 권한 필요) +``` + +### 작업 스케줄러 명령어 +```cmd +# 작업 상태 확인 +schtasks /query /tn "JaryoFileManagerAutoStart" + +# 작업 수동 실행 +schtasks /run /tn "JaryoFileManagerAutoStart" + +# 작업 삭제 +schtasks /delete /tn "JaryoFileManagerAutoStart" /f +``` + +## 🌐 접속 정보 + +- **관리자 페이지**: http://99.1.110.50:3005/admin/index.html +- **메인 페이지**: http://99.1.110.50:3005/index.html +- **API**: http://99.1.110.50:3005/api/files +- **상태 확인**: http://99.1.110.50:3005/health + +## 📁 로그 확인 + +- **로그 파일**: `C:\Users\COMTREE\claude_code\jaryo\logs\app.log` +- **로그 보기**: `type "C:\Users\COMTREE\claude_code\jaryo\logs\app.log"` + +## ⚠️ 문제 해결 + +### 서비스가 시작되지 않는 경우 +1. Node.js가 설치되어 있는지 확인: `node --version` +2. 프로젝트 디렉토리가 올바른지 확인 +3. 포트 3005가 사용 중인지 확인: `netstat -an | findstr :3005` +4. 로그 파일 확인 + +### 자동 시작이 작동하지 않는 경우 +1. 작업 스케줄러에서 작업 상태 확인 +2. 관리자 권한으로 설정했는지 확인 +3. 배치 파일 경로가 올바른지 확인 + +## 📞 지원 + +문제가 발생하면 다음을 확인해주세요: +1. 로그 파일 내용 +2. 작업 스케줄러 작업 상태 +3. 포트 사용 현황 +4. Node.js 설치 상태 \ No newline at end of file diff --git a/install-auto-startup.bat b/install-auto-startup.bat new file mode 100644 index 0000000..6cbd9f8 --- /dev/null +++ b/install-auto-startup.bat @@ -0,0 +1,66 @@ +@echo off +REM Windows 작업 스케줄러를 사용한 자동 시작 설정 스크립트 +REM 관리자 권한으로 실행 필요 + +echo === Jaryo File Manager 자동 시작 설정 === +echo. + +REM 관리자 권한 확인 +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo 오류: 이 스크립트는 관리자 권한으로 실행해야 합니다. + echo 마우스 우클릭 후 "관리자 권한으로 실행"을 선택해주세요. + pause + exit /b 1 +) + +set PROJECT_DIR=C:\Users\COMTREE\claude_code\jaryo +set TASK_NAME=JaryoFileManagerAutoStart + +echo 프로젝트 디렉토리: %PROJECT_DIR% +echo 작업 이름: %TASK_NAME% +echo. + +REM 기존 작업이 있으면 삭제 +schtasks /query /tn "%TASK_NAME%" >nul 2>&1 +if %errorlevel% equ 0 ( + echo 기존 자동 시작 작업을 제거합니다... + schtasks /delete /tn "%TASK_NAME%" /f +) + +REM 새로운 자동 시작 작업 생성 +echo 새로운 자동 시작 작업을 생성합니다... + +REM 시스템 시작 시 실행되는 작업 생성 +schtasks /create /tn "%TASK_NAME%" ^ + /tr "\"%PROJECT_DIR%\start-jaryo-service.bat\"" ^ + /sc onstart ^ + /ru "SYSTEM" ^ + /rl highest ^ + /f + +if %errorlevel% equ 0 ( + echo. + echo ✅ 자동 시작 작업이 성공적으로 생성되었습니다! + echo. + echo === 설정 정보 === + echo 작업 이름: %TASK_NAME% + echo 실행 파일: %PROJECT_DIR%\start-jaryo-service.bat + echo 트리거: 시스템 시작 시 + echo 실행 계정: SYSTEM + echo. + echo === 관리 명령어 === + echo 작업 확인: schtasks /query /tn "%TASK_NAME%" + echo 수동 실행: schtasks /run /tn "%TASK_NAME%" + echo 작업 삭제: schtasks /delete /tn "%TASK_NAME%" /f + echo. + echo 이제 컴퓨터를 재시작하면 Jaryo File Manager가 자동으로 시작됩니다. + echo 서비스 URL: http://99.1.110.50:3005 +) else ( + echo. + echo ❌ 자동 시작 작업 생성에 실패했습니다. + echo 관리자 권한으로 실행했는지 확인해주세요. +) + +echo. +pause \ No newline at end of file diff --git a/install-task.bat b/install-task.bat new file mode 100644 index 0000000..91f2c92 --- /dev/null +++ b/install-task.bat @@ -0,0 +1,53 @@ +@echo off +REM 작업 스케줄러에 XML 파일로 작업 등록 +echo === Jaryo File Manager 자동 시작 설정 === +echo. + +REM 관리자 권한 확인 +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo This script requires administrator privileges. + echo Right-click and select "Run as administrator" + pause + exit /b 1 +) + +set TASK_NAME=JaryoFileManagerAutoStart +set XML_FILE=%~dp0JaryoAutoStart.xml + +echo Task Name: %TASK_NAME% +echo XML File: %XML_FILE% +echo. + +REM 기존 작업 삭제 (있는 경우) +schtasks /query /tn "%TASK_NAME%" >nul 2>&1 +if %errorlevel% equ 0 ( + echo Removing existing task... + schtasks /delete /tn "%TASK_NAME%" /f +) + +REM XML 파일로 작업 생성 +echo Creating new auto-start task... +schtasks /create /tn "%TASK_NAME%" /xml "%XML_FILE%" + +if %errorlevel% equ 0 ( + echo. + echo SUCCESS: Auto-start task created successfully! + echo. + echo Task Name: %TASK_NAME% + echo Service URL: http://99.1.110.50:3005 + echo. + echo The service will start automatically on system boot. +) else ( + echo. + echo ERROR: Failed to create auto-start task. + echo Please run this script as administrator. +) + +echo. +echo Management commands: +echo Check task: schtasks /query /tn "%TASK_NAME%" +echo Run task: schtasks /run /tn "%TASK_NAME%" +echo Delete task: schtasks /delete /tn "%TASK_NAME%" /f +echo. +pause \ No newline at end of file diff --git a/server.js b/server.js index f82c3d5..d6d405c 100644 --- a/server.js +++ b/server.js @@ -827,11 +827,11 @@ module.exports = app; // 로컬 개발 환경에서만 서버 시작 if (process.env.NODE_ENV !== 'production' || process.env.VERCEL !== '1') { - const server = app.listen(PORT, () => { + const server = app.listen(PORT, '99.1.110.50', () => { console.log(`🚀 자료실 서버가 포트 ${PORT}에서 실행중입니다.`); - console.log(`📱 Admin 페이지: http://localhost:${PORT}/admin/index.html`); - console.log(`🌐 Main 페이지: http://localhost:${PORT}/index.html`); - console.log(`📊 API: http://localhost:${PORT}/api/files`); + console.log(`📱 Admin 페이지: http://99.1.110.50:${PORT}/admin/index.html`); + console.log(`🌐 Main 페이지: http://99.1.110.50:${PORT}/index.html`); + console.log(`📊 API: http://99.1.110.50:${PORT}/api/files`); }); // 대용량 파일 다운로드를 위해 서버 타임아웃을 30분으로 설정 diff --git a/start-jaryo-service.bat b/start-jaryo-service.bat new file mode 100644 index 0000000..5f2a761 --- /dev/null +++ b/start-jaryo-service.bat @@ -0,0 +1,84 @@ +@echo off +REM Windows용 Jaryo File Manager 자동 시작 스크립트 +REM 사용법: start-jaryo-service.bat + +echo === Jaryo File Manager 서비스 시작 === +echo 시작 시간: %date% %time% + +REM 프로젝트 디렉토리 설정 +set PROJECT_DIR=C:\Users\COMTREE\claude_code\jaryo +set LOG_FILE=%PROJECT_DIR%\logs\app.log +set PID_FILE=%PROJECT_DIR%\app.pid + +echo 프로젝트 디렉토리: %PROJECT_DIR% +echo 로그 파일: %LOG_FILE% + +REM 로그 디렉토리 생성 +if not exist "%PROJECT_DIR%\logs" mkdir "%PROJECT_DIR%\logs" + +REM 프로젝트 디렉토리로 이동 +cd /d "%PROJECT_DIR%" || ( + echo 오류: 프로젝트 디렉토리를 찾을 수 없습니다: %PROJECT_DIR% + pause + exit /b 1 +) + +REM Node.js와 npm 경로 확인 +where node >nul 2>&1 +if %errorlevel% neq 0 ( + echo 오류: Node.js가 설치되지 않았거나 PATH에 없습니다. + pause + exit /b 1 +) + +REM 의존성 설치 확인 +if not exist "node_modules" ( + echo 의존성 설치 중... + npm install +) + +REM 기존 프로세스 종료 (PID 파일이 있으면) +if exist "%PID_FILE%" ( + echo 기존 프로세스 종료 중... + call stop-jaryo-service.bat + timeout /t 3 /nobreak >nul +) + +REM 서비스 시작 (백그라운드에서 실행) +echo 서비스 시작 중... +start "" /min cmd /c "node server.js >> "%LOG_FILE%" 2>&1" + +REM 프로세스 ID 저장을 위해 잠시 대기 +timeout /t 2 /nobreak >nul + +REM 실행 중인 프로세스 확인 +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq node.exe" /fo csv /nh ^| findstr server.js') do ( + echo %%i > "%PID_FILE%" + echo 서비스가 시작되었습니다. PID: %%i + goto :found +) + +REM PID를 찾지 못한 경우 (다른 방법으로 확인) +wmic process where "name='node.exe' and commandline like '%%server.js%%'" get processid /value 2>nul | findstr "ProcessId" > temp_pid.txt +if exist temp_pid.txt ( + for /f "tokens=2 delims==" %%i in (temp_pid.txt) do ( + echo %%i > "%PID_FILE%" + echo 서비스가 시작되었습니다. PID: %%i + del temp_pid.txt + goto :found + ) + del temp_pid.txt +) + +echo 프로세스 ID를 확인할 수 없습니다. 수동으로 확인해주세요. + +:found +echo. +echo === 서비스 정보 === +echo 관리자 페이지: http://99.1.110.50:3005/admin/index.html +echo 메인 페이지: http://99.1.110.50:3005/index.html +echo API: http://99.1.110.50:3005/api/files +echo 로그 확인: type "%LOG_FILE%" +echo 서비스 중지: stop-jaryo-service.bat +echo. +echo 서비스가 성공적으로 시작되었습니다. \ No newline at end of file diff --git a/start-simple.bat b/start-simple.bat new file mode 100644 index 0000000..a56c9e6 --- /dev/null +++ b/start-simple.bat @@ -0,0 +1,4 @@ +@echo off +cd /d "C:\Users\COMTREE\claude_code\jaryo" +echo Starting Jaryo File Manager... +node server.js \ No newline at end of file diff --git a/stop-jaryo-service.bat b/stop-jaryo-service.bat new file mode 100644 index 0000000..5067ac3 --- /dev/null +++ b/stop-jaryo-service.bat @@ -0,0 +1,65 @@ +@echo off +REM Windows용 Jaryo File Manager 서비스 중지 스크립트 +REM 사용법: stop-jaryo-service.bat + +echo === Jaryo File Manager 서비스 중지 === +echo 중지 시간: %date% %time% + +set PROJECT_DIR=C:\Users\COMTREE\claude_code\jaryo +set PID_FILE=%PROJECT_DIR%\app.pid + +REM PID 파일이 있는 경우 +if exist "%PID_FILE%" ( + for /f %%i in (%PID_FILE%) do ( + echo 프로세스 ID: %%i + echo 서비스 중지 중... + + REM 프로세스 종료 + taskkill /pid %%i /f >nul 2>&1 + if %errorlevel% equ 0 ( + echo 서비스가 중지되었습니다. + ) else ( + echo 프로세스가 이미 종료되었거나 종료할 수 없습니다. + ) + ) + + REM PID 파일 삭제 + del "%PID_FILE%" +) else ( + echo PID 파일을 찾을 수 없습니다. Node.js 프로세스를 직접 확인합니다. +) + +REM 실행 중인 모든 관련 Node.js 프로세스 확인 및 종료 +echo. +echo 실행 중인 Jaryo 관련 Node.js 프로세스를 확인합니다... + +REM server.js를 실행하는 모든 node.exe 프로세스 종료 +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq node.exe" /fo table /nh 2^>nul ^| findstr /i "node.exe"') do ( + wmic process where "processid=%%i and commandline like '%%server.js%%'" get commandline /value 2>nul | findstr "server.js" >nul + if not errorlevel 1 ( + echo Jaryo 서비스 프로세스 발견 - PID: %%i + taskkill /pid %%i /f >nul 2>&1 + if not errorlevel 1 ( + echo 프로세스 %%i가 종료되었습니다. + ) + ) +) + +REM cmd 프로세스 중에서 node server.js를 실행하는 것도 확인 +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq cmd.exe" /fo table /nh 2^>nul ^| findstr /i "cmd.exe"') do ( + wmic process where "processid=%%i and commandline like '%%server.js%%'" get commandline /value 2>nul | findstr "server.js" >nul + if not errorlevel 1 ( + echo Jaryo 관련 CMD 프로세스 발견 - PID: %%i + taskkill /pid %%i /f >nul 2>&1 + if not errorlevel 1 ( + echo CMD 프로세스 %%i가 종료되었습니다. + ) + ) +) + +echo. +echo === 현재 실행 중인 Node.js 프로세스 === +tasklist /fi "imagename eq node.exe" 2>nul | findstr "node.exe" || echo Node.js 프로세스가 실행되지 않음 + +echo. +echo 서비스 중지가 완료되었습니다. \ No newline at end of file diff --git a/uninstall-auto-startup.bat b/uninstall-auto-startup.bat new file mode 100644 index 0000000..c328d3e --- /dev/null +++ b/uninstall-auto-startup.bat @@ -0,0 +1,54 @@ +@echo off +REM Windows 작업 스케줄러에서 자동 시작 설정 제거 스크립트 +REM 관리자 권한으로 실행 필요 + +echo === Jaryo File Manager 자동 시작 설정 제거 === +echo. + +REM 관리자 권한 확인 +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo 오류: 이 스크립트는 관리자 권한으로 실행해야 합니다. + echo 마우스 우클릭 후 "관리자 권한으로 실행"을 선택해주세요. + pause + exit /b 1 +) + +set TASK_NAME=JaryoFileManagerAutoStart + +echo 작업 이름: %TASK_NAME% +echo. + +REM 작업 존재 여부 확인 +schtasks /query /tn "%TASK_NAME%" >nul 2>&1 +if %errorlevel% neq 0 ( + echo ⚠️ 자동 시작 작업을 찾을 수 없습니다. + echo 이미 제거되었거나 설치되지 않았습니다. + goto :end +) + +REM 현재 실행 중인 서비스 중지 +echo 현재 실행 중인 서비스를 중지합니다... +call "%~dp0stop-jaryo-service.bat" + +echo. +echo 자동 시작 작업을 제거합니다... + +REM 작업 삭제 +schtasks /delete /tn "%TASK_NAME%" /f + +if %errorlevel% equ 0 ( + echo. + echo ✅ 자동 시작 작업이 성공적으로 제거되었습니다! + echo. + echo 이제 컴퓨터를 재시작해도 Jaryo File Manager가 자동으로 시작되지 않습니다. + echo 수동으로 서비스를 시작하려면 start-jaryo-service.bat를 실행하세요. +) else ( + echo. + echo ❌ 자동 시작 작업 제거에 실패했습니다. + echo 관리자 권한으로 실행했는지 확인해주세요. +) + +:end +echo. +pause \ No newline at end of file