v0.1 (2025-11-13) - Flask, Gunicorn, gevent, MariaDB, Redis, Swagger, logging 기본 구성 완료;
67 lines
1.9 KiB
Bash
67 lines
1.9 KiB
Bash
#!/bin/bash
|
|
##############################################################
|
|
# NuriQ 서버 실행 스크립트
|
|
#
|
|
# 사용법:
|
|
# ./run_server.sh [모드]
|
|
#
|
|
# 모드:
|
|
# dev - 개발 모드 (Flask built-in server)
|
|
# prod - 운영 모드 (Gunicorn + gevent)
|
|
##############################################################
|
|
|
|
set -e #에러 발생시 스크립트 중단
|
|
|
|
# 색상 정리
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
# 현재 스크립트 디렉토리로 이동
|
|
cd "$(dirname "$0")"
|
|
|
|
# 모드 설정 (기본값: prod)
|
|
MODE="${1:-prod}"
|
|
|
|
echo -e "${BLUE}========================================="
|
|
echo -e "${BLUE} NuriQ Server Start${NC} "
|
|
echo -e "${BLUE}========================================="
|
|
|
|
# 가상환경 활성화 확인
|
|
if [ -z "$VIRTUAL_ENV" ]; then
|
|
echo -e "${YELLOW} Virtual environment not activated${NC}"
|
|
echo -e "${YELLOW} Consider running: source .venv/bin/activate${NC}"
|
|
echo ""
|
|
fi
|
|
|
|
# 모드에 따른 처리
|
|
case "$MODE" in
|
|
dev)
|
|
echo -e "${GREEN} 개발 모드 시작 중 ...${NC}"
|
|
echo -e "${GREEN} Flask built-in server 사용 중 ...${NC}"
|
|
echo ""
|
|
export DEBUG=True
|
|
gunicorn -c ./gunicorn_config.py app:app
|
|
;;
|
|
|
|
prod)
|
|
echo -e "${GREEN} 운영 모드 시작 중 ...${NC}"
|
|
echo -e "${YELLOW} Gunicorn + gevent 사용 중 ...${NC}"
|
|
echo ""
|
|
gunicorn -c ./gunicorn_config.py \
|
|
--worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker \
|
|
app:app
|
|
;;
|
|
*)
|
|
echo -e "{$RED} 알 수 없는 모드: $MODE${NC}"
|
|
echo ""
|
|
echo "사용 가능한 모드"
|
|
echo " dev - 개발 모드 (Flask built-in server)"
|
|
echo " prod - 운영 모드 (Gunicorn + gevent)"
|
|
echo ""
|
|
echo "사용: $0 [mode]"
|
|
exit 1
|
|
;;
|
|
esac |