Skip to content

Windows 부팅 자동 시작

원본 다운로드: Markdown · PDF

작성: 2026-07-20
갱신: 2026-07-26
목적: Windows 시작 시 자동으로 올라오는 LivekitDev 스택·관련 항목 인벤토리

이 머신은 Meet/홈페이지가 재부팅 후에도 502 없이 살아 있도록 NSSM 서비스 + 헬스 스케줄 작업으로 상주한다.


구분 이름 트리거 포트 / 역할 현재 상태 (점검 시점)
Windows 서비스 LivekitDevServer 부팅 (Automatic) TCP 7880, 7881 / UDP 50000–60000 — LiveKit SFU Running
Windows 서비스 LivekitDevMeet 부팅 (Delayed Automatic) TCP 3000 — Next.js Meet Running
Windows 서비스 LivekitDevCaddy 부팅 (Automatic) TCP 80, 443, 7443, 8443 — TLS·리버스 프록시·홈 정적 Running
작업 스케줄러 LivekitDev-Stack-Ensure 부팅 +90초, 5분마다 중지된 서비스 기동 / 포트 죽으면 재시작 Ready
Windows 서비스 AudiverisWeb (다른 프로젝트) 부팅 (Automatic) TCP 8080 — OMR Web Running
작업 스케줄러 AudiverisWeb-Ensure (다른 프로젝트) 부팅 +1분, 5분마다 Audiveris 헬스 Ready
작업 스케줄러 Start WSL Ubuntu (for Caddy) 로그온 WSL Ubuntu 깨우기 (/bin/true) — 레거시 Ready
작업 스케줄러 WSL Caddy Autostart 로그온 WSL 안 systemctl start caddy레거시 Ready

Startup 폴더 (공용/사용자): LivekitDev 관련 항목 없음.
레지스트리 Run: LivekitDev 관련 항목 없음 (보안 클라이언트 등만 존재).


공통:

  • 래퍼: C:\Developments\LivekitDev\tools\nssm\nssm-2.24\win64\nssm.exe
  • 계정: LocalSystem
  • 의존: Tcpip (Meet는 추가로 LivekitDevServer)
  • 종료 시: NSSM AppExit → Restart
  • SCM 실패 복구: 5s / 15s / 30s 재시작 (sc failure)
  • 로그: C:\Developments\LivekitDev\logs\
서비스 이름 DisplayName 시작 유형 실행 내용
LivekitDevServer LivekitDev LiveKit SFU Automatic livekit\bin\livekit-server.exe --config config.yaml --bind 0.0.0.0 --node-ip <공인IP> (작업 디렉터리 livekit\)
LivekitDevMeet LivekitDev Meet (Next.js) Automatic (Delayed) node.exe …\next\dist\bin\next start -p 3000 -H 0.0.0.0 (작업 디렉터리 meet\)
LivekitDevCaddy LivekitDev Caddy (Homepage + Meet edge) Automatic caddy.exe run --config Caddyfile (작업 디렉터리 루트)

설치 스크립트가 NSSM AppEnvironmentExtra로 넣음:

  • NODE_ENV=production
  • PORT=3000
  • LIVEKIT_API_KEY=devkey
  • LIVEKIT_API_SECRET=secret
  • LIVEKIT_URL=wss://meet.dev.tictechtoeai.com:7443

pnpm/corepack 미사용 (대화형 Y/n 대기 방지).

[부팅]
├─ LivekitDevServer (즉시 Automatic) → :7880
├─ LivekitDevCaddy (즉시 Automatic) → :80/:443/:7443/:8443
└─ LivekitDevMeet (Delayed + DependOn LivekitDevServer) → :3000
└─ +90초 후 LivekitDev-Stack-Ensure 가 한 번 더 점검

Caddy는 백엔드보다 먼저 떠도 되며, 그때 Meet/LiveKit이 아직 없으면 일시 502가 날 수 있다. Ensure 작업이 보완한다.


항목
작업 이름 LivekitDev-Stack-Ensure
실행 powershell.exe -File C:\Developments\LivekitDev\scripts\ensure_stack.ps1
계정 SYSTEM (Highest)
트리거 1 At startup, Delay PT90S (90초)
트리거 2 5분 간격 반복 (장기)
로그 logs\ensure-stack.log

동작 요약 (ensure_stack.ps1):

  1. LivekitDevServerLivekitDevMeetLivekitDevCaddy 순으로 Stopped면 Start-Service
  2. 서비스는 Running인데 포트가 닫혀 있으면 Restart-Service
    • 7880 (Server), 3000 (Meet), 443 (Caddy)

수동 실행:

Terminal window
C:\Developments\LivekitDev\start_all_services.bat
# 또는
powershell -NoProfile -ExecutionPolicy Bypass -File C:\Developments\LivekitDev\scripts\ensure_stack.ps1

3. 공개 URL (서비스가 살아 있을 때)

Section titled “3. 공개 URL (서비스가 살아 있을 때)”
URL 용도 뒷단
https://dev.tictechtoeai.com/ 홈 (정적) Caddy → homepage/dist
https://meet.dev.tictechtoeai.com/ Meet UI Caddy → 127.0.0.1:3000
wss://meet.dev.tictechtoeai.com:7443 LiveKit 시그널 Caddy → 127.0.0.1:7880
http://127.0.0.1:7880/ LiveKit 헬스 (OK) 직접

install_stack_services.ps1이 없으면 생성:

규칙 이름 포트
LivekitDev-FW-TCP-80 80
LivekitDev-FW-TCP-443 443
LivekitDev-FW-TCP-7443 7443
LivekitDev-FW-TCP-8443 8443
LivekitDev-FW-TCP-7880 7880
LivekitDev-FW-TCP-7881 7881
LivekitDev-FW-TCP-3000 3000
LivekitDev-FW-UDP-50000-60000 50000–60000 UDP

구성 요소 비고
avatar_bot Python 수동 (avatar_bot/avatar_bot.py)
Wav2Lip / SadTalker 오프라인 생성 파이프라인, 상주 아님
Flutter livekit_video_call 정적 빌드 산출물; Caddy가 파일만 서빙 (프로세스 없음)
docs-site (Astro) 개발용 npm run dev 만, 서비스 아님
ComfyUI 이 스택과 무관, 별도

6. 같은 머신 관련 자동 시작 (LivekitDev 밖)

Section titled “6. 같은 머신 관련 자동 시작 (LivekitDev 밖)”
항목
서비스 AudiverisWeb — Automatic, Running
포트 8080 (audiveris-web-*.jar)
헬스 작업 AudiverisWeb-Ensure — 부팅 +1분, 5분마다
스크립트 C:\Developments\VisionIvyDev\audiverisdev\audiveris-web\ensure_service.ps1
NSSM 바이너리 LivekitDev 트리의 tools\nssm\... 를 공유 사용 중

LivekitDev 문서 범위 밖이지만, 부팅 시 같이 올라오는 개발 서비스이므로 인벤토리에 표기.

작업 트리거 동작
Start WSL Ubuntu (for Caddy) 사용자 로그온 wsl -d Ubuntu -u root --exec /bin/true
WSL Caddy Autostart 사용자 로그온 WSL 안에서 systemctl start caddy + sleep 유지

현재 프로덕션 에지는 Windows 네이티브 LivekitDevCaddy 이다.
WSL Caddy 작업은 예전 구성 잔존일 수 있다. 포트 80/443 충돌이 나면 이 작업들을 비활성화 검토:

Terminal window
Disable-ScheduledTask -TaskName 'WSL Caddy Autostart'
Disable-ScheduledTask -TaskName 'Start WSL Ubuntu (for Caddy)'

(비활성화 전에 WSL 쪽 Caddy가 실제로 바인딩하는지 확인.)


Terminal window
powershell -NoProfile -ExecutionPolicy Bypass -File C:\Developments\LivekitDev\scripts\install_stack_services.ps1

이 스크립트가 하는 일:

  1. NSSM으로 세 서비스 설치(재설치) + 로그 로테이션 + 자동 재시작
  2. Meet Delayed Auto + LiveKit 의존
  3. SCM failure recovery
  4. 방화벽 규칙
  5. LivekitDev-Stack-Ensure 작업 등록 (구 homepage 전용 작업 제거)
  6. 서비스 즉시 기동

관련 파일:

경로 역할
scripts/install_stack_services.ps1 설치·재설치
scripts/ensure_stack.ps1 헬스/복구
scripts/install_caddy_service.ps1 Caddy만 (구형/부분)
start_all_services.bat Ensure 수동 실행 + 상태 출력
start_all.bat 구형 일괄 배치 (경로 D:\ 주의) — 상주 구성 이후에는 start_all_services.bat 권장

Terminal window
# 서비스 상태
Get-Service LivekitDevServer, LivekitDevMeet, LivekitDevCaddy | Format-Table Name, Status, StartType
# 작업
Get-ScheduledTask LivekitDev-Stack-Ensure | Get-ScheduledTaskInfo
# 리슨 포트
Get-NetTCPConnection -State Listen -LocalPort 80,443,3000,7443,7880,7881 |
Select-Object LocalPort, OwningProcess | Sort-Object LocalPort
# 공개
curl.exe -sI https://meet.dev.tictechtoeai.com/
curl.exe -s "https://meet.dev.tictechtoeai.com/api/connection-details?roomName=t&participantName=p"

재시작:

Terminal window
Restart-Service LivekitDevServer
Restart-Service LivekitDevMeet
Restart-Service LivekitDevCaddy

Terminal window
# Meet
cd C:\Developments\LivekitDev\meet
pnpm build
Restart-Service LivekitDevMeet
# Homepage (Caddy file_server가 dist 직접 읽음 — 재시작 선택)
cd C:\Developments\LivekitDev\homepage
npm run build
# LiveKit 설정/바이너리 교체 후
Restart-Service LivekitDevServer

현상 원인
외부 Meet 502 Caddy만 살아 있고 Meet(:3000)·LiveKit(:7880) 종료
수동 기동 후 사라짐 터미널/에이전트 Job에 묶인 자식 프로세스 종료
pnpm 서비스 멈춤 Corepack 대화형 Y/n 대기 → node next start 로 전환

방화벽·DNS·TLS는 정상인데 Meet만 502인 경우가 위와 같았다. 상주 서비스 + Ensure로 완화.


  • Get-Service LivekitDev* 세 개 모두 Running
  • :443, :3000, :7880 LISTEN
  • https://meet.dev.tictechtoeai.com/ 200
  • connection-details API 응답
  • (선택) logs\ensure-stack.log 최근 줄에 ok=True
  • (선택) WSL Caddy 작업이 네이티브 Caddy와 충돌하지 않는지