# ๐Ÿš€ ์ž๋™ ๋ฐฐํฌ ์„ค์ • ๊ฐ€์ด๋“œ ## ์„œ๋ฒ„ ์„ค์ • ๋‹จ๊ณ„ ### 1. ์„œ๋ฒ„์— ํ”„๋กœ์ ํŠธ ํด๋ก  ```bash # ์„œ๋ฒ„์—์„œ ์‹คํ–‰ cd /var/www/music/ git clone https://git.poptong.net/poptong/music-admin.git cd music-admin ``` ### 2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ```bash # .env ํŒŒ์ผ ์ƒ์„ฑ nano .env ``` ๋‹ค์Œ ๋‚ด์šฉ ์ถ”๊ฐ€: ```env DATABASE_URL="postgresql://username:password@localhost:5432/music_admin?schema=public" JWT_SECRET="your-secure-jwt-secret-key" NODE_ENV="production" ``` ### 3. ์˜์กด์„ฑ ์„ค์น˜ ๋ฐ ๋นŒ๋“œ ```bash npm install npx prisma generate npm run build ``` ### 4. PM2 ์„ค์น˜ ๋ฐ ์„ค์ • ```bash # PM2 ์ „์—ญ ์„ค์น˜ npm install -g pm2 # ์›นํ›… ์„œ๋ฒ„ ์‹œ์ž‘ pm2 start webhook-ecosystem.config.js # ๋ฉ”์ธ ์•ฑ ์‹œ์ž‘ pm2 start ecosystem.config.js # PM2 ์ž๋™ ์‹œ์ž‘ ์„ค์ • pm2 startup pm2 save ``` ### 5. ์›นํ›… ์„œ๋ฒ„ ํฌํŠธ ์—ด๊ธฐ ```bash # UFW ์‚ฌ์šฉ ์‹œ sudo ufw allow 9000 # ๋˜๋Š” iptables ์‚ฌ์šฉ ์‹œ sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT ``` ### 6. Nginx ์„ค์ • (์„ ํƒ์‚ฌํ•ญ) ```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 ```bash git add . git commit -m "ํ…Œ์ŠคํŠธ ๋ฐฐํฌ" git push origin main ``` ### 2. ๋ฐฐํฌ ๋กœ๊ทธ ํ™•์ธ ```bash # ์›นํ›… ์„œ๋ฒ„ ๋กœ๊ทธ pm2 logs music-admin-webhook # ๋ฉ”์ธ ์•ฑ ๋กœ๊ทธ pm2 logs music-admin # ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ๋กœ๊ทธ tail -f /var/log/music-admin-deploy.log ``` ## ๋ฌธ์ œ ํ•ด๊ฒฐ ### 1. ๊ถŒํ•œ ๋ฌธ์ œ ```bash # ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ถŒํ•œ chmod +x deploy.sh # ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ sudo chown -R $USER:$USER /var/www/music/music-admin ``` ### 2. PM2 ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ```bash # ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ํ™•์ธ pm2 status # ํ”„๋กœ์„ธ์Šค ์žฌ์‹œ์ž‘ pm2 restart music-admin pm2 restart music-admin-webhook # ํ”„๋กœ์„ธ์Šค ์ค‘์ง€ pm2 stop music-admin pm2 stop music-admin-webhook ``` ### 3. ํฌํŠธ ํ™•์ธ ```bash # ํฌํŠธ ์‚ฌ์šฉ ํ™•์ธ netstat -tlnp | grep :3000 netstat -tlnp | grep :9000 ``` ## ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ 1. **์›นํ›… ์‹œํฌ๋ฆฟ**: ๊ฐ•๋ ฅํ•œ ์‹œํฌ๋ฆฟ ํ‚ค ์‚ฌ์šฉ 2. **๋ฐฉํ™”๋ฒฝ**: ํ•„์š”ํ•œ ํฌํŠธ๋งŒ ์—ด๊ธฐ 3. **SSL**: HTTPS ์‚ฌ์šฉ ๊ถŒ์žฅ 4. **ํ™˜๊ฒฝ ๋ณ€์ˆ˜**: ๋ฏผ๊ฐํ•œ ์ •๋ณด๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌ