Add Windows auto-startup configuration and NAS deployment
Some checks failed
Deploy to Vercel / deploy (push) Has been cancelled
Deploy to Railway / deploy (push) Has been cancelled

- Add Windows service startup scripts (start/stop-jaryo-service.bat)
- Add auto-startup configuration with Task Scheduler
- Add XML task definition for Windows Task Scheduler
- Update server.js to bind to specific IP (99.1.110.50)
- Add comprehensive auto-startup documentation
- Prepare for NAS deployment with existing scripts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-08-22 10:24:32 +09:00
parent 49d16f0512
commit 6c41f5d883
10 changed files with 480 additions and 5 deletions

View File

@@ -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": [],

45
JaryoAutoStart.xml Normal file
View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2025-08-22T01:20:00</Date>
<Author>COMTREE</Author>
<Description>Jaryo File Manager 자동 시작 작업</Description>
</RegistrationInfo>
<Triggers>
<BootTrigger>
<Enabled>true</Enabled>
<Delay>PT30S</Delay>
</BootTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>false</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Users\COMTREE\claude_code\jaryo\start-simple.bat</Command>
<WorkingDirectory>C:\Users\COMTREE\claude_code\jaryo</WorkingDirectory>
</Exec>
</Actions>
</Task>

101
README_AUTO_START.md Normal file
View File

@@ -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 설치 상태

66
install-auto-startup.bat Normal file
View File

@@ -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

53
install-task.bat Normal file
View File

@@ -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

View File

@@ -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분으로 설정

84
start-jaryo-service.bat Normal file
View File

@@ -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 서비스가 성공적으로 시작되었습니다.

4
start-simple.bat Normal file
View File

@@ -0,0 +1,4 @@
@echo off
cd /d "C:\Users\COMTREE\claude_code\jaryo"
echo Starting Jaryo File Manager...
node server.js

65
stop-jaryo-service.bat Normal file
View File

@@ -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 서비스 중지가 완료되었습니다.

View File

@@ -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