#!/usr/bin/env bash # GoldenChart — 소스 push 없이 서버 deploy.sh만 실행 (재배포) # # 사용: # ./server-restart.sh # ./server-restart.sh --frontend # ./server-restart.sh --backend # SERVICE_NAME=docker-only ./server-restart.sh # set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$ROOT" RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' CYAN='\033[0;36m' NC='\033[0m' # shellcheck disable=SC1091 source "$ROOT/scripts/deploy-target.defaults" if [[ -f "$ROOT/scripts/deploy-target.local.env" ]]; then # shellcheck disable=SC1091 source "$ROOT/scripts/deploy-target.local.env" fi REMOTE_HOST="${REMOTE_HOST:-exdev.co.kr}" REMOTE_USER="${REMOTE_USER:-aidev}" REMOTE_PORT="${REMOTE_PORT:-22}" REMOTE_DEPLOY_SCRIPT="${REMOTE_DEPLOY_SCRIPT:-/Volumes/ADATA/git/deploy.sh}" SERVICE_NAME="${SERVICE_NAME:-all}" SSH_TARGET="${REMOTE_USER}@${REMOTE_HOST}" SSH_CMD=(ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -p "$REMOTE_PORT") print_usage() { cat <&2 print_usage exit 1 ;; esac done echo -e "${CYAN}▶ 서버 재배포 (push 없음)${NC}" echo -e " 대상 : ${SSH_TARGET}" echo -e " 스크립트: ${REMOTE_DEPLOY_SCRIPT}" echo -e " 서비스 : ${SERVICE_NAME}" echo "" REMOTE_CMD="SERVICE_NAME=${SERVICE_NAME} ${REMOTE_DEPLOY_SCRIPT}" if "${SSH_CMD[@]}" "$SSH_TARGET" "$REMOTE_CMD"; then echo "" echo -e "${GREEN}✓ deploy.sh 완료${NC}" echo -e "${YELLOW}로그: ssh ${SSH_TARGET} 'tail -50 /Volumes/ADATA/logs/deploy/deploy.log'${NC}" else echo "" echo -e "${RED}✗ deploy.sh 실패${NC}" >&2 exit 1 fi