Files
music-admin/DEPLOYMENT.md
poptong 83b162d2bd
Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled
🔧 웹훅 URL을 HTTPS로 수정
- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경
- Nginx 리버스 프록시 설정 파일 추가
- 배포 가이드 업데이트
2025-10-01 01:47:51 +09:00

3.2 KiB

🚀 자동 배포 설정 가이드

서버 설정 단계

1. 서버에 프로젝트 클론

# 서버에서 실행
cd /var/www/music/
git clone https://git.poptong.net/poptong/music-admin.git
cd music-admin

2. 환경 변수 설정

# .env 파일 생성
nano .env

다음 내용 추가:

DATABASE_URL="postgresql://username:password@localhost:5432/music_admin?schema=public"
JWT_SECRET="your-secure-jwt-secret-key"
NODE_ENV="production"

3. 의존성 설치 및 빌드

npm install
npx prisma generate
npm run build

4. PM2 설치 및 설정

# PM2 전역 설치
npm install -g pm2

# 웹훅 서버 시작
pm2 start webhook-ecosystem.config.js

# 메인 앱 시작
pm2 start ecosystem.config.js

# PM2 자동 시작 설정
pm2 startup
pm2 save

5. 웹훅 서버 포트 열기

# UFW 사용 시
sudo ufw allow 9000

# 또는 iptables 사용 시
sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT

6. Nginx 설정 (선택사항)

# /etc/nginx/sites-available/music-admin
server {
    listen 80;
    server_name youtooplay.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Gitea 웹훅 설정

1. Gitea 저장소 설정

  1. https://git.poptong.net/ 접속
  2. music-admin 저장소로 이동
  3. Settings → Webhooks 클릭
  4. "Add Webhook" → "Gitea" 선택

2. 웹훅 설정

  • Payload URL: https://admin.youtooplay.com/webhook
  • Content Type: application/json
  • Secret: your-webhook-secret-key (webhook-server.js의 SECRET과 동일)
  • Events: Push 체크
  • Branch: main 선택

3. 웹훅 테스트

  • "Test Delivery" 버튼으로 테스트
  • 서버 로그 확인: pm2 logs music-admin-webhook

배포 테스트

1. 코드 변경 후 push

git add .
git commit -m "테스트 배포"
git push origin main

2. 배포 로그 확인

# 웹훅 서버 로그
pm2 logs music-admin-webhook

# 메인 앱 로그
pm2 logs music-admin

# 배포 스크립트 로그
tail -f /var/log/music-admin-deploy.log

문제 해결

1. 권한 문제

# 배포 스크립트 실행 권한
chmod +x deploy.sh

# 프로젝트 디렉토리 권한
sudo chown -R $USER:$USER /var/www/music/music-admin

2. PM2 프로세스 관리

# 프로세스 상태 확인
pm2 status

# 프로세스 재시작
pm2 restart music-admin
pm2 restart music-admin-webhook

# 프로세스 중지
pm2 stop music-admin
pm2 stop music-admin-webhook

3. 포트 확인

# 포트 사용 확인
netstat -tlnp | grep :3000
netstat -tlnp | grep :9000

보안 고려사항

  1. 웹훅 시크릿: 강력한 시크릿 키 사용
  2. 방화벽: 필요한 포트만 열기
  3. SSL: HTTPS 사용 권장
  4. 환경 변수: 민감한 정보는 환경 변수로 관리