우분투(Ubuntu) 서버 환경에서 이 웹 서버를 구동하고, pm2 를 통해 무중단으로 자동 실행되도록 구성하는 상세 가이드입니다. 이 가이드를 그대로 보시면서 SSH 터미널에 명령어를 입력하시면 됩니다. ────── ### 1. 우분투 서버 기본 패키지 및 라이브러리 설치 필요합니다. GUI 화면이 없는 서버용 우분투(Ubuntu Server)라면 에러가 날 수 있으므로 아래 라이브러리들을 미리 설치해야 Python의 opencv-python 은 화면 렌더링이나 비디오 디코딩을 위해 시스템 그래픽 라이브러리( libGL , libgthread 등)가 합니다. # 패키지 업데이트 sudo apt update # OpenCV 구동을 위한 필수 시스템 라이브러리 설치 sudo apt install -y libgl1-mesa-glx libglib2.0-0 sudo apt install -y python3-pip python3-venv # python3-pip 및 가상환경(venv) 지원 도구 설치 (설치되어 있지 않은 경우) ────── ### 2. Node.js & PM2 설치 pm2 는 Node.js 기반 프로그램이므로 Node.js와 npm이 먼저 설치되어 있어야 합니다. # Node.js 및 npm 설치 sudo apt install -y nodejs npm # PM2 전역(Global) 설치 sudo npm install -g pm2 ────── ### 3. 프로젝트 코드 업로드 및 가상환경 설정 서버의 적절한 경로(예: /var/www/attendance-counter 또는 ~/attendance-counter )에 소스코드를 업로드한 뒤, 해당 디렉토리로 이동하여 작업을 진행합니다. # 프로젝트 폴더로 이동 (예시 경로입니다. 실제 경로로 이동해 주세요) cd ~/attendance-counter # Python 가상환경 생성 python3 -m venv .venv # 가상환경 활성화 source .venv/bin/activate # 의존성 패키지 설치 pip install -r requirements.txt ────── ### 4. PM2로 Python 웹 서버 등록 및 자동 실행 설정 PM2에서 가상환경( .venv )의 Python 인터프리터를 지정하여 web_server.py 를 실행하도록 설정합니다. #### 4-1. PM2 구동 명령 # 가상환경의 python3를 사용하여 web_server.py 구동 pm2 start web_server.py --name "camera-web" --interpreter .venv/bin/python3 #### 4-2. 서버 재부팅 시 자동 시작 설정 우분투 서버가 재부팅되어도 서비스가 자동으로 다시 켜지도록 PM2 스타트업 스크립트를 등록합니다. # 1. 스타트업 환경 스크립트 생성 명령 실행 pm2 startup systemd (위 명령을 치면 터미널 화면 맨 아래쪽에 sudo env PATH=... pm2 startup systemd -u ... 같은 코드가 출력됩니다. 그 명령줄을 드래그해서 그대로 터미널에 다시 입력하고 엔터를 누릅니다.) # 2. 현재 실행 중인 PM2 리스트를 저장하여 재부팅 시 자동 복원되도록 설정 pm2 save ────── ### 💡 유용한 PM2 관리 명령어 모음 ssh 접속 후 서버 상태를 확인하거나 제어할 때 아래 명령어들을 사용하시면 됩니다. • 상태 확인: pm2 list (또는 pm2 status ) • 실시간 로그 보기: pm2 logs camera-web • 서버 중지: pm2 stop camera-web • 서버 재시작 (코드 수정 시): pm2 restart camera-web