Deploy: Migrate to Gitea Actions, update paths for turbotrades.dev
Some checks failed
Deploy to Production / Deploy to turbotrades.dev (push) Has been cancelled

This commit is contained in:
2026-01-11 00:15:14 +00:00
parent 53d0c89d17
commit f9156897ce
6 changed files with 1567 additions and 140 deletions

371
DEPLOY_SUMMARY.md Normal file
View File

@@ -0,0 +1,371 @@
# 🚀 TurboTrades - Deployment Summary
**Date:** January 10, 2026
**Status:** ✅ Ready for Deployment
**Repository:** https://git.turbotrades.dev/iDefineHD/TurboTrades.git
---
## 📋 Configuration Overview
### Domain Setup
- **Frontend:** https://turbotrades.dev
- **Backend API:** https://api.turbotrades.dev
- **WebSocket:** https://ws.turbotrades.dev
### Server Paths
- **Backend Code:** `/root/ttbackend`
- **Frontend Build:** `/var/www/html/turbotrades`
- **Nginx Config:** Already configured ✅
- **SSL Certificates:** Already configured ✅
### PM2 Configuration
- **App Name:** `turbotrades-backend`
- **Port:** 3000
- **Mode:** Cluster
- **Auto-restart:** Enabled
---
## 🎯 Quick Start
### Deploy to Production
```bash
# 1. SSH to server
ssh root@turbotrades.dev
# 2. Initial setup (first time only)
cd /root/ttbackend
git clone https://git.turbotrades.dev/iDefineHD/TurboTrades.git .
# 3. Deploy
./deploy.sh
```
### Push Changes from Local
```bash
# Option 1: Use helper script
./push.sh
# Option 2: Manual
git add .
git commit -m "Your changes"
git push origin main
# Then SSH and deploy
ssh root@turbotrades.dev
cd /root/ttbackend
./deploy.sh
```
---
## 📁 Files Created for Deployment
### Deployment Scripts
-`deploy.sh` - Main deployment script
-`push.sh` - Quick commit and push helper
-`ecosystem.config.js` - PM2 configuration (updated)
### Configuration
-`nginx-config/turbotrades.conf` - Nginx configuration example
-`.github/workflows/deploy.yml` - Gitea Actions workflow
### Documentation
-`DEPLOY.md` - Simple deployment guide
-`GITEA_DEPLOY.md` - Complete deployment documentation
-`DEPLOY_SUMMARY.md` - This file
---
## 🔧 What Was Updated
### Repository Configuration
- ✅ Git remote updated to Gitea: `https://git.turbotrades.dev/iDefineHD/TurboTrades.git`
- ✅ All documentation updated with Gitea URLs
- ✅ Removed all tunnel-related files and scripts
### Backend Configuration (`ecosystem.config.js`)
```javascript
{
name: "turbotrades-backend",
cwd: "/root/ttbackend",
env: {
FRONTEND_URL: "https://turbotrades.dev",
BACKEND_URL: "https://api.turbotrades.dev",
WS_URL: "https://ws.turbotrades.dev"
}
}
```
### Frontend Configuration
- ✅ WebSocket connects to `wss://ws.turbotrades.dev` in production
- ✅ API calls go to `https://api.turbotrades.dev`
- ✅ Vite proxy configured for local development
### Deployment Workflow
```
Local Changes → Git Push → SSH to Server → Run deploy.sh → Live! 🎉
```
---
## 📦 deploy.sh Script Actions
The deployment script automatically:
1. ⏸️ **Stops** backend (PM2)
2. 💾 **Creates** backup of current version
3. 📥 **Pulls** latest code from Gitea
4. 📦 **Installs** backend dependencies (`npm ci --production`)
5. 🎨 **Builds** frontend (`npm run build`)
6. 🚀 **Deploys** frontend to `/var/www/html/turbotrades`
7. 🔒 **Sets** proper permissions (www-data:www-data)
8. ▶️ **Restarts** backend with PM2
9. 💾 **Saves** PM2 configuration
10.**Runs** health checks
**Deployment Time:** ~2-3 minutes
---
## 🌐 Environment Variables Required
Create `/root/ttbackend/.env` with:
```env
# Application
NODE_ENV=production
PORT=3000
# URLs
FRONTEND_URL=https://turbotrades.dev
BACKEND_URL=https://api.turbotrades.dev
WS_URL=https://ws.turbotrades.dev
# Database
MONGODB_URI=mongodb://localhost:27017/turbotrades
# Security
JWT_SECRET=your-super-secret-jwt-key
REFRESH_TOKEN_SECRET=your-refresh-token-secret
SESSION_SECRET=your-session-secret
# Steam OAuth
STEAM_API_KEY=your-steam-api-key
STEAM_REALM=https://turbotrades.dev
STEAM_RETURN_URL=https://api.turbotrades.dev/auth/steam/return
# Email (optional)
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=your-email@example.com
SMTP_PASS=your-password
SMTP_FROM=noreply@turbotrades.dev
```
---
## 📊 Monitoring Commands
### PM2 Status
```bash
pm2 list # List all processes
pm2 logs turbotrades-backend # View logs
pm2 monit # Monitor resources
pm2 restart turbotrades-backend # Restart backend
```
### Health Checks
```bash
curl https://api.turbotrades.dev/api/health # Backend API
curl https://turbotrades.dev # Frontend
```
### Nginx Logs
```bash
tail -f /var/log/nginx/turbotrades-error.log
tail -f /var/log/nginx/api-turbotrades-error.log
tail -f /var/log/nginx/ws-turbotrades-error.log
```
---
## 🐛 Common Issues & Fixes
### Backend Won't Start
```bash
pm2 logs turbotrades-backend # Check logs
systemctl status mongod # Check MongoDB
pm2 restart turbotrades-backend # Force restart
```
### Frontend 404
```bash
ls -la /var/www/html/turbotrades/ # Check files exist
chown -R www-data:www-data /var/www/html/turbotrades # Fix permissions
```
### 502 Bad Gateway
```bash
pm2 restart turbotrades-backend # Backend probably down
netstat -tulpn | grep 3000 # Check if port 3000 is listening
```
### WebSocket Won't Connect
```bash
# Check WebSocket domain is correct in frontend
# Should be: wss://ws.turbotrades.dev
pm2 logs turbotrades-backend # Check backend logs
```
---
## 🔄 Deployment Workflow Examples
### Regular Update
```bash
# Local machine
git add .
git commit -m "Update feature X"
git push origin main
# Server
ssh root@turbotrades.dev
cd /root/ttbackend
./deploy.sh
```
### Hotfix
```bash
# Local machine
git add .
git commit -m "Hotfix: Critical bug"
git push origin main
# Server
ssh root@turbotrades.dev
cd /root/ttbackend
./deploy.sh
```
### Frontend Only Update
```bash
# Server
ssh root@turbotrades.dev
cd /root/ttbackend
git pull origin main
cd frontend && npm ci && npm run build
rm -rf /var/www/html/turbotrades/*
cp -r dist/* /var/www/html/turbotrades/
chown -R www-data:www-data /var/www/html/turbotrades
```
### Backend Only Update
```bash
# Server
ssh root@turbotrades.dev
cd /root/ttbackend
git pull origin main
npm ci --production
pm2 restart turbotrades-backend
```
---
## 🚨 Emergency Rollback
```bash
ssh root@turbotrades.dev
pm2 stop turbotrades-backend
# List backups
ls -lt /root/ | grep ttbackend-backup
# Restore
cd /root
rm -rf ttbackend
cp -r ttbackend-backup-YYYYMMDD-HHMMSS ttbackend
cd ttbackend
pm2 restart turbotrades-backend
```
---
## ✅ Pre-Deployment Checklist
- [x] Git remote configured to Gitea
- [x] Tunnel infrastructure removed
- [x] Deployment scripts created and executable
- [x] PM2 ecosystem config updated
- [x] Frontend WebSocket configured for production
- [x] Nginx configuration ready
- [x] Domain structure documented
- [x] Server paths configured
### Before First Deployment
- [ ] Server prerequisites installed (Node.js, PM2, MongoDB, Nginx)
- [ ] Directories created (`/root/ttbackend`, `/var/www/html/turbotrades`)
- [ ] Nginx configuration deployed
- [ ] SSL certificates configured
- [ ] `.env` file created with proper secrets
- [ ] MongoDB running and accessible
- [ ] Repository cloned to `/root/ttbackend`
### Before Each Deployment
- [ ] Code tested locally
- [ ] Environment variables updated if needed
- [ ] Database migrations prepared (if any)
- [ ] Team notified of deployment
- [ ] Backup created (deploy.sh does this automatically)
---
## 🎉 Ready to Deploy!
Everything is configured and ready. To deploy:
```bash
# 1. Push your changes
git add .
git commit -m "Ready for production"
git push origin main
# 2. Deploy to server
ssh root@turbotrades.dev
cd /root/ttbackend
git pull origin main
./deploy.sh
```
**Your site will be live at:**
- 🌐 https://turbotrades.dev
- 🔧 https://api.turbotrades.dev
- 💬 https://ws.turbotrades.dev
---
## 📚 Documentation
- **Quick Deploy:** `DEPLOY.md`
- **Complete Guide:** `GITEA_DEPLOY.md`
- **Nginx Config:** `nginx-config/turbotrades.conf`
- **PM2 Config:** `ecosystem.config.js`
---
## 🆘 Support
If you encounter issues:
1. Check the logs: `pm2 logs turbotrades-backend`
2. Check nginx logs: `tail -f /var/log/nginx/api-turbotrades-error.log`
3. Review documentation in `DEPLOY.md` or `GITEA_DEPLOY.md`
4. Check health endpoints with curl
---
**Last Updated:** January 10, 2026
**Status:** ✅ Ready for Production Deployment
**Next Step:** SSH to server and run `./deploy.sh`