4397983f93
개선 사항: - SSH 키 완전 제거 - git post-receive hook으로 자동 배포 - CI는 빌드만 수행 (publish 생성) - git push 시 서버의 post-receive hook이 자동으로 배포 실행 배포 흐름: 1. git commit & push (로컬) 2. Gitea repository 업데이트 3. post-receive hook 자동 실행 4. 서버에서 빌드 후 배포.sh 호출 5. 배포 완료 장점: - 간단함 (SSH 인증 불필요) - 안전함 (별도의 인증 정보 저장 불필요) - 빠름 (네트워크 오버헤드 최소) - 한 곳에서 관리 (서버의 deploy.sh) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
59 lines
1.9 KiB
Bash
59 lines
1.9 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
DEPLOY_HOME="/home/kjh2064"
|
|
WEB_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
|
|
echo "===== 🚀 TaxBaik 배포 스크립트 ====="
|
|
echo "Web Timestamp: $WEB_TIMESTAMP"
|
|
|
|
# Web 배포
|
|
echo "=== Deploying Web ==="
|
|
WEB_DEPLOY_DIR="$DEPLOY_HOME/deployments/taxbaik_${WEB_TIMESTAMP}"
|
|
mkdir -p "$WEB_DEPLOY_DIR"
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Error: Publish directory required"
|
|
exit 1
|
|
fi
|
|
|
|
# 첫 번째 인자는 publish 경로
|
|
cp -r "$1/web" "$WEB_DEPLOY_DIR/"
|
|
ln -sfn "$WEB_DEPLOY_DIR/web" "$DEPLOY_HOME/taxbaik_active"
|
|
echo "✓ Web symlink updated: $WEB_DEPLOY_DIR/web"
|
|
|
|
# Admin 배포
|
|
echo "=== Deploying Admin ==="
|
|
ADMIN_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
ADMIN_DEPLOY_DIR="$DEPLOY_HOME/deployments/taxbaik_admin_${ADMIN_TIMESTAMP}"
|
|
mkdir -p "$ADMIN_DEPLOY_DIR"
|
|
cp -r "$1/admin" "$ADMIN_DEPLOY_DIR/"
|
|
ln -sfn "$ADMIN_DEPLOY_DIR/admin" "$DEPLOY_HOME/taxbaik_admin_active"
|
|
echo "✓ Admin symlink updated: $ADMIN_DEPLOY_DIR/admin"
|
|
|
|
# 프로세스 재시작
|
|
echo "=== Restarting processes ==="
|
|
pkill -9 -f "TaxBaik.Web" || true
|
|
pkill -9 -f "TaxBaik.Admin" || true
|
|
sleep 3
|
|
|
|
echo "=== Starting Web ==="
|
|
cd "$DEPLOY_HOME/taxbaik_active"
|
|
export ConnectionStrings__Default="Host=localhost;Database=taxbaikdb;Username=taxbaik;Password=taxbaik123"
|
|
export ASPNETCORE_ENVIRONMENT=Production
|
|
export ASPNETCORE_URLS=http://127.0.0.1:5001
|
|
nohup /usr/local/dotnet/dotnet TaxBaik.Web.dll > web.log 2>&1 &
|
|
sleep 2
|
|
ps aux | grep TaxBaik.Web | grep -v grep && echo "✓ Web started" || echo "✗ Web failed"
|
|
|
|
echo "=== Starting Admin ==="
|
|
cd "$DEPLOY_HOME/taxbaik_admin_active"
|
|
export ASPNETCORE_URLS=http://127.0.0.1:5002
|
|
nohup /usr/local/dotnet/dotnet TaxBaik.Admin.dll > admin.log 2>&1 &
|
|
sleep 2
|
|
ps aux | grep TaxBaik.Admin | grep -v grep && echo "✓ Admin started" || echo "✗ Admin failed"
|
|
|
|
echo ""
|
|
echo "===== ✅ 배포 완료 ====="
|
|
cat "$DEPLOY_HOME/taxbaik_active/wwwroot/version.txt" 2>/dev/null || echo "Version file not found"
|